1 /*------------------------------------------------------------------------------------------------*/
\r
2 /* Unicens XML Parser */
\r
3 /* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */
\r
5 /* Redistribution and use in source and binary forms, with or without */
\r
6 /* modification, are permitted provided that the following conditions are met: */
\r
8 /* 1. Redistributions of source code must retain the above copyright notice, this */
\r
9 /* list of conditions and the following disclaimer. */
\r
11 /* 2. Redistributions in binary form must reproduce the above copyright notice, */
\r
12 /* this list of conditions and the following disclaimer in the documentation */
\r
13 /* and/or other materials provided with the distribution. */
\r
15 /* 3. Neither the name of the copyright holder nor the names of its */
\r
16 /* contributors may be used to endorse or promote products derived from */
\r
17 /* this software without specific prior written permission. */
\r
19 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
\r
20 /* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
\r
21 /* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
\r
22 /* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE */
\r
23 /* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
\r
24 /* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
\r
25 /* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
\r
26 /* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
\r
27 /* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
\r
28 /* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
\r
29 /*------------------------------------------------------------------------------------------------*/
\r
30 #ifndef UCSXML_PRIVATE_H_
\r
31 #define UCSXML_PRIVATE_H_
\r
33 #include <stdbool.h>
\r
35 #include "ucs_api.h"
\r
39 SYNC_DATA = 0, /*!< \brief Specifies the synchronous streaming data type */
\r
40 CONTROL_DATA = 2, /*!< \brief Specifies the control data type */
\r
41 AV_PACKETIZED = 3, /*!< \brief Specifies the A/V Packetized Isochronous
\r
42 streaming data type */
\r
43 QOS_IP = 4, /*!< \brief Specifies the Quality of Service IP
\r
44 streaming data type*/
\r
45 DISC_FRAME_PHASE = 5, /*!< \brief Specifies the DiscreteFrame Isochronous
\r
46 streaming phase data type */
\r
47 IPC_PACKET = 7, /*!< \brief Specifies the IPC packet data type */
\r
48 INVALID = 0xFF /*!< \brief Defined invalid value */
\r
51 struct UcsXmlObjectList
\r
54 struct UcsXmlObjectList *next;
\r
57 void *MCalloc(struct UcsXmlObjectList *list, uint32_t nElem, uint32_t elemSize);
\r
58 void FreeObjList(struct UcsXmlObjectList *cur);
\r
60 struct MostSocketParameters
\r
62 struct UcsXmlObjectList *list;
\r
64 MDataType_t dataType;
\r
67 bool GetMostSocket(Ucs_Xrm_MostSocket_t **mostSoc, struct MostSocketParameters *param);
\r
69 struct UsbPortParameters
\r
71 struct UcsXmlObjectList *list;
\r
72 const char *physicalLayer;
\r
73 const char *deviceInterfaces;
\r
74 const char *streamInCount;
\r
75 const char *streamOutCount;
\r
77 bool GetUsbPort(Ucs_Xrm_UsbPort_t **usbPort, struct UsbPortParameters *param);
\r
78 bool GetUsbPortDefaultCreated(Ucs_Xrm_ResObject_t **usbPort, struct UcsXmlObjectList *list);
\r
80 struct UsbSocketParameters
\r
82 struct UcsXmlObjectList *list;
\r
84 MDataType_t dataType;
\r
85 const char *endpointAddress;
\r
86 const char *framesPerTrans;
\r
87 Ucs_Xrm_ResObject_t *usbPort; /** Must be either Ucs_Xrm_UsbPort_t or Ucs_Xrm_DefaultCreatedPort_t */
\r
89 bool GetUsbSocket(Ucs_Xrm_UsbSocket_t **usbSoc, struct UsbSocketParameters *param);
\r
91 struct MlbPortParameters
\r
93 struct UcsXmlObjectList *list;
\r
94 const char *clockConfig;
\r
96 bool GetMlbPort(Ucs_Xrm_MlbPort_t **mlbPort, struct MlbPortParameters *param);
\r
97 bool GetMlbPortDefaultCreated(Ucs_Xrm_ResObject_t **mlbPort, struct UcsXmlObjectList *list);
\r
99 struct MlbSocketParameters
\r
101 struct UcsXmlObjectList *list;
\r
103 MDataType_t dataType;
\r
104 uint16_t bandwidth;
\r
105 const char *channelAddress;
\r
106 Ucs_Xrm_ResObject_t *mlbPort; /** Must be either Ucs_Xrm_MlbPort_t or Ucs_Xrm_DefaultCreatedPort_t */
\r
108 bool GetMlbSocket(Ucs_Xrm_MlbSocket_t **mlbSoc, struct MlbSocketParameters *param);
\r
110 struct StrmPortParameters
\r
112 uint8_t index; /** Always create two Streaming Ports one with index 0 and one with index 1 */
\r
113 struct UcsXmlObjectList *list;
\r
114 const char *clockConfig;
\r
115 const char *dataAlignment;
\r
117 bool GetStrmPort(Ucs_Xrm_StrmPort_t **strmPort, struct StrmPortParameters *param);
\r
119 struct StrmSocketParameters
\r
121 struct UcsXmlObjectList *list;
\r
123 MDataType_t dataType;
\r
124 uint16_t bandwidth;
\r
125 const char *streamPin;
\r
126 Ucs_Xrm_StrmPort_t *streamPortA; /* Mandatory, set with index 0 */
\r
127 Ucs_Xrm_StrmPort_t *streamPortB; /* Mandatory, set with index 1 */
\r
129 bool GetStrmSocket(Ucs_Xrm_StrmSocket_t **strmSoc, struct StrmSocketParameters *param);
\r
131 struct SplitterParameters
\r
133 struct UcsXmlObjectList *list;
\r
134 uint16_t bytesPerFrame;
\r
135 Ucs_Xrm_ResObject_t *inSoc;
\r
137 bool GetSplitter(Ucs_Xrm_Splitter_t **splitter, struct SplitterParameters *param);
\r
139 struct CombinerParameters
\r
141 struct UcsXmlObjectList *list;
\r
142 uint16_t bytesPerFrame;
\r
143 Ucs_Xrm_ResObject_t *outSoc;
\r
145 bool GetCombiner(Ucs_Xrm_Combiner_t **combiner, struct CombinerParameters *param);
\r
147 struct SyncConParameters
\r
149 struct UcsXmlObjectList *list;
\r
150 const char *muteMode;
\r
151 const char *optional_offset;
\r
152 Ucs_Xrm_ResObject_t *inSoc;
\r
153 Ucs_Xrm_ResObject_t *outSoc;
\r
155 bool GetSyncCon(Ucs_Xrm_SyncCon_t **syncCon, struct SyncConParameters *param);
\r
157 struct AvpConParameters
\r
159 struct UcsXmlObjectList *list;
\r
160 const char *optional_isocPacketSize;
\r
161 Ucs_Xrm_ResObject_t *inSoc;
\r
162 Ucs_Xrm_ResObject_t *outSoc;
\r
164 bool GetAvpCon(Ucs_Xrm_AvpCon_t **avpCon, struct AvpConParameters *param);
\r
167 #endif /* UCSXML_PRIVATE_H_ */