diff options
author | Robin Gareus <robin@gareus.org> | 2015-03-06 21:26:07 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-03-06 23:26:05 +0100 |
commit | 13bad670facd14ab63dccb8b1a0f1c7b8498e6bf (patch) | |
tree | 231987bfd57d21c5fe23e1fd35b9557102c7c709 /libs/backends/coreaudio/coreaudio_pcmio.h | |
parent | 3b941fc0fa23d5612497a99771676ac70fdd10ad (diff) |
more ongoing work on the coreaudio backend
* audio port names
* latency compensation
* xrun reporting
* various fixes and cleanup
Diffstat (limited to 'libs/backends/coreaudio/coreaudio_pcmio.h')
-rw-r--r-- | libs/backends/coreaudio/coreaudio_pcmio.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/libs/backends/coreaudio/coreaudio_pcmio.h b/libs/backends/coreaudio/coreaudio_pcmio.h index b249dedbf3..6bb3d08356 100644 --- a/libs/backends/coreaudio/coreaudio_pcmio.h +++ b/libs/backends/coreaudio/coreaudio_pcmio.h @@ -64,7 +64,6 @@ public: void * process_arg ); - // TODO: combine callbacks below, add a enum type void set_error_callback ( void ( error_callback (void*)), void * error_arg @@ -80,6 +79,13 @@ public: _hw_changed_callback = callback; _hw_changed_arg = arg; } + void set_xrun_callback ( + void ( callback (void*)), + void * arg + ) { + _xrun_callback = callback; + _xrun_arg = arg; + } // must be called from process_callback; int get_capture_channel (uint32_t chn, float *input, uint32_t n_samples); @@ -94,7 +100,8 @@ public: UInt32 inNumberFrames, AudioBufferList* ioData); - void hwPropertyChange(); + void xrun_callback (); + void hw_changed_callback (); private: int set_device_sample_rate (uint32 device_id, float rate, bool input); @@ -106,6 +113,9 @@ private: AudioBufferList* _input_audio_buffer_list; AudioBufferList* _output_audio_buffer_list; + AudioDeviceID _active_input; + AudioDeviceID _active_output; + int _state; uint32_t _max_samples_per_period; @@ -124,6 +134,10 @@ private: void (* _hw_changed_callback) (void*); void * _hw_changed_arg; + void (* _xrun_callback) (void*); + void * _xrun_arg; + + // TODO proper device info struct std::map<size_t, std::string> _devices; uint32_t * _device_ins; |