MHEG5
15.3.0
|
00001 /******************************************************************************* 00002 * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org) 00003 * Copyright © 2004 Ocean Blue Software Ltd 00004 * Copyright © 2000 Koninklijke Philips Electronics N.V 00005 * 00006 * This file is part of a DTVKit Software Component 00007 * You are permitted to copy, modify or distribute this file subject to the terms 00008 * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org 00009 * 00010 * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 00011 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 00012 * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. 00013 * 00014 * If you or your organisation is not a member of DTVKit then you have access 00015 * to this source code outside of the terms of the licence agreement 00016 * and you are expected to delete this and any associated files immediately. 00017 * Further information on DTVKit, membership and terms can be found at www.dtvkit.org 00018 *******************************************************************************/ 00026 #ifndef _FPA1_SYN_H 00027 #define _FPA1_SYN_H 00028 00029 /*---includes for this file--------------------------------------------------*/ 00030 #include "vpa1_sys.h" 00031 #include "mh5base.h" 00032 00033 /*---Constant and macro definitions for public use---------------------------*/ 00034 #define SYN_NEEDED 0 00035 #define SYN_OPTIONAL 1 00036 #define SYN_DEFAULT 2 00037 00038 /*---Enumerations for public use---------------------------------------------*/ 00039 00040 /*---Global type defs for public use-----------------------------------------*/ 00041 00042 union synItemData 00043 { 00044 MHEG5Bool boolData; 00045 MHEG5Int intData; 00046 MHEG5String stringData; 00047 }; 00048 typedef union synItemData syntaxItemData; 00049 00050 struct fpa1_syntaxItem 00051 { 00052 struct fpa1_syntaxItem *next; 00053 struct fpa1_syntaxItem *children; 00054 int tag; 00055 vpa1_filePos tagPosition; 00056 vpa1_filePos nextTagPosition; 00057 syntaxItemData data; 00058 int dataType; /* 0=none, 1=Bool, 2=Int, 4=String */ 00059 unsigned short childCount[3]; 00060 unsigned short dataTotal; 00061 }; 00062 00063 typedef struct fpa1_syntaxItem fpa1_syntaxList; 00064 00065 /*---Global variable declarations for public use-----------------------------*/ 00066 00067 /*---Global Function prototypes for public use-------------------------------*/ 00068 fpa1_syntaxList *fpa1_synGetAllTags( vpa1_filePos ); 00069 fpa1_syntaxList* fpa1_synAddItemToStartOfList( fpa1_syntaxList *, 00070 fpa1_syntaxList * ); 00071 fpa1_syntaxList* fpa1_synAddItemToList( fpa1_syntaxList *, 00072 fpa1_syntaxList * ); 00073 fpa1_syntaxList *fpa1_synCreateListItem( int, 00074 vpa1_filePos, 00075 vpa1_filePos ); 00076 fpa1_syntaxList* fpa1_synFreeFirstItem( fpa1_syntaxList * ); 00077 void fpa1_synFreeList( fpa1_syntaxList * ); 00078 fpa1_syntaxList *fpa1_synGetUnknowns( vpa1_filePos, 00079 vpa1_filePos, 00080 fpa1_syntaxList * ); 00081 fpa1_syntaxList* fpa1_synRemoveItemFromList( fpa1_syntaxList *, 00082 fpa1_syntaxList * ); 00083 00084 #endif /*_FPA1_SYN_H*/