/*---------------------------------------------------------------------------- | |
* | |
* File: | |
* eas_parser.h | |
* | |
* Contents and purpose: | |
* Interface declarations for the generic parser interface | |
* | |
* This header only contains declarations that are specific | |
* to this implementation. | |
* | |
* Copyright Sonic Network Inc. 2005 | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
* | |
*---------------------------------------------------------------------------- | |
* Revision Control: | |
* $Revision: 767 $ | |
* $Date: 2007-07-19 13:47:31 -0700 (Thu, 19 Jul 2007) $ | |
*---------------------------------------------------------------------------- | |
*/ | |
#ifndef _EAS_PARSER_H | |
#define _EAS_PARSER_H | |
#include "eas_types.h" | |
/* metadata callback */ | |
typedef struct s_metadata_cb_tag | |
{ | |
EAS_METADATA_CBFUNC callback; | |
char *buffer; | |
EAS_VOID_PTR pUserData; | |
EAS_I32 bufferSize; | |
} S_METADATA_CB; | |
/* generic parser interface */ | |
typedef struct | |
{ | |
EAS_RESULT (* EAS_CONST pfCheckFileType)(struct s_eas_data_tag *pEASData, EAS_FILE_HANDLE fileHandle, EAS_VOID_PTR *ppHandle, EAS_I32 offset); | |
EAS_RESULT (* EAS_CONST pfPrepare)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); | |
EAS_RESULT (* EAS_CONST pfTime)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_U32 *pTime); | |
EAS_RESULT (* EAS_CONST pfEvent)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_INT parseMode); | |
EAS_RESULT (* EAS_CONST pfState)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_STATE *pState); | |
EAS_RESULT (* EAS_CONST pfClose)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); | |
EAS_RESULT (* EAS_CONST pfReset)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); | |
EAS_RESULT (* EAS_CONST pfPause)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); | |
EAS_RESULT (* EAS_CONST pfResume)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); | |
EAS_RESULT (* EAS_CONST pfLocate)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 time, EAS_BOOL *pParserLocate); | |
EAS_RESULT (* EAS_CONST pfSetData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value); | |
EAS_RESULT (* EAS_CONST pfGetData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue); | |
EAS_RESULT (* EAS_CONST pfGetMetaData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 *pMediaLength); | |
} S_FILE_PARSER_INTERFACE; | |
typedef enum | |
{ | |
eParserModePlay, | |
eParserModeLocate, | |
eParserModeMute, | |
eParserModeMetaData | |
} E_PARSE_MODE; | |
typedef enum | |
{ | |
PARSER_DATA_FILE_TYPE, | |
PARSER_DATA_PLAYBACK_RATE, | |
PARSER_DATA_TRANSPOSITION, | |
PARSER_DATA_VOLUME, | |
PARSER_DATA_SYNTH_HANDLE, | |
PARSER_DATA_METADATA_CB, | |
PARSER_DATA_DLS_COLLECTION, | |
PARSER_DATA_EAS_LIBRARY, | |
PARSER_DATA_POLYPHONY, | |
PARSER_DATA_PRIORITY, | |
PARSER_DATA_FORMAT, | |
PARSER_DATA_MEDIA_LENGTH, | |
PARSER_DATA_JET_CB, | |
PARSER_DATA_MUTE_FLAGS, | |
PARSER_DATA_SET_MUTE, | |
PARSER_DATA_CLEAR_MUTE, | |
PARSER_DATA_NOTE_COUNT, | |
PARSER_DATA_MAX_PCM_STREAMS, | |
PARSER_DATA_GAIN_OFFSET, | |
PARSER_DATA_PLAY_MODE | |
} E_PARSER_DATA; | |
#endif /* #ifndef _EAS_PARSER_H */ |