summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-06-06 03:43:39 +0200
committerRobin Gareus <robin@gareus.org>2014-06-06 03:43:39 +0200
commitd7fc573cb8c4292b6150a6f52e4a38df96a61e5f (patch)
tree56f863987c5fc704a72d1effb6353711d77fd422 /libs
parent1c87f6adec04e59c8d3b46db036d9b008ca0527e (diff)
alsa + dummy backend, proper [re]initialization
Diffstat (limited to 'libs')
-rw-r--r--libs/backends/alsa/alsa_audiobackend.cc6
-rw-r--r--libs/backends/dummy/dummy_audiobackend.cc6
2 files changed, 10 insertions, 2 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
index f957437711..fcbf8871cc 100644
--- a/libs/backends/alsa/alsa_audiobackend.cc
+++ b/libs/backends/alsa/alsa_audiobackend.cc
@@ -475,6 +475,9 @@ AlsaAudioBackend::_start (bool for_latency_measurement)
return -1;
}
+ engine.sample_rate_change (_samplerate);
+ engine.buffer_size_change (_samples_per_period);
+
if (engine.reestablish_ports ()) {
PBD::error << _("AlsaAudioBackend: Could not re-establish ports.") << endmsg;
delete _pcmi; _pcmi = 0;
@@ -482,7 +485,6 @@ AlsaAudioBackend::_start (bool for_latency_measurement)
return -1;
}
- engine.buffer_size_change (_samples_per_period);
engine.reconnect_ports ();
_run = true;
@@ -1284,6 +1286,8 @@ AlsaAudioBackend::main_process_thread ()
_pcmi->pcm_start ();
int no_proc_errors = 0;
+ manager.graph_order_callback();
+
while (_run) {
long nr;
bool xrun = false;
diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc
index 1f918e7ed7..04ef7168e8 100644
--- a/libs/backends/dummy/dummy_audiobackend.cc
+++ b/libs/backends/dummy/dummy_audiobackend.cc
@@ -311,13 +311,15 @@ DummyAudioBackend::_start (bool /*for_latency_measurement*/)
return -1;
}
+ engine.sample_rate_change (_samplerate);
+ engine.buffer_size_change (_samples_per_period);
+
if (engine.reestablish_ports ()) {
PBD::error << _("DummyAudioBackend: Could not re-establish ports.") << endmsg;
stop ();
return -1;
}
- engine.buffer_size_change (_samples_per_period);
engine.reconnect_ports ();
if (pthread_create (&_main_thread, NULL, pthread_process, this)) {
@@ -1004,6 +1006,8 @@ DummyAudioBackend::main_process_thread ()
_running = true;
_processed_samples = 0;
+ manager.graph_order_callback();
+
uint64_t clock1, clock2;
clock1 = g_get_monotonic_time();
while (_running) {