#ifndef __OutputDistrib_H__ #define __OutputDistrib_H__ #include #include #include #include #include using namespace std; class Distributor { public: Distributor(void); ~Distributor(void); unsigned char Initialize(string, int*, int, unsigned char, unsigned long); unsigned char SetMaster(unsigned char); unsigned char SetChannelMap(int*, int); void UpdateVol(void); void SetVolume(float); void SetMute(unsigned long); unsigned char SetDelay(float sec); float GetDelay(void); string deviceUID; int *channelMap; int channelMapSize; unsigned long muteGain; float volume; unsigned long mute; private: AudioDeviceID devID; AudioUnit outHALUnit; double LastOutputTime; double TargetLatency; double IOOffset; double errorFactor; unsigned long outbufferSizeFrames; unsigned long safteyFrames; AudioStreamBasicDescription outFormat; double delay; OSStatus SetupAudio(void); void tearDownAudioOutput(void); static OSStatus OutputCallback(void*, AudioUnitRenderActionFlags*, const AudioTimeStamp*, unsigned long, unsigned long, AudioBufferList*); }; typedef map > output_map; typedef map >::iterator output_map_ptr; #endif //__OutputDistrib_H__