You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.7 KiB
99 lines
3.7 KiB
/*----------------------------------------------------------------------------
|
|
*
|
|
* 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 */
|