Home | History | Annotate | Download | only in lib_src
      1 /*----------------------------------------------------------------------------
      2  *
      3  * File:
      4  * eas_parser.h
      5  *
      6  * Contents and purpose:
      7  * Interface declarations for the generic parser interface
      8  *
      9  * This header only contains declarations that are specific
     10  * to this implementation.
     11  *
     12  * Copyright Sonic Network Inc. 2005
     13 
     14  * Licensed under the Apache License, Version 2.0 (the "License");
     15  * you may not use this file except in compliance with the License.
     16  * You may obtain a copy of the License at
     17  *
     18  *      http://www.apache.org/licenses/LICENSE-2.0
     19  *
     20  * Unless required by applicable law or agreed to in writing, software
     21  * distributed under the License is distributed on an "AS IS" BASIS,
     22  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     23  * See the License for the specific language governing permissions and
     24  * limitations under the License.
     25  *
     26  *----------------------------------------------------------------------------
     27  * Revision Control:
     28  *   $Revision: 767 $
     29  *   $Date: 2007-07-19 13:47:31 -0700 (Thu, 19 Jul 2007) $
     30  *----------------------------------------------------------------------------
     31 */
     32 
     33 #ifndef _EAS_PARSER_H
     34 #define _EAS_PARSER_H
     35 
     36 #include "eas_types.h"
     37 
     38 
     39 /* metadata callback */
     40 typedef struct s_metadata_cb_tag
     41 {
     42     EAS_METADATA_CBFUNC     callback;
     43     char                    *buffer;
     44     EAS_VOID_PTR            pUserData;
     45     EAS_I32                 bufferSize;
     46 } S_METADATA_CB;
     47 
     48 /* generic parser interface */
     49 typedef struct
     50 {
     51     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 
     66 typedef enum
     67 {
     68     eParserModePlay,
     69     eParserModeLocate,
     70     eParserModeMute,
     71     eParserModeMetaData
     72 } E_PARSE_MODE;
     73 
     74 typedef 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