MusicKit
0.0.0
|
00001 /* 00002 $Id$ 00003 Description: 00004 This is basically a bare-bones duplicate of NeXT/Apples' performsound module 00005 functionality. 00006 00007 Original Author: Leigh Smith <leigh@tomandandy.com> 00008 00009 Copyright (C) 1999 Permission is granted to use this code for commercial and 00010 non-commercial purposes so long as this copyright statement (noting the author) is 00011 preserved. 00012 */ 00023 #ifndef __MKPERF_SND_MIDI_PERFORM_SOUND_H__ 00024 #define __MKPERF_SND_MIDI_PERFORM_SOUND_H__ 00025 00032 #define PERFORM_API 00033 00034 #include <objc/objc.h> // for BOOL 00035 #include "SndStruct.h" 00036 #include "SndFormats.h" 00037 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00045 typedef struct SNDStreamBuffer { 00047 SndSampleFormat dataFormat; 00049 long frameCount; 00051 int channelCount; 00053 double sampleRate; 00055 void *streamData; 00056 } SNDStreamBuffer; 00057 00068 typedef void (*SNDStreamProcessor)(double sampleTime, SNDStreamBuffer *inStream, SNDStreamBuffer *outStream, void *userData); 00069 00082 PERFORM_API BOOL SNDInit(BOOL guessTheDevice); 00083 00090 PERFORM_API BOOL SNDTerminate(void); 00091 00098 PERFORM_API const char **SNDGetAvailableDriverNames(BOOL outputDrivers); 00099 00107 PERFORM_API BOOL SNDSetDriverIndex(unsigned int selectedIndex, BOOL outputDrivers); 00108 00115 PERFORM_API unsigned int SNDGetAssignedDriverIndex(BOOL outputDrivers); 00116 00122 PERFORM_API BOOL SNDIsMuted(void); 00123 00129 PERFORM_API void SNDSetMute(BOOL muted); 00130 00141 PERFORM_API BOOL SNDSetBufferSizeInBytes(long newBufferSizeInBytes, BOOL forOutputDevices); 00142 00152 PERFORM_API long SNDGetBufferSizeInBytes(BOOL forOutputDevices); 00153 00160 PERFORM_API float SNDGetLatency(BOOL forOutputDevices); 00161 00172 PERFORM_API const char **SNDSpeakerConfiguration(void); 00173 00182 PERFORM_API void SNDStreamNativeFormat(SNDStreamBuffer *streamFormat, BOOL isOutputStream); 00183 00191 PERFORM_API BOOL SNDStreamStart(SNDStreamProcessor newStreamProcessor, void *userData); 00192 00198 PERFORM_API BOOL SNDStreamStop(void); 00199 00200 #ifdef __cplusplus 00201 } 00202 #endif 00203 00204 #endif /*__MKPERF_SND_MIDI_PERFORM_SOUND_H__*/