diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2015-08-24 10:50:00 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2015-09-02 12:07:15 +1000 |
commit | fd0b54f4593b68bcebb7a5c4b3acab3c437e0fff (patch) | |
tree | 5359f43e89a40d4f902725e2e124741ffd1fd7e4 | |
parent | 4e75220661cdede1aed3465a6fed3049fbc29e50 (diff) |
Use PortAudioIO::ErrorCode as return value from PortAudioIO::pcm_setup
-rw-r--r-- | libs/backends/portaudio/portaudio_backend.cc | 22 | ||||
-rw-r--r-- | libs/backends/portaudio/portaudio_io.cc | 22 | ||||
-rw-r--r-- | libs/backends/portaudio/portaudio_io.h | 10 |
3 files changed, 25 insertions, 29 deletions
diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc index 067e1e5b7a..882fb47487 100644 --- a/libs/backends/portaudio/portaudio_backend.cc +++ b/libs/backends/portaudio/portaudio_backend.cc @@ -456,20 +456,22 @@ PortAudioBackend::_start (bool for_latency_measurement) _freewheeling = false; _freewheel = false; - _pcmio->pcm_setup (name_to_id(_input_audio_device), name_to_id(_output_audio_device), _samplerate, _samples_per_period); + PortAudioIO::ErrorCode err; - switch (_pcmio->state ()) { - case 0: /* OK */ - break; - case -1: - PBD::error << get_error_string(AudioDeviceOpenError) << endmsg; + err = _pcmio->pcm_setup(name_to_id(_input_audio_device), + name_to_id(_output_audio_device), + _samplerate, + _samples_per_period); + + switch (err) { + case PortAudioIO::NoError: break; + case PortAudioIO::DeviceConfigNotSupportedError: + PBD::error << get_error_string(DeviceConfigurationNotSupportedError) + << endmsg; + return -1; default: PBD::error << get_error_string(AudioDeviceOpenError) << endmsg; - break; - } - - if (_pcmio->state ()) { return -1; } diff --git a/libs/backends/portaudio/portaudio_io.cc b/libs/backends/portaudio/portaudio_io.cc index 419c0b0263..698eab30de 100644 --- a/libs/backends/portaudio/portaudio_io.cc +++ b/libs/backends/portaudio/portaudio_io.cc @@ -681,18 +681,16 @@ PortAudioIO::get_output_stream_params(int device_output, return true; } -int +PortAudioIO::ErrorCode PortAudioIO::pcm_setup ( int device_input, int device_output, double sample_rate, uint32_t samples_per_period) { _state = -2; - PaError err = paNoError; - if (!initialize_pa()) { DEBUG_AUDIO ("PortAudio Initialization Failed\n"); - return -1; + return InitializationError; } reset_stream_dependents (); @@ -701,10 +699,7 @@ PortAudioIO::pcm_setup ( "PortAudio Device IDs: i:%1 o:%2\n", device_input, device_output)); if (device_input == DeviceNone && device_output == DeviceNone) { - // just send the error msg for now rather than return it - error << AudioBackend::get_error_string(AudioBackend::DeviceConfigurationNotSupportedError) - << endmsg; - return -1; + return DeviceConfigNotSupportedError; } PaStreamParameters inputParam; @@ -720,13 +715,14 @@ PortAudioIO::pcm_setup ( if (_capture_channels == 0 && _playback_channels == 0) { DEBUG_AUDIO("PortAudio no input or output channels.\n"); - return -1; + return DeviceConfigNotSupportedError; } DEBUG_AUDIO (string_compose ("PortAudio Channels: in:%1 out:%2\n", _capture_channels, _playback_channels)); + PaError err = paNoError; // XXX re-consider using callback API, testing needed. err = Pa_OpenStream ( @@ -740,22 +736,22 @@ PortAudioIO::pcm_setup ( if (err != paNoError) { DEBUG_AUDIO ("PortAudio failed to start stream.\n"); - return -1; + return StreamOpenError; } if (!set_sample_rate_and_latency_from_stream()) { DEBUG_AUDIO ("PortAudio failed to query stream information.\n"); pcm_stop(); - return -1; + return StreamOpenError; } _state = 0; if (!allocate_buffers_for_blocking_api(samples_per_period)) { pcm_stop(); - return -1; + return StreamOpenError; } - return 0; + return NoError; } int diff --git a/libs/backends/portaudio/portaudio_io.h b/libs/backends/portaudio/portaudio_io.h index 8b04337c73..3c21deccee 100644 --- a/libs/backends/portaudio/portaudio_io.h +++ b/libs/backends/portaudio/portaudio_io.h @@ -90,12 +90,10 @@ public: void pcm_stop (void); int pcm_start (void); - int pcm_setup ( - int device_input, - int device_output, - double sample_rate, - uint32_t samples_per_period - ); + ErrorCode pcm_setup(int device_input, + int device_output, + double sample_rate, + uint32_t samples_per_period); uint32_t n_playback_channels (void) const { return _playback_channels; } uint32_t n_capture_channels (void) const { return _capture_channels; } |