MHEG5  15.3.0
source/asn/inc/fpa1_syn.h
Go to the documentation of this file.
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*/
 All Data Structures Files Functions Variables Typedefs Defines