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
35 #include "UcsXml_Private.h"
\r
37 static const char* USB_PHY_STANDARD = "Standard";
\r
38 static const char* USB_PHY_HSIC = "HSIC";
\r
40 static const char* CLOCK_8FS = "8Fs";
\r
41 static const char* CLOCK_16FS = "16Fs";
\r
42 static const char* CLOCK_32FS = "32Fs";
\r
43 static const char* CLOCK_64FS = "64Fs";
\r
44 static const char* CLOCK_128FS = "128Fs";
\r
45 static const char* CLOCK_256FS = "256Fs";
\r
46 static const char* CLOCK_512FS = "512Fs";
\r
47 static const char* CLOCK_1024FS = "1024Fs";
\r
48 static const char* CLOCK_2048FS = "2048Fs";
\r
49 static const char* CLOCK_3072FS = "3072Fs";
\r
50 static const char* CLOCK_4096FS = "4096Fs";
\r
51 static const char* CLOCK_6144FS = "6144Fs";
\r
52 static const char* CLOCK_8192FS = "8192Fs";
\r
53 static const char* CLOCK_WILDCARD = "Wildcard";
\r
55 static const char* STRM_ALIGN_L16 = "Left16Bit";
\r
56 static const char* STRM_ALIGN_L24 = "Left24Bit";
\r
57 static const char* STRM_ALIGN_R16 = "Right16Bit";
\r
58 static const char* STRM_ALIGN_R24 = "Right24Bit";
\r
59 static const char* STRM_ALIGN_SEQUENTIAL = "Seq";
\r
61 static const char* I2S_PIN_SRXA0 = "SRXA0";
\r
62 static const char* I2S_PIN_SRXA1 = "SRXA1";
\r
63 static const char* I2S_PIN_SRXB0 = "SRXB0";
\r
64 static const char* I2S_PIN_SRXB1 = "SRXB1";
\r
66 static const char* MUTE_OFF = "NoMuting";
\r
67 static const char* MUTE_SIGNAL = "MuteSignal";
\r
69 static const char* VAL_TRUE = "true";
\r
70 static const char* VAL_FALSE = "false";
\r
73 #define ASSERT_FALSE(func, par) { UcsXml_CB_OnError("Parameter error in attribute=%s value=%s, file=%s, line=%d", 4, func, par, __FILE__, __LINE__); return false; }
\r
74 #define CHECK_POINTER(PTR) if (NULL == PTR) { ASSERT_FALSE(PTR, "NULL pointer"); }
\r
76 static int32_t Str2Int(const char *val)
\r
78 return strtol( val, NULL, 0 );
\r
81 void *MCalloc(struct UcsXmlObjectList *list, uint32_t nElem, uint32_t elemSize)
\r
84 struct UcsXmlObjectList *tail = list;
\r
85 if (NULL == list || 0 == nElem || 0 == elemSize) return NULL;
\r
87 obj = calloc(nElem, elemSize);
\r
93 if (NULL == list->obj)
\r
98 while(tail->next) tail = tail->next;
\r
99 tail->next = calloc(1, sizeof(struct UcsXmlObjectList));
\r
100 if (NULL == tail->next)
\r
106 tail->next->obj = obj;
\r
110 void FreeObjList(struct UcsXmlObjectList *cur)
\r
112 struct UcsXmlObjectList *root = cur;
\r
115 struct UcsXmlObjectList *next = cur->next;
\r
116 assert(NULL != cur->obj);
\r
125 bool GetMostSocket(Ucs_Xrm_MostSocket_t **mostSoc, struct MostSocketParameters *param)
\r
127 Ucs_Xrm_MostSocket_t *soc = NULL;
\r
128 CHECK_POINTER(mostSoc);
\r
129 CHECK_POINTER(param);
\r
130 CHECK_POINTER(param->list);
\r
131 soc = MCalloc(param->list, 1, sizeof(Ucs_Xrm_MostSocket_t));
\r
132 CHECK_POINTER(soc);
\r
134 soc->resource_type = UCS_XRM_RC_TYPE_MOST_SOCKET;
\r
135 soc->most_port_handle = 0x0D00;
\r
136 soc->bandwidth = param->bandwidth;
\r
137 soc->direction = param->isSource ? UCS_SOCKET_DIR_INPUT : UCS_SOCKET_DIR_OUTPUT;
\r
138 switch(param->dataType)
\r
141 soc->data_type = UCS_MOST_SCKT_SYNC_DATA;
\r
143 case AV_PACKETIZED:
\r
144 soc->data_type = UCS_MOST_SCKT_AV_PACKETIZED;
\r
147 soc->data_type = UCS_MOST_SCKT_QOS_IP;
\r
149 case DISC_FRAME_PHASE:
\r
150 soc->data_type = UCS_MOST_SCKT_DISC_FRAME_PHASE;
\r
153 ASSERT_FALSE("GetMostSocket->dataType", "");
\r
158 bool GetUsbPort(Ucs_Xrm_UsbPort_t **usbPort, struct UsbPortParameters *param)
\r
160 Ucs_Xrm_UsbPort_t *port = NULL;
\r
161 CHECK_POINTER(usbPort);
\r
162 CHECK_POINTER(param);
\r
163 CHECK_POINTER(param->list);
\r
164 CHECK_POINTER(param->deviceInterfaces);
\r
165 CHECK_POINTER(param->streamInCount);
\r
166 CHECK_POINTER(param->streamOutCount);
\r
167 CHECK_POINTER(param->physicalLayer);
\r
168 port = MCalloc(param->list, 1, sizeof(Ucs_Xrm_UsbPort_t));
\r
169 CHECK_POINTER(port);
\r
171 port->resource_type = UCS_XRM_RC_TYPE_USB_PORT;
\r
173 port->devices_interfaces = (uint16_t)Str2Int(param->deviceInterfaces);
\r
174 port->streaming_if_ep_in_count = (uint8_t)Str2Int(param->streamInCount);
\r
175 port->streaming_if_ep_out_count = (uint8_t)Str2Int(param->streamOutCount);
\r
176 if (0 == strcmp(USB_PHY_STANDARD, param->physicalLayer))
\r
177 port->physical_layer = UCS_USB_PHY_LAYER_STANDARD;
\r
178 else if (0 == strcmp(USB_PHY_HSIC, param->physicalLayer))
\r
179 port->physical_layer = UCS_USB_PHY_LAYER_HSCI;
\r
180 else ASSERT_FALSE("GetUsbPort->physical_layer", param->physicalLayer);
\r
184 bool GetUsbPortDefaultCreated(Ucs_Xrm_ResObject_t **usbPort, struct UcsXmlObjectList *list)
\r
186 Ucs_Xrm_DefaultCreatedPort_t *p;
\r
187 CHECK_POINTER(usbPort);
\r
188 CHECK_POINTER(list);
\r
189 p = MCalloc(list, 1, sizeof(Ucs_Xrm_DefaultCreatedPort_t));
\r
191 p->resource_type = UCS_XRM_RC_TYPE_DC_PORT;
\r
192 p->port_type = UCS_XRM_PORT_TYPE_USB;
\r
194 *usbPort = (Ucs_Xrm_ResObject_t *)p;
\r
198 bool GetUsbSocket(Ucs_Xrm_UsbSocket_t **usbSoc, struct UsbSocketParameters *param)
\r
200 Ucs_Xrm_UsbSocket_t *soc = NULL;
\r
201 CHECK_POINTER(usbSoc);
\r
202 CHECK_POINTER(param);
\r
203 CHECK_POINTER(param->list);
\r
204 CHECK_POINTER(param->endpointAddress);
\r
205 CHECK_POINTER(param->framesPerTrans);
\r
206 CHECK_POINTER(param->usbPort);
\r
207 soc = MCalloc(param->list, 1, sizeof(Ucs_Xrm_UsbSocket_t));
\r
208 CHECK_POINTER(soc);
\r
210 soc->resource_type = UCS_XRM_RC_TYPE_USB_SOCKET;
\r
211 soc->direction = param->isSource ? UCS_SOCKET_DIR_INPUT : UCS_SOCKET_DIR_OUTPUT;
\r
212 switch(param->dataType)
\r
215 soc->data_type = UCS_USB_SCKT_SYNC_DATA;
\r
217 case AV_PACKETIZED:
\r
218 soc->data_type = UCS_USB_SCKT_AV_PACKETIZED;
\r
221 soc->data_type = UCS_USB_SCKT_IPC_PACKET;
\r
224 ASSERT_FALSE("GetUsbSocket->dataType", "");
\r
226 soc->end_point_addr = (uint8_t)Str2Int(param->endpointAddress);
\r
227 soc->frames_per_transfer = (uint16_t)Str2Int(param->framesPerTrans);
\r
228 soc->usb_port_obj_ptr = param->usbPort;
\r
232 bool GetMlbPort(Ucs_Xrm_MlbPort_t **mlbPort, struct MlbPortParameters *param)
\r
234 Ucs_Xrm_MlbPort_t *port = NULL;
\r
235 CHECK_POINTER(mlbPort);
\r
236 CHECK_POINTER(param);
\r
237 CHECK_POINTER(param->list);
\r
238 CHECK_POINTER(param->clockConfig);
\r
239 port = MCalloc(param->list, 1, sizeof(Ucs_Xrm_MlbPort_t));
\r
240 CHECK_POINTER(port);
\r
242 port->resource_type = UCS_XRM_RC_TYPE_MLB_PORT;
\r
244 if (0 == strcmp(param->clockConfig, CLOCK_256FS))
\r
245 port->clock_config = UCS_MLB_CLK_CFG_256_FS;
\r
246 else if (0 == strcmp(param->clockConfig, CLOCK_512FS))
\r
247 port->clock_config = UCS_MLB_CLK_CFG_512_FS;
\r
248 else if (0 == strcmp(param->clockConfig, CLOCK_1024FS))
\r
249 port->clock_config = UCS_MLB_CLK_CFG_1024_FS;
\r
250 else if (0 == strcmp(param->clockConfig, CLOCK_2048FS))
\r
251 port->clock_config = UCS_MLB_CLK_CFG_2048_FS;
\r
252 else if (0 == strcmp(param->clockConfig, CLOCK_3072FS))
\r
253 port->clock_config = UCS_MLB_CLK_CFG_3072_FS;
\r
254 else if (0 == strcmp(param->clockConfig, CLOCK_4096FS))
\r
255 port->clock_config = UCS_MLB_CLK_CFG_4096_FS;
\r
256 else if (0 == strcmp(param->clockConfig, CLOCK_6144FS))
\r
257 port->clock_config = UCS_MLB_CLK_CFG_6144_FS;
\r
258 else if (0 == strcmp(param->clockConfig, CLOCK_8192FS))
\r
259 port->clock_config = UCS_MLB_CLK_CFG_8192_FS;
\r
260 else ASSERT_FALSE("GetMlbPort->clockConfig", param->clockConfig);
\r
264 bool GetMlbPortDefaultCreated(Ucs_Xrm_ResObject_t **mlbPort, struct UcsXmlObjectList *list)
\r
266 Ucs_Xrm_DefaultCreatedPort_t *p;
\r
267 CHECK_POINTER(mlbPort);
\r
268 CHECK_POINTER(list)
\r
269 p = MCalloc(list, 1, sizeof(Ucs_Xrm_DefaultCreatedPort_t));
\r
271 p->resource_type = UCS_XRM_RC_TYPE_DC_PORT;
\r
272 p->port_type = UCS_XRM_PORT_TYPE_MLB;
\r
274 *mlbPort = (Ucs_Xrm_ResObject_t *)p;
\r
278 bool GetMlbSocket(Ucs_Xrm_MlbSocket_t **mlbSoc, struct MlbSocketParameters *param)
\r
280 Ucs_Xrm_MlbSocket_t *soc = NULL;
\r
281 CHECK_POINTER(mlbSoc);
\r
282 CHECK_POINTER(param);
\r
283 CHECK_POINTER(param->list);
\r
284 CHECK_POINTER(param->channelAddress);
\r
285 CHECK_POINTER(param->mlbPort);
\r
286 soc = MCalloc(param->list, 1, sizeof(Ucs_Xrm_MlbSocket_t));
\r
287 CHECK_POINTER(soc);
\r
289 soc->resource_type = UCS_XRM_RC_TYPE_MLB_SOCKET;
\r
290 soc->direction = param->isSource ? UCS_SOCKET_DIR_INPUT : UCS_SOCKET_DIR_OUTPUT;
\r
291 soc->bandwidth = param->bandwidth;
\r
292 switch(param->dataType)
\r
295 soc->data_type = UCS_MLB_SCKT_SYNC_DATA;
\r
297 case AV_PACKETIZED:
\r
298 soc->data_type = UCS_MLB_SCKT_AV_PACKETIZED;
\r
301 soc->data_type = UCS_MLB_SCKT_QOS_IP;
\r
303 case DISC_FRAME_PHASE:
\r
304 soc->data_type = UCS_MLB_SCKT_DISC_FRAME_PHASE;
\r
307 soc->data_type = UCS_MLB_SCKT_IPC_PACKET;
\r
310 ASSERT_FALSE("GetMlbSocket->dataType", "");
\r
312 soc->channel_address = (uint16_t)Str2Int(param->channelAddress);
\r
313 soc->mlb_port_obj_ptr = param->mlbPort;
\r
317 bool GetStrmPort(Ucs_Xrm_StrmPort_t **strmPort, struct StrmPortParameters *param)
\r
319 Ucs_Xrm_StrmPort_t *port = NULL;
\r
320 CHECK_POINTER(strmPort);
\r
321 CHECK_POINTER(param);
\r
322 CHECK_POINTER(param->list);
\r
323 CHECK_POINTER(param->clockConfig);
\r
324 port = MCalloc(param->list, 1, sizeof(Ucs_Xrm_StrmPort_t));
\r
325 CHECK_POINTER(port);
\r
327 port->resource_type = UCS_XRM_RC_TYPE_STRM_PORT;
\r
328 port->index = param->index;
\r
329 if (0 == port->index)
\r
331 if (0 == strcmp(param->clockConfig, CLOCK_8FS))
\r
332 port->clock_config = UCS_STREAM_PORT_CLK_CFG_8FS;
\r
333 else if (0 == strcmp(param->clockConfig, CLOCK_16FS))
\r
334 port->clock_config = UCS_STREAM_PORT_CLK_CFG_16FS;
\r
335 else if (0 == strcmp(param->clockConfig, CLOCK_32FS))
\r
336 port->clock_config = UCS_STREAM_PORT_CLK_CFG_32FS;
\r
337 else if (0 == strcmp(param->clockConfig, CLOCK_64FS))
\r
338 port->clock_config = UCS_STREAM_PORT_CLK_CFG_64FS;
\r
339 else if (0 == strcmp(param->clockConfig, CLOCK_128FS))
\r
340 port->clock_config = UCS_STREAM_PORT_CLK_CFG_128FS;
\r
341 else if (0 == strcmp(param->clockConfig, CLOCK_256FS))
\r
342 port->clock_config = UCS_STREAM_PORT_CLK_CFG_256FS;
\r
343 else if (0 == strcmp(param->clockConfig, CLOCK_512FS))
\r
344 port->clock_config = UCS_STREAM_PORT_CLK_CFG_512FS;
\r
345 else if (0 == strcmp(param->clockConfig, CLOCK_WILDCARD))
\r
346 port->clock_config = UCS_STREAM_PORT_CLK_CFG_WILD;
\r
347 else ASSERT_FALSE("GetStrmPort->clockConfig", param->clockConfig);
\r
349 port->clock_config = UCS_STREAM_PORT_CLK_CFG_WILD;
\r
352 if (0 == strcmp(param->dataAlignment, STRM_ALIGN_L16))
\r
353 port->data_alignment = UCS_STREAM_PORT_ALGN_LEFT16BIT;
\r
354 else if (0 == strcmp(param->dataAlignment, STRM_ALIGN_L24))
\r
355 port->data_alignment = UCS_STREAM_PORT_ALGN_LEFT24BIT;
\r
356 else if (0 == strcmp(param->dataAlignment, STRM_ALIGN_R16))
\r
357 port->data_alignment = UCS_STREAM_PORT_ALGN_RIGHT16BIT;
\r
358 else if (0 == strcmp(param->dataAlignment, STRM_ALIGN_R24))
\r
359 port->data_alignment = UCS_STREAM_PORT_ALGN_RIGHT24BIT;
\r
360 else if (0 == strcmp(param->dataAlignment, STRM_ALIGN_SEQUENTIAL))
\r
361 port->data_alignment = UCS_STREAM_PORT_ALGN_SEQ;
\r
362 else ASSERT_FALSE("GetStrmPort->dataAlignment", param->dataAlignment);
\r
366 bool GetStrmSocket(Ucs_Xrm_StrmSocket_t **strmSoc, struct StrmSocketParameters *param)
\r
368 Ucs_Xrm_StrmSocket_t *soc = NULL;
\r
369 CHECK_POINTER(strmSoc);
\r
370 CHECK_POINTER(param);
\r
371 CHECK_POINTER(param->list);
\r
372 CHECK_POINTER(param->streamPin);
\r
373 CHECK_POINTER(param->streamPortA);
\r
374 CHECK_POINTER(param->streamPortB);
\r
375 soc = MCalloc(param->list, 1, sizeof(Ucs_Xrm_StrmSocket_t));
\r
376 CHECK_POINTER(soc);
\r
378 soc->resource_type = UCS_XRM_RC_TYPE_STRM_SOCKET;
\r
379 soc->direction = param->isSource ? UCS_SOCKET_DIR_INPUT : UCS_SOCKET_DIR_OUTPUT;
\r
380 switch(param->dataType)
\r
383 soc->data_type = UCS_STREAM_PORT_SCKT_SYNC_DATA;
\r
386 ASSERT_FALSE("GetStrmSocket->dataType", "");
\r
388 soc->bandwidth = param->bandwidth;
\r
389 if (0 == strcmp(param->streamPin, I2S_PIN_SRXA0))
\r
391 soc->stream_pin_id = UCS_STREAM_PORT_PIN_ID_SRXA0;
\r
392 soc->stream_port_obj_ptr = param->streamPortA;
\r
395 else if (0 == strcmp(param->streamPin, I2S_PIN_SRXA1))
\r
397 soc->stream_pin_id = UCS_STREAM_PORT_PIN_ID_SRXA1;
\r
398 soc->stream_port_obj_ptr = param->streamPortA;
\r
401 else if (0 == strcmp(param->streamPin, I2S_PIN_SRXB0))
\r
403 soc->stream_pin_id = UCS_STREAM_PORT_PIN_ID_SRXB0;
\r
404 soc->stream_port_obj_ptr = param->streamPortB;
\r
407 else if (0 == strcmp(param->streamPin, I2S_PIN_SRXB1))
\r
409 soc->stream_pin_id = UCS_STREAM_PORT_PIN_ID_SRXB1;
\r
410 soc->stream_port_obj_ptr = param->streamPortB;
\r
413 else ASSERT_FALSE("GetStrmSocket->streamPin", param->streamPin);
\r
417 bool GetSplitter(Ucs_Xrm_Splitter_t **splitter, struct SplitterParameters *param)
\r
419 Ucs_Xrm_Splitter_t *split = NULL;
\r
420 CHECK_POINTER(splitter);
\r
421 CHECK_POINTER(param);
\r
422 CHECK_POINTER(param->list);
\r
423 split = MCalloc(param->list, 1, sizeof(Ucs_Xrm_Splitter_t));
\r
424 CHECK_POINTER(split);
\r
426 split->most_port_handle = 0x0D00;
\r
427 split->resource_type = UCS_XRM_RC_TYPE_SPLITTER;
\r
428 split->bytes_per_frame = param->bytesPerFrame;
\r
429 split->socket_in_obj_ptr = param->inSoc;
\r
433 bool GetCombiner(Ucs_Xrm_Combiner_t **combiner, struct CombinerParameters *param)
\r
435 Ucs_Xrm_Combiner_t *comb = NULL;
\r
436 CHECK_POINTER(combiner);
\r
437 CHECK_POINTER(param);
\r
438 CHECK_POINTER(param->list);
\r
439 comb = MCalloc(param->list, 1, sizeof(Ucs_Xrm_Combiner_t));
\r
440 CHECK_POINTER(comb);
\r
442 comb->most_port_handle = 0x0D00;
\r
443 comb->resource_type = UCS_XRM_RC_TYPE_COMBINER;
\r
444 comb->bytes_per_frame = param->bytesPerFrame;
\r
445 comb->port_socket_obj_ptr = param->outSoc;
\r
449 bool GetSyncCon(Ucs_Xrm_SyncCon_t **syncCon, struct SyncConParameters *param)
\r
451 Ucs_Xrm_SyncCon_t *con = NULL;
\r
452 CHECK_POINTER(syncCon);
\r
453 CHECK_POINTER(param);
\r
454 CHECK_POINTER(param->list);
\r
455 CHECK_POINTER(param->muteMode);
\r
456 CHECK_POINTER(param->inSoc);
\r
457 CHECK_POINTER(param->outSoc);
\r
458 con = MCalloc(param->list, 1, sizeof(Ucs_Xrm_SyncCon_t));
\r
459 CHECK_POINTER(con);
\r
461 con->resource_type = UCS_XRM_RC_TYPE_SYNC_CON;
\r
462 if (0 == strcmp(param->muteMode, MUTE_OFF))
\r
463 con->mute_mode = UCS_SYNC_MUTE_MODE_NO_MUTING;
\r
464 else if (0 == strcmp(param->muteMode, MUTE_SIGNAL))
\r
465 con->mute_mode = UCS_SYNC_MUTE_MODE_MUTE_SIGNAL;
\r
466 else ASSERT_FALSE("GetSyncCon->mute_mode", param->muteMode);
\r
467 if (param->optional_offset)
\r
468 con->offset = (uint16_t)Str2Int(param->optional_offset);
\r
471 con->socket_in_obj_ptr = param->inSoc;
\r
472 con->socket_out_obj_ptr = param->outSoc;
\r
476 bool GetAvpCon(Ucs_Xrm_AvpCon_t **avpCon, struct AvpConParameters *param)
\r
478 Ucs_Xrm_AvpCon_t *con = NULL;
\r
479 CHECK_POINTER(avpCon);
\r
480 CHECK_POINTER(param);
\r
481 CHECK_POINTER(param->list);
\r
482 CHECK_POINTER(param->inSoc);
\r
483 CHECK_POINTER(param->outSoc);
\r
484 con = MCalloc(param->list, 1, sizeof(Ucs_Xrm_AvpCon_t));
\r
485 CHECK_POINTER(con);
\r
487 con->resource_type = UCS_XRM_RC_TYPE_AVP_CON;
\r
488 con->socket_in_obj_ptr = param->inSoc;
\r
489 con->socket_out_obj_ptr = param->outSoc;
\r
490 if (param->optional_isocPacketSize)
\r
492 int32_t pSize = Str2Int(param->optional_isocPacketSize);
\r
496 con->isoc_packet_size = UCS_ISOC_PCKT_SIZE_188;
\r
499 con->isoc_packet_size = UCS_ISOC_PCKT_SIZE_196;
\r
502 con->isoc_packet_size = UCS_ISOC_PCKT_SIZE_206;
\r
505 ASSERT_FALSE("GetAvpCon->isoc_packet_size", "");
\r
508 con->isoc_packet_size = UCS_ISOC_PCKT_SIZE_188;
\r