/* * AudioDefs.h - Definitions for audio I/O * * Copyright 1995-2012 The MathWorks, Inc. */ #ifndef AUDIODEFS_H #define AUDIODEFS_H /* these follow Simulink data types, in simstruc_types.h */ typedef enum { AudioDataType_Double = 0, /* double */ AudioDataType_Single, /* float */ AudioDataType_Int8, /* char */ AudioDataType_Uint8, /* unsigned char */ AudioDataType_Int16, /* short */ AudioDataType_Uint16, /* unsigned short */ AudioDataType_Int32, /* long */ AudioDataType_Uint32, /* unsigned long */ AudioDataType_INVALID, /* bool */ AudioDataType_Int24, /* 24-bit signed */ AudioDataType_Uint24, /* 24-bit unsigned */ AudioDataType_NUM_TYPES } AudioDataType; static const int AudioDataTypeSize[] = {8,4,1,1,2,2,4,4,1,3,3}; static const int AudioDataTypeFloat[] = {1,1,0,0,0,0,0,0,0,0,0}; /* An enumeration of typical audio data types which is used on several masks. */ typedef enum { AudioDT_Invalid = 0, AudioDT_Derived = 1, AudioDT_Uint8, AudioDT_Int16, AudioDT_Int24, AudioDT_Single, AudioDT_NUM_TYPES } AudioDTE_Common; /* The default mapping from AudioDataTypes onto common audio data types */ static const AudioDTE_Common AudioDataTypeToCommonDTE[] = { AudioDT_Single, AudioDT_Single, AudioDT_Uint8, AudioDT_Uint8, AudioDT_Int16, AudioDT_Int16, AudioDT_Int24, AudioDT_Int24, AudioDT_Invalid, AudioDT_Int24, AudioDT_Int24 }; /* Mapping from common data types to Audio Data Types */ static const AudioDataType CommonDTEToAudioDataType[] = { AudioDataType_INVALID, AudioDataType_INVALID, AudioDataType_Uint8, AudioDataType_Int16, AudioDataType_Int24, AudioDataType_Single }; typedef struct { unsigned char isValid; /* zero if the file has no audio */ /* The following fields refer to the PCM format of the audio data as encoded in the file/device */ unsigned char isFloat; /* true if the samples are in floating-point format */ double sampleRate; /* audio sample rate */ int numBits; /* audio bit depth */ int numChannels; /* number of audio channels (typically 1 or two) */ /* The following fields refer to the format of the data in MATLAB/Simulink */ AudioDataType dataType; /* data type of audio samples */ int frameSize; /* number of audio samples per frame */ /* The name of the compression format, if we are writing a file */ const char* audioCompressor; /* set to NULL for none */ } MMAudioInfo; #endif /* AUDIODEFS_H */