00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00027 #ifndef __MKPERF_SND_MIDI_PERFORM_SOUND_H__
00028 #define __MKPERF_SND_MIDI_PERFORM_SOUND_H__
00029
00036 #define PERFORM_API
00037
00038 #include <objc/objc.h>
00039 #include "SndStruct.h"
00040 #include "SndFormats.h"
00041
00042 #define MKPERFORMSND_USE_STREAMING 1 // Uses the newer streaming API
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00051 typedef struct SNDStreamBuffer {
00053 SndSampleFormat dataFormat;
00055 long frameCount;
00057 int channelCount;
00059 double sampleRate;
00061 void *streamData;
00062 } SNDStreamBuffer;
00063
00072 typedef void (*SNDStreamProcessor)(double sampleTime, SNDStreamBuffer *inStream, SNDStreamBuffer *outStream, void *userData);
00073
00086 PERFORM_API BOOL SNDInit(BOOL guessTheDevice);
00087
00094 PERFORM_API BOOL SNDTerminate(void);
00095
00101 PERFORM_API const char **SNDGetAvailableDriverNames(void);
00102
00110 PERFORM_API BOOL SNDSetDriverIndex(unsigned int selectedIndex);
00111
00117 PERFORM_API unsigned int SNDGetAssignedDriverIndex(void);
00118
00124 PERFORM_API BOOL SNDIsMuted(void);
00125
00131 PERFORM_API void SNDSetMute(BOOL aFlag);
00132
00141 PERFORM_API BOOL SNDSetBufferSizeInBytes(long liBufferSizeInBytes);
00142
00153 PERFORM_API const char **SNDSpeakerConfiguration(void);
00154
00163 PERFORM_API void SNDStreamNativeFormat(SNDStreamBuffer *streamFormat, BOOL isOutputStream);
00164
00172 PERFORM_API BOOL SNDStreamStart(SNDStreamProcessor newStreamProcessor, void *userData);
00173
00179 PERFORM_API BOOL SNDStreamStop(void);
00180
00181 #ifdef __cplusplus
00182 }
00183 #endif
00184
00185 #endif