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