156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/*----------------------------------------------------------------------------
256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * File:
456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * eas_types.h
556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Contents and purpose:
756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * The public interface header for the EAS synthesizer.
856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * This header only contains declarations that are specific
1056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * to this implementation.
1156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
1256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * DO NOT MODIFY THIS FILE!
1356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
1456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Copyright Sonic Network Inc. 2004
157df30109963092559d3760c0661a020f9daf1030The Android Open Source Project
167df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
177df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * you may not use this file except in compliance with the License.
187df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * You may obtain a copy of the License at
197df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
207df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
217df30109963092559d3760c0661a020f9daf1030The Android Open Source Project *
227df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
237df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
247df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
257df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * See the License for the specific language governing permissions and
267df30109963092559d3760c0661a020f9daf1030The Android Open Source Project * limitations under the License.
2756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *
2856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
2956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks * Revision Control:
3056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *   $Revision: 726 $
3156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *   $Date: 2007-06-14 23:10:46 -0700 (Thu, 14 Jun 2007) $
3256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks *----------------------------------------------------------------------------
3356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks*/
3456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
3556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef _EAS_TYPES_H
3656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define _EAS_TYPES_H
3756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
3856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* EAS_RESULT return codes */
3956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef long EAS_RESULT;
4056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_SUCCESS                         0
4156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_FAILURE                         -1
4256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INVALID_MODULE            -2
4356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_MALLOC_FAILED             -3
4456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_POS                  -4
4556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INVALID_FILE_MODE         -5
4656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_SEEK                 -6
4756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_LENGTH               -7
4856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_NOT_IMPLEMENTED           -8
4956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_CLOSE_FAILED              -9
5056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_OPEN_FAILED          -10
5156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INVALID_HANDLE            -11
5256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_NO_MIX_BUFFER             -12
5356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_PARAMETER_RANGE           -13
5456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_MAX_FILES_OPEN            -14
5556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_UNRECOGNIZED_FORMAT       -15
5656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_BUFFER_SIZE_MISMATCH            -16
5756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_FORMAT               -17
5856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_SMF_NOT_INITIALIZED       -18
5956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_LOCATE_BEYOND_END         -19
6056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INVALID_PCM_TYPE          -20
6156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_MAX_PCM_STREAMS           -21
6256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_NO_VOICE_ALLOCATED        -22
6356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INVALID_CHANNEL           -23
6456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_ALREADY_STOPPED           -24
6556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_READ_FAILED          -25
6656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_HANDLE_INTEGRITY          -26
6756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_MAX_STREAMS_OPEN          -27
6856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INVALID_PARAMETER         -28
6956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FEATURE_NOT_AVAILABLE     -29
7056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_SOUND_LIBRARY             -30
7156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_NOT_VALID_IN_THIS_STATE   -31
7256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_NO_VIRTUAL_SYNTHESIZER    -32
7356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_ALREADY_OPEN         -33
7456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FILE_ALREADY_CLOSED       -34
7556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_INCOMPATIBLE_VERSION      -35
7656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_QUEUE_IS_FULL             -36
7756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_QUEUE_IS_EMPTY            -37
7856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_ERROR_FEATURE_ALREADY_ACTIVE    -38
7956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
8056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* special return codes */
8156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_EOF                             3
8256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_STREAM_BUFFERING                4
8356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_BUFFER_FULL                     5
8456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
8556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* EAS_STATE return codes */
8656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef long EAS_STATE;
8756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum
8856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
8956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_READY = 0,
9056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_PLAY,
9156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_STOPPING,
9256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_PAUSING,
9356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_STOPPED,
9456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_PAUSED,
9556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_OPEN,
9656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_ERROR,
9756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_STATE_EMPTY
9856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_EAS_STATE;
9956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
10056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* constants */
10156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef EAS_CONST
10256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_CONST const
10356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
10456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
10556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* definition for public interface functions */
10656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef EAS_PUBLIC
10756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_PUBLIC
10856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
10956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
11056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* boolean values */
11156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef unsigned EAS_BOOL;
11256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef unsigned char EAS_BOOL8;
11356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
11456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_FALSE   0
11556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_TRUE    1
11656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
11756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* scalar variable definitions */
11856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef unsigned char EAS_U8;
11956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef signed char EAS_I8;
12056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef char EAS_CHAR;
12156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
12256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef unsigned short EAS_U16;
12356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef short EAS_I16;
12456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
12556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef unsigned long EAS_U32;
12656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef long EAS_I32;
12756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
12856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef unsigned EAS_UINT;
12956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef int EAS_INT;
13056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef long EAS_LONG;
13156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
13256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* audio output type */
13356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef short EAS_PCM;
13456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
13556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* file open modes */
13656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef EAS_I32 EAS_FILE_MODE;
13756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_FILE_READ   1
13856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_FILE_WRITE  2
13956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
14056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* file locator e.g. filename or memory pointer */
14156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef const void *EAS_FILE_LOCATOR;
14256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
14356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* handle to stream */
14456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_stream_tag *EAS_HANDLE;
14556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
14656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* handle to file */
14756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct eas_hw_file_tag *EAS_FILE_HANDLE;
14856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
14956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* handle for synthesizer data */
15056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_data_tag *EAS_DATA_HANDLE;
15156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
15256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* handle to persistent data for host wrapper interface */
15356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct eas_hw_inst_data_tag *EAS_HW_DATA_HANDLE;
15456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
15556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* handle to sound library */
15656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_sndlib_tag *EAS_SNDLIB_HANDLE;
15756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_dls_tag *EAS_DLSLIB_HANDLE;
15856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
15956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* pointer to frame buffer - used in split architecture only */
16056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_eas_frame_buffer_tag *EAS_FRAME_BUFFER_HANDLE;
16156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
16256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* untyped pointer for instance data */
16356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef void *EAS_VOID_PTR;
16456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
16556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* inline functions */
16656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef EAS_INLINE
16756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#if defined (__XCC__)
16856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_INLINE __inline__
16956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#elif defined (__GNUC__)
17056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_INLINE inline static
17156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#else
17256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define EAS_INLINE __inline
17356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
17456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
17556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
17656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* define NULL value */
17756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifndef NULL
17856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#define NULL 0
17956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
18056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
18156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* metadata types for metadata return codes */
18256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum
18356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
18456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METADATA_UNKNOWN = 0,
18556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METADATA_TITLE,
18656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METADATA_AUTHOR,
18756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METADATA_COPYRIGHT,
18856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METADATA_LYRIC,
18956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_METADATA_TEXT
19056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_EAS_METADATA_TYPE;
19156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
19256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* metadata callback function */
19356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef void (*EAS_METADATA_CBFUNC) (E_EAS_METADATA_TYPE metaDataType, char *metaDataBuf, EAS_VOID_PTR pUserData);
19456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
19556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* file types for metadata return codes */
19656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum
19756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
19856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_UNKNOWN = 0,
19956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_SMF0,
20056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_SMF1,
20156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_SMAF_UNKNOWN,
20256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_SMAF_MA2,
20356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_SMAF_MA3,
20456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_SMAF_MA5,
20556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_CMX,
20656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_MFI,
20756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_OTA,
20856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_IMELODY,
20956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_RTTTL,
21056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_XMF0,
21156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_XMF1,
21256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_WAVE_PCM,
21356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_WAVE_IMA_ADPCM,
21456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_FILE_MMAPI_TONE_CONTROL
21556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_EAS_FILE_TYPE;
21656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
21756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* enumeration for synthesizers */
21856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum
21956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
22056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_MCU_SYNTH = 0,
22156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_DSP_SYNTH
22256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_SYNTHESIZER;
22356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
22456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* external audio callback program change */
22556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_ext_audio_prg_chg_tag
22656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
22756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U16     bank;
22856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      program;
22956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      channel;
23056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_EXT_AUDIO_PRG_CHG;
23156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
23256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* external audio callback event */
23356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_ext_audio_event_tag
23456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
23556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      channel;
23656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      note;
23756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      velocity;
23856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_BOOL8   noteOn;
23956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_EXT_AUDIO_EVENT;
24056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
24156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef struct s_midi_controllers_tag
24256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
24356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      modWheel;           /* CC1 */
24456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      volume;             /* CC7 */
24556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      pan;                /* CC10 */
24656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      expression;         /* CC11 */
24756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      channelPressure;    /* MIDI channel pressure */
24856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
24956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef  _REVERB
25056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      reverbSend;         /* CC91 */
25156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
25256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
25356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#ifdef  _CHORUS
25456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    EAS_U8      chorusSend;         /* CC93 */
25556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif
25656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} S_MIDI_CONTROLLERS;
25756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
25856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks/* iMode play modes enumeration for EAS_SetPlayMode */
25956c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef enum
26056c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks{
26156c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    IMODE_PLAY_ALL = 0,
26256c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks    IMODE_PLAY_PARTIAL
26356c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks} E_I_MODE_PLAY_MODE;
26456c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
26556c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef EAS_BOOL (*EAS_EXT_PRG_CHG_FUNC) (EAS_VOID_PTR pInstData, S_EXT_AUDIO_PRG_CHG *pPrgChg);
26656c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparkstypedef EAS_BOOL (*EAS_EXT_EVENT_FUNC) (EAS_VOID_PTR pInstData, S_EXT_AUDIO_EVENT *pEvent);
26756c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks
26856c99cd2c2c1e6ab038dac5fced5b92ccf11ff6cDave Sparks#endif /* #ifndef _EAS_TYPES_H */
269