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