/*---------------------------------------------------------------------------------*/ /* Includes */ /*---------------------------------------------------------------------------------*/ #ifndef _DRUMMER_H_ #define _DRUMMER_H_ #include #include #include #include #include #include #include #include #include #include #include #include /*----------------------------------------------------------------------------*/ /* Global definitions */ /*----------------------------------------------------------------------------*/ typedef short DRT_Boolean; #define DRD_FALSE ( DRT_Boolean) 0 #define DRD_TRUE ( DRT_Boolean) 1 #define DRD_NO 'n' #define DRD_YES 'y' #define DRD_MAX(A,B) (((A) < (B)) ? (B) : (A)) #define DRD_MIN(A,B) (((A) > (B)) ? (B) : (A)) #define NDD_CMD_INDEX0_PRINT ( NDT_Command) 65 #define NDD_CMD_INDEX1_PRINT ( NDT_Command) 66 #define NAME_LEN (short) 256 #define NAME_SIZE (NAME_LEN + 1) #define FILENAME_LEN (short) 1024 #define FILENAME_SIZE (FILENAME_LEN) #define DESC_LEN (short) 2048 #define DESC_SIZE (DESC_LEN + 1) /*----------------------------------------------------------------------------*/ /* Status definition */ /*----------------------------------------------------------------------------*/ typedef short DRT_Status; #define DRS_OK ( DRT_Status) 0 #define DRS_KO ( DRT_Status) 1 #define DRS_NO_IDENT ( DRT_Status) -2 #define DRS_BAD_FORMAT ( DRT_Status) -3 #define DRS_ROLLBACK ( DRT_Status) -4 #define DRS_NO_DATA ( DRT_Status) 3 #define DRS_SIGNAL ( DRT_Status) 4 /*----------------------------------------------------------------------------*/ /* Kit_DS Indexes */ /*----------------------------------------------------------------------------*/ #define DRD_INSTRUMENT_DS_INDEX_NB (short)2 static NDT_Index_Type DRG_Instrument_DS_Index_Tab_Initial[DRD_INSTRUMENT_DS_INDEX_NB] = { (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_SORTED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_SORTED) }; static NDT_Index_Type DRG_Instrument_DS_Index_Tab_Final[DRD_INSTRUMENT_DS_INDEX_NB] = { (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED) }; /*----------------------------------------------------------------------------*/ /* Kit_DS Indexes */ /*----------------------------------------------------------------------------*/ #define DRD_KIT_DS_INDEX_NB (short)2 static NDT_Index_Type DRG_Kit_DS_Index_Tab_Initial[DRD_KIT_DS_INDEX_NB] = { (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_SORTED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_LIST | NDD_INDEX_SUBTYPE_SORTED) }; static NDT_Index_Type DRG_Kit_DS_Index_Tab_Final[DRD_KIT_DS_INDEX_NB] = { (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED), (NDD_INDEX_STATUS_OPENED | NDD_INDEX_TYPE_TREE | NDD_INDEX_SUBTYPE_BALANCED) }; /*---------------------------------------------------------------------------------*/ /* XML XPATH Tags */ /*---------------------------------------------------------------------------------*/ #define STR(A) #A #define TAG(A) STR(A) #define XML_XPATH_ELEMENT(A) *[local-name()=(A)] #define XML_XPATH_DRUMKIT_BASE_TAG XML_XPATH_ELEMENT('drumkit_info') #define XML_XPATH_DRUMKIT_NAME_TAG XML_XPATH_ELEMENT('name') #define XML_XPATH_DRUMKIT_INFO_TAG XML_XPATH_ELEMENT('info') #define XML_XPATH_DRUMKIT_INSTRUMENTLIST_TAG XML_XPATH_ELEMENT('instrumentList') #define XML_XPATH_DRUMKIT_INSTRUMENT_TAG XML_XPATH_ELEMENT('instrument') #define XML_XPATH_DRUMKIT_ID_TAG XML_XPATH_ELEMENT('id') #define XML_XPATH_DRUMKIT_INSTRUMENTCOMPONENT_TAG XML_XPATH_ELEMENT('instrumentComponent') #define XML_XPATH_DRUMKIT_LAYER_TAG XML_XPATH_ELEMENT('layer') #define XML_XPATH_DRUMKIT_FILENAME_TAG XML_XPATH_ELEMENT('filename') #define XML_XPATH_DRUMKIT_BASE_STR TAG(/XML_XPATH_DRUMKIT_BASE_TAG) #define XML_XPATH_DRUMKIT_ID_STR TAG(/XML_XPATH_DRUMKIT_ID_TAG) #define XML_XPATH_DRUMKIT_NAME_STR TAG(/XML_XPATH_DRUMKIT_NAME_TAG) #define XML_XPATH_DRUMKIT_LAYER_FILENAME_STR TAG(/XML_XPATH_DRUMKIT_INSTRUMENTCOMPONENT_TAG/XML_XPATH_DRUMKIT_LAYER_TAG[1]/XML_XPATH_DRUMKIT_FILENAME_TAG) #define XML_XPATH_DRUMKIT_KIT_NAME_FULL TAG(/XML_XPATH_DRUMKIT_BASE_TAG/XML_XPATH_DRUMKIT_NAME_TAG) #define XML_XPATH_DRUMKIT_KIT_INFO_FULL TAG(/XML_XPATH_DRUMKIT_BASE_TAG/XML_XPATH_DRUMKIT_INFO_TAG) #define XML_XPATH_DRUMKIT_INSTRUMENT_FULL TAG(/XML_XPATH_DRUMKIT_BASE_TAG/XML_XPATH_DRUMKIT_INSTRUMENTLIST_TAG/XML_XPATH_DRUMKIT_INSTRUMENT_TAG[%i]) /*---------------------------------------------------------------------------------*/ /* TypeDefs */ /*---------------------------------------------------------------------------------*/ typedef struct DRT_Instrument { short Id; char Name[ NAME_SIZE]; char FileName[ FILENAME_SIZE]; double Gain; char *Sample_Ptr; long Sample_Size; } DRT_Instrument; typedef struct DRT_Kit { short Id; char Name[ NAME_SIZE]; char Desc[ DESC_SIZE]; char FileName[ FILENAME_SIZE]; NDT_Root *Instrument_DS_Ptr; } DRT_Kit; /* typedef struct DRT_Library { NDT_Root *Kit_DS; } DRT_Library; */ typedef struct DRT_Base { NDT_Root *Kit_DS_Ptr; } DRT_Base; /*----------------------------------------------------------------------------*/ /* Prototypes */ /*----------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/ /* DS Managers */ /*---------------------------------------------------------------------------------*/ NDT_Status DR_Instrument_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list *); NDT_Status DR_Kit_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list *); /*----------------------------------------------------------------------------*/ /* DR_Instrument_Add */ /*----------------------------------------------------------------------------*/ DRT_Status DR_Instrument_Add( DRT_Instrument **, NDT_Root *, char *, char *, double, char *, long); /*---------------------------------------------------------------------------------*/ /* DR_Instrument_Dump */ /*---------------------------------------------------------------------------------*/ DRT_Status DR_Instrument_Dump( DRT_Instrument *, long); /*----------------------------------------------------------------------------*/ /* DR_Kit_Add */ /*----------------------------------------------------------------------------*/ DRT_Status DR_Kit_Add( DRT_Kit **, NDT_Root *, char *, char *, char *); /*---------------------------------------------------------------------------------*/ /* DR_Kit_Dump */ /*---------------------------------------------------------------------------------*/ DRT_Status DR_Kit_Dump( DRT_Kit *, long); /*----------------------------------------------------------------------------*/ /* DR_Kits_Load */ /*----------------------------------------------------------------------------*/ DRT_Status DRT_Kits_Load( DRT_Base *); /*----------------------------------------------------------------------------*/ /* DR_Kits_Dump */ /*----------------------------------------------------------------------------*/ DRT_Status DRT_Kits_Dump( DRT_Base *); /*----------------------------------------------------------------------------*/ /* DR_Init */ /*----------------------------------------------------------------------------*/ DRT_Status DRT_Init( DRT_Base *); /*----------------------------------------------------------------------------*/ /* DeInit */ /*----------------------------------------------------------------------------*/ DRT_Status DRT_DeInit( DRT_Base *); /*----------------------------------------------------------------------------*/ /* main */ /*----------------------------------------------------------------------------*/ /* ArgC: argument number */ /* ArgV: Argument tab */ /*----------------------------------------------------------------------------*/ int main( int, char **); /*----------------------------------------------------------------------------*/ #endif