eas_parser.h revision e442bb7cd6a085b33a4dd52c0e20a157ada7feb1
13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/*---------------------------------------------------------------------------- 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * File: 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * eas_parser.h 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * Contents and purpose: 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * Interface declarations for the generic parser interface 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * This header only contains declarations that are specific 103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * to this implementation. 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * Copyright Sonic Network Inc. 2005 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * you may not use this file except in compliance with the License. 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * You may obtain a copy of the License at 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * http://www.apache.org/licenses/LICENSE-2.0 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * See the License for the specific language governing permissions and 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * limitations under the License. 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) *---------------------------------------------------------------------------- 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * Revision Control: 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) * $Revision: 767 $ 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) * $Date: 2007-07-19 13:47:31 -0700 (Thu, 19 Jul 2007) $ 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) *---------------------------------------------------------------------------- 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)*/ 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef _EAS_PARSER_H 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define _EAS_PARSER_H 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "eas_types.h" 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)/* metadata callback */ 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)typedef struct s_metadata_cb_tag 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles){ 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EAS_METADATA_CBFUNC callback; 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) char *buffer; 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EAS_VOID_PTR pUserData; 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EAS_I32 bufferSize; 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} S_METADATA_CB; 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)/* generic parser interface */ 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)typedef struct 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles){ 513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) EAS_RESULT (* EAS_CONST pfCheckFileType)(struct s_eas_data_tag *pEASData, EAS_FILE_HANDLE fileHandle, EAS_VOID_PTR *ppHandle, EAS_I32 offset); 52 EAS_RESULT (* EAS_CONST pfPrepare)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 53 EAS_RESULT (* EAS_CONST pfTime)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_U32 *pTime); 54 EAS_RESULT (* EAS_CONST pfEvent)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_INT parseMode); 55 EAS_RESULT (* EAS_CONST pfState)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_STATE *pState); 56 EAS_RESULT (* EAS_CONST pfClose)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 57 EAS_RESULT (* EAS_CONST pfReset)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 58 EAS_RESULT (* EAS_CONST pfPause)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 59 EAS_RESULT (* EAS_CONST pfResume)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 60 EAS_RESULT (* EAS_CONST pfLocate)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 time, EAS_BOOL *pParserLocate); 61 EAS_RESULT (* EAS_CONST pfSetData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value); 62 EAS_RESULT (* EAS_CONST pfGetData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue); 63 EAS_RESULT (* EAS_CONST pfGetMetaData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 *pMediaLength); 64} S_FILE_PARSER_INTERFACE; 65 66typedef enum 67{ 68 eParserModePlay, 69 eParserModeLocate, 70 eParserModeMute, 71 eParserModeMetaData 72} E_PARSE_MODE; 73 74typedef enum 75{ 76 PARSER_DATA_FILE_TYPE, 77 PARSER_DATA_PLAYBACK_RATE, 78 PARSER_DATA_TRANSPOSITION, 79 PARSER_DATA_VOLUME, 80 PARSER_DATA_SYNTH_HANDLE, 81 PARSER_DATA_METADATA_CB, 82 PARSER_DATA_DLS_COLLECTION, 83 PARSER_DATA_EAS_LIBRARY, 84 PARSER_DATA_POLYPHONY, 85 PARSER_DATA_PRIORITY, 86 PARSER_DATA_FORMAT, 87 PARSER_DATA_MEDIA_LENGTH, 88 PARSER_DATA_JET_CB, 89 PARSER_DATA_MUTE_FLAGS, 90 PARSER_DATA_SET_MUTE, 91 PARSER_DATA_CLEAR_MUTE, 92 PARSER_DATA_NOTE_COUNT, 93 PARSER_DATA_MAX_PCM_STREAMS, 94 PARSER_DATA_GAIN_OFFSET, 95 PARSER_DATA_PLAY_MODE 96} E_PARSER_DATA; 97 98#endif /* #ifndef _EAS_PARSER_H */ 99