summaryrefslogtreecommitdiff
path: root/libs/backends
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-08-27 18:52:08 +1000
committerTim Mayberry <mojofunk@gmail.com>2015-09-02 12:07:58 +1000
commit23a490c906974b0fc7ba46c58e533d2733c3a5d4 (patch)
tree801b2d8f4da4b148a2cebc480b085022a64c18d5 /libs/backends
parentf143d7652308b722a973cdf8ea2cda6ce44be7eb (diff)
Add two utility methods to abstract PortAudioBackend state
These may change as support for callback API is added
Diffstat (limited to 'libs/backends')
-rw-r--r--libs/backends/portaudio/portaudio_backend.cc19
-rw-r--r--libs/backends/portaudio/portaudio_backend.h3
2 files changed, 18 insertions, 4 deletions
diff --git a/libs/backends/portaudio/portaudio_backend.cc b/libs/backends/portaudio/portaudio_backend.cc
index 3555d09928..006bf3143a 100644
--- a/libs/backends/portaudio/portaudio_backend.cc
+++ b/libs/backends/portaudio/portaudio_backend.cc
@@ -433,16 +433,27 @@ static void * pthread_process (void *arg)
return 0;
}
+bool
+PortAudioBackend::engine_halted ()
+{
+ return !_active && _run;
+}
+
+bool
+PortAudioBackend::running ()
+{
+ return _active || _run;
+}
+
int
PortAudioBackend::_start (bool for_latency_measurement)
{
- if (!_active && _run) {
- // recover from 'halted', reap threads
+ if (engine_halted()) {
stop();
}
- if (_active || _run) {
- DEBUG_AUDIO("Already active.\n");
+ if (running()) {
+ DEBUG_AUDIO("Already started.\n");
return -1;
}
diff --git a/libs/backends/portaudio/portaudio_backend.h b/libs/backends/portaudio/portaudio_backend.h
index 08de76ccfb..7b3f247875 100644
--- a/libs/backends/portaudio/portaudio_backend.h
+++ b/libs/backends/portaudio/portaudio_backend.h
@@ -330,6 +330,9 @@ class PortAudioBackend : public AudioBackend {
void process_incoming_midi ();
void process_outgoing_midi ();
+ bool engine_halted ();
+ bool running ();
+
private:
std::string _instance_name;
PortAudioIO *_pcmio;