156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*---------------------------------------------------------------------------- 256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * File: 456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * eas_parser.h 556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Contents and purpose: 756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Interface declarations for the generic parser interface 856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This header only contains declarations that are specific 1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * to this implementation. 1156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 1256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Copyright Sonic Network Inc. 2005 137df30109963092559d3760c0661a020f9daf1030The Android Open Source Project 147df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License. 167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at 177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * 207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and 247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License. 2556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * 2656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 2756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Revision Control: 2856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Revision: 767 $ 2956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * $Date: 2007-07-19 13:47:31 -0700 (Thu, 19 Jul 2007) $ 3056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *---------------------------------------------------------------------------- 3156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/ 3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef _EAS_PARSER_H 3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define _EAS_PARSER_H 3556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#include "eas_types.h" 3756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 3956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* metadata callback */ 4056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_metadata_cb_tag 4156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 4256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_METADATA_CBFUNC callback; 4356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks char *buffer; 4456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_VOID_PTR pUserData; 4556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_I32 bufferSize; 4656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_METADATA_CB; 4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* generic parser interface */ 4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct 5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfCheckFileType)(struct s_eas_data_tag *pEASData, EAS_FILE_HANDLE fileHandle, EAS_VOID_PTR *ppHandle, EAS_I32 offset); 5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfPrepare)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfTime)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_U32 *pTime); 5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfEvent)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_INT parseMode); 5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfState)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_STATE *pState); 5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfClose)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfReset)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfPause)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfResume)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData); 6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfLocate)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 time, EAS_BOOL *pParserLocate); 6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfSetData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 value); 6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfGetData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 param, EAS_I32 *pValue); 6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks EAS_RESULT (* EAS_CONST pfGetMetaData)(struct s_eas_data_tag *pEASData, EAS_VOID_PTR pInstData, EAS_I32 *pMediaLength); 6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_FILE_PARSER_INTERFACE; 6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum 6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks eParserModePlay, 6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks eParserModeLocate, 7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks eParserModeMute, 7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks eParserModeMetaData 7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_PARSE_MODE; 7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum 7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{ 7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_FILE_TYPE, 7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_PLAYBACK_RATE, 7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_TRANSPOSITION, 7956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_VOLUME, 8056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_SYNTH_HANDLE, 8156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_METADATA_CB, 8256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_DLS_COLLECTION, 8356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_EAS_LIBRARY, 8456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_POLYPHONY, 8556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_PRIORITY, 8656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_FORMAT, 8756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_MEDIA_LENGTH, 8856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_JET_CB, 8956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_MUTE_FLAGS, 9056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_SET_MUTE, 9156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_CLEAR_MUTE, 9256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_NOTE_COUNT, 9356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_MAX_PCM_STREAMS, 9456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_GAIN_OFFSET, 9556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks PARSER_DATA_PLAY_MODE 9656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_PARSER_DATA; 9756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks 9856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif /* #ifndef _EAS_PARSER_H */ 99