aboutsummaryrefslogtreecommitdiffstats
path: root/ucs2-interface/ucs-xml/UcsXml_Private.h
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2017-07-13 23:40:25 +0200
committerGitHub <noreply@github.com>2017-07-13 23:40:25 +0200
commit78f5e26f3e977cba3711c2dcb15314d9821119fd (patch)
tree48a97b8b912841e9fcd1242ce0436838e8df8c92 /ucs2-interface/ucs-xml/UcsXml_Private.h
parent44f3b1d3f57c71157c968330d9f8278393a9ad98 (diff)
parenta6be7610736293774b11f9a172d156ab444811c9 (diff)
Merge pull request #5 from tkummermehr/NewXmlParserImpl
New XML Parser implementation, supports splitter and combiner
Diffstat (limited to 'ucs2-interface/ucs-xml/UcsXml_Private.h')
-rw-r--r--ucs2-interface/ucs-xml/UcsXml_Private.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/ucs2-interface/ucs-xml/UcsXml_Private.h b/ucs2-interface/ucs-xml/UcsXml_Private.h
new file mode 100644
index 0000000..c2d4d70
--- /dev/null
+++ b/ucs2-interface/ucs-xml/UcsXml_Private.h
@@ -0,0 +1,167 @@
+/*------------------------------------------------------------------------------------------------*/
+/* Unicens XML Parser */
+/* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */
+/* */
+/* Redistribution and use in source and binary forms, with or without */
+/* modification, are permitted provided that the following conditions are met: */
+/* */
+/* 1. Redistributions of source code must retain the above copyright notice, this */
+/* list of conditions and the following disclaimer. */
+/* */
+/* 2. Redistributions in binary form must reproduce the above copyright notice, */
+/* this list of conditions and the following disclaimer in the documentation */
+/* and/or other materials provided with the distribution. */
+/* */
+/* 3. Neither the name of the copyright holder nor the names of its */
+/* contributors may be used to endorse or promote products derived from */
+/* this software without specific prior written permission. */
+/* */
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
+/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
+/* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
+/* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE */
+/* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
+/* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
+/* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
+/* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
+/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
+/* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+/*------------------------------------------------------------------------------------------------*/
+#ifndef UCSXML_PRIVATE_H_
+#define UCSXML_PRIVATE_H_
+
+#include <stdbool.h>
+#include <stdint.h>
+#include "ucs_api.h"
+
+typedef enum
+{
+ SYNC_DATA = 0, /*!< \brief Specifies the synchronous streaming data type */
+ CONTROL_DATA = 2, /*!< \brief Specifies the control data type */
+ AV_PACKETIZED = 3, /*!< \brief Specifies the A/V Packetized Isochronous
+ streaming data type */
+ QOS_IP = 4, /*!< \brief Specifies the Quality of Service IP
+ streaming data type*/
+ DISC_FRAME_PHASE = 5, /*!< \brief Specifies the DiscreteFrame Isochronous
+ streaming phase data type */
+ IPC_PACKET = 7, /*!< \brief Specifies the IPC packet data type */
+ INVALID = 0xFF /*!< \brief Defined invalid value */
+} MDataType_t;
+
+struct UcsXmlObjectList
+{
+ void *obj;
+ struct UcsXmlObjectList *next;
+};
+
+void *MCalloc(struct UcsXmlObjectList *list, uint32_t nElem, uint32_t elemSize);
+void FreeObjList(struct UcsXmlObjectList *cur);
+
+struct MostSocketParameters
+{
+ struct UcsXmlObjectList *list;
+ bool isSource;
+ MDataType_t dataType;
+ uint16_t bandwidth;
+};
+bool GetMostSocket(Ucs_Xrm_MostSocket_t **mostSoc, struct MostSocketParameters *param);
+
+struct UsbPortParameters
+{
+ struct UcsXmlObjectList *list;
+ const char *physicalLayer;
+ const char *deviceInterfaces;
+ const char *streamInCount;
+ const char *streamOutCount;
+};
+bool GetUsbPort(Ucs_Xrm_UsbPort_t **usbPort, struct UsbPortParameters *param);
+bool GetUsbPortDefaultCreated(Ucs_Xrm_ResObject_t **usbPort, struct UcsXmlObjectList *list);
+
+struct UsbSocketParameters
+{
+ struct UcsXmlObjectList *list;
+ bool isSource;
+ MDataType_t dataType;
+ const char *endpointAddress;
+ const char *framesPerTrans;
+ Ucs_Xrm_ResObject_t *usbPort; /** Must be either Ucs_Xrm_UsbPort_t or Ucs_Xrm_DefaultCreatedPort_t */
+};
+bool GetUsbSocket(Ucs_Xrm_UsbSocket_t **usbSoc, struct UsbSocketParameters *param);
+
+struct MlbPortParameters
+{
+ struct UcsXmlObjectList *list;
+ const char *clockConfig;
+};
+bool GetMlbPort(Ucs_Xrm_MlbPort_t **mlbPort, struct MlbPortParameters *param);
+bool GetMlbPortDefaultCreated(Ucs_Xrm_ResObject_t **mlbPort, struct UcsXmlObjectList *list);
+
+struct MlbSocketParameters
+{
+ struct UcsXmlObjectList *list;
+ bool isSource;
+ MDataType_t dataType;
+ uint16_t bandwidth;
+ const char *channelAddress;
+ Ucs_Xrm_ResObject_t *mlbPort; /** Must be either Ucs_Xrm_MlbPort_t or Ucs_Xrm_DefaultCreatedPort_t */
+};
+bool GetMlbSocket(Ucs_Xrm_MlbSocket_t **mlbSoc, struct MlbSocketParameters *param);
+
+struct StrmPortParameters
+{
+ uint8_t index; /** Always create two Streaming Ports one with index 0 and one with index 1 */
+ struct UcsXmlObjectList *list;
+ const char *clockConfig;
+ const char *dataAlignment;
+};
+bool GetStrmPort(Ucs_Xrm_StrmPort_t **strmPort, struct StrmPortParameters *param);
+
+struct StrmSocketParameters
+{
+ struct UcsXmlObjectList *list;
+ bool isSource;
+ MDataType_t dataType;
+ uint16_t bandwidth;
+ const char *streamPin;
+ Ucs_Xrm_StrmPort_t *streamPortA; /* Mandatory, set with index 0 */
+ Ucs_Xrm_StrmPort_t *streamPortB; /* Mandatory, set with index 1 */
+};
+bool GetStrmSocket(Ucs_Xrm_StrmSocket_t **strmSoc, struct StrmSocketParameters *param);
+
+struct SplitterParameters
+{
+ struct UcsXmlObjectList *list;
+ uint16_t bytesPerFrame;
+ Ucs_Xrm_ResObject_t *inSoc;
+};
+bool GetSplitter(Ucs_Xrm_Splitter_t **splitter, struct SplitterParameters *param);
+
+struct CombinerParameters
+{
+ struct UcsXmlObjectList *list;
+ uint16_t bytesPerFrame;
+ Ucs_Xrm_ResObject_t *outSoc;
+};
+bool GetCombiner(Ucs_Xrm_Combiner_t **combiner, struct CombinerParameters *param);
+
+struct SyncConParameters
+{
+ struct UcsXmlObjectList *list;
+ const char *muteMode;
+ const char *optional_offset;
+ Ucs_Xrm_ResObject_t *inSoc;
+ Ucs_Xrm_ResObject_t *outSoc;
+};
+bool GetSyncCon(Ucs_Xrm_SyncCon_t **syncCon, struct SyncConParameters *param);
+
+struct AvpConParameters
+{
+ struct UcsXmlObjectList *list;
+ const char *optional_isocPacketSize;
+ Ucs_Xrm_ResObject_t *inSoc;
+ Ucs_Xrm_ResObject_t *outSoc;
+};
+bool GetAvpCon(Ucs_Xrm_AvpCon_t **avpCon, struct AvpConParameters *param);
+
+
+#endif /* UCSXML_PRIVATE_H_ */ \ No newline at end of file