13
0

Rename several methods in PortAudioIO class

return ErrorCode's and handle them where necessary
This commit is contained in:
Tim Mayberry 2015-08-24 20:31:47 +10:00
parent 82f84d6203
commit 8c2b9dac59
3 changed files with 36 additions and 31 deletions

View File

@ -458,10 +458,10 @@ PortAudioBackend::_start (bool for_latency_measurement)
PortAudioIO::ErrorCode err;
err = _pcmio->pcm_setup(name_to_id(_input_audio_device),
name_to_id(_output_audio_device),
_samplerate,
_samples_per_period);
err = _pcmio->open_blocking_stream(name_to_id(_input_audio_device),
name_to_id(_output_audio_device),
_samplerate,
_samples_per_period);
switch (err) {
case PortAudioIO::NoError:
@ -558,7 +558,7 @@ PortAudioBackend::_start (bool for_latency_measurement)
if (timeout == 0 || !_active) {
DEBUG_AUDIO("Failed to start main audio thread\n");
_pcmio->pcm_stop();
_pcmio->close_stream();
_run = false;
unregister_ports();
_active = false;
@ -1387,8 +1387,8 @@ PortAudioBackend::main_process_thread ()
manager.registration_callback();
manager.graph_order_callback();
if (_pcmio->pcm_start()) {
_pcmio->pcm_stop ();
if (_pcmio->start_stream() != PortAudioIO::NoError) {
_pcmio->close_stream ();
_active = false;
engine.halted_callback(get_error_string(AudioDeviceIOError).c_str());
}
@ -1496,7 +1496,7 @@ PortAudioBackend::main_process_thread ()
/* call engine process callback */
if (engine.process_callback (_samples_per_period)) {
_pcmio->pcm_stop ();
_pcmio->close_stream ();
_active = false;
return 0;
}
@ -1559,7 +1559,7 @@ PortAudioBackend::main_process_thread ()
// TODO clear midi or stop midi recv when entering fwheelin'
if (engine.process_callback (_samples_per_period)) {
_pcmio->pcm_stop ();
_pcmio->close_stream();
_active = false;
return 0;
}
@ -1604,7 +1604,7 @@ PortAudioBackend::main_process_thread ()
}
}
_pcmio->pcm_stop ();
_pcmio->close_stream();
_active = false;
if (_run) {
engine.halted_callback(get_error_string(AudioDeviceIOError).c_str());

View File

@ -56,7 +56,7 @@ PortAudioIO::PortAudioIO ()
PortAudioIO::~PortAudioIO ()
{
pcm_stop();
close_stream();
pa_deinitialize ();
clear_device_lists ();
@ -548,11 +548,15 @@ PortAudioIO::reset_stream_dependents ()
_cur_output_latency = 0;
}
void
PortAudioIO::pcm_stop ()
PortAudioIO::ErrorCode
PortAudioIO::close_stream()
{
if (_stream) {
Pa_CloseStream (_stream);
if (!_stream) return NoError;
PaError err = Pa_CloseStream (_stream);
if (err != paNoError) {
return StreamCloseError;
}
_stream = NULL;
@ -560,17 +564,18 @@ PortAudioIO::pcm_stop ()
free (_input_buffer); _input_buffer = NULL;
free (_output_buffer); _output_buffer = NULL;
return NoError;
}
int
PortAudioIO::pcm_start()
PortAudioIO::ErrorCode
PortAudioIO::start_stream()
{
PaError err = Pa_StartStream (_stream);
if (err != paNoError) {
return -1;
return StreamStartError;
}
return 0;
return NoError;
}
bool
@ -730,10 +735,10 @@ PortAudioIO::pre_stream_open(int device_input,
}
PortAudioIO::ErrorCode
PortAudioIO::pcm_setup(int device_input,
int device_output,
double sample_rate,
uint32_t samples_per_period)
PortAudioIO::open_blocking_stream(int device_input,
int device_output,
double sample_rate,
uint32_t samples_per_period)
{
PaStreamParameters inputParam;
PaStreamParameters outputParam;
@ -761,12 +766,12 @@ PortAudioIO::pcm_setup(int device_input,
if (!set_sample_rate_and_latency_from_stream()) {
DEBUG_AUDIO ("PortAudio failed to query stream information.\n");
pcm_stop();
close_stream();
return StreamOpenError;
}
if (!allocate_buffers_for_blocking_api(samples_per_period)) {
pcm_stop();
close_stream();
return StreamOpenError;
}
return NoError;

View File

@ -83,13 +83,13 @@ public:
std::string control_app_name (int device_id) const;
void launch_control_app (int device_id);
void pcm_stop (void);
int pcm_start (void);
ErrorCode open_blocking_stream(int device_input,
int device_output,
double sample_rate,
uint32_t samples_per_period);
ErrorCode start_stream(void);
ErrorCode pcm_setup(int device_input,
int device_output,
double sample_rate,
uint32_t samples_per_period);
ErrorCode close_stream(void);
uint32_t n_playback_channels (void) const { return _playback_channels; }
uint32_t n_capture_channels (void) const { return _capture_channels; }