/home/sn3d/devel/aja-ml/aja-lib/src/aja_types.h

Go to the documentation of this file.
00001 /*******************************************************/
00012 #if !defined(_AJA_TYPES_H_)
00013 #define _AJA_TYPES_H_
00014 
00015 //constants
00016 #define BYTE_MAX     0xFF
00017 #define NUMBER16_MAX 0x0000FFFF
00018 #define NUMBER24_MAX 0x00FFFFFF
00019 #define TERMINATOR   0x00
00020 
00021 #define ITEMTYPE_MASK      0xF0
00022 #define ELEMENTTYPE_MASK   0x0F
00023 #define ATTRIBUTETYPE_MASK 0x0F
00024 
00025 
00026 // definitions of data-sizes(for movement and calculating item's size
00027 #define SIZE_ITEM_START      1
00028 
00029 
00030 #define SIZE_ELM_ID          3
00031 #define SIZE_ELM_ATTR_COUNT  1
00032 #define SIZE_ELM_CRC         2
00033 #define SIZE_ELM_DATA_LEN    4
00034 #define SIZE_ELM_STR_LEN     2
00035 #define SIZE_ELM_PARENT_LEN  4
00036 #define SIZE_ELM_DATA_LEN    4
00037 #define SIZE_ELM_HEADER      SIZE_ITEM_START + SIZE_ELM_ID + SIZE_ELM_ATTR_COUNT
00038 
00039 
00040 #define SIZE_ATTR_ID         8
00041 #define SIZE_ATTR_DATA_LEN   2
00042 #define SIZE_ATTR_STRING_LEN 2
00043 #define SIZE_ATTR_HEADER     SIZE_ITEM_START + SIZE_ATTR_ID
00044 
00045 #define SIZE_NUMBER          4
00046 #define SIZE_TERMINATOR      1
00047 
00048 
00049 //reserved ID's for elements and attributes
00050 #define ELEMENT_HEADER_ROOT  1
00051 #define ELEMENT_VALUE        2
00052 #define ELEMENT_TRANS_TABLE  3
00053 #define ELEMENT_TT_ELEMENT   4
00054 #define ELEMENT_TT_ATTRIBUTE 5
00055 
00056 #define ATTRIBUTE_VALUE_NAME     1
00057 #define ATTRIBUTE_ELEMENT_ID     1
00058 #define ATTRIBUTE_ELEMENT_NAME   2
00059 #define ATTRIBUTE_ELEMENT_DESC   3
00060 #define ATTRIBUTE_ATTRIBUTE_ID   1
00061 #define ATTRIBUTE_ATTRIBUTE_NAME 2
00062 #define ATTRIBUTE_ATTRIBUTE_DESC 3
00063 
00064 namespace aja
00065 {
00066         //versions
00067         #define AJA_VERSION_1_0 0x10
00068         #define AJA_VALID_VERSION(ver) (ver == AJA_VERSION_1_0)
00069 
00070         typedef unsigned char  byte_t;   
00071         typedef unsigned short dbyte_t;  
00072         typedef unsigned int   number_t; 
00073         typedef byte_t*        buffer_t; 
00074 
00075         
00077         enum elementType_t
00078         {
00079                 ELM_UNDEFINED = 0x00,
00080                 ELM_DATA      = 0x01,
00081                 ELM_NUMBER    = 0x02,
00082                 ELM_STRING    = 0x03,
00083                 ELM_PARENT    = 0x0F
00084         };
00085         #define IS_ELEMENT_TYPE(value) ( ((value > 0x00) && (value <= 0x03)) || (value == 0x0F) )
00086         
00087         
00089         enum attributeType_t
00090         {
00091                 ATTR_UNDEFINED  = 0x00,
00092                 ATTR_DATA       = 0x01,
00093                 ATTR_NUMBER     = 0x02,
00094                 ATTR_STRING     = 0x03
00095         };
00096         #define IS_ATTRIBUTE_TYPE(value) ((value > 0x00) && (value <= 0x03))
00097 
00098 
00100         enum itemType_t
00101         {
00102                 ITM_UNDEFINED      = 0x00,
00103                 ITM_ELEMENT        = 0x01,
00104                 ITM_ATTRIBUTE      = 0x02,
00105                 ITM_DOCUMENTHEADER = 0x0A
00106         };
00107         #define IS_ITEM_TYPE(value) ((value > 0x00) && (value <= 0x03))
00108 
00109 }
00110 
00111 #endif

Generated on Sun Mar 4 00:30:36 2007 for LIBAJA by  doxygen 1.4.6