diff options
author | Robin Gareus <robin@gareus.org> | 2014-06-06 03:43:39 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-06-06 03:43:39 +0200 |
commit | d7fc573cb8c4292b6150a6f52e4a38df96a61e5f (patch) | |
tree | 56f863987c5fc704a72d1effb6353711d77fd422 /libs | |
parent | 1c87f6adec04e59c8d3b46db036d9b008ca0527e (diff) |
alsa + dummy backend, proper [re]initialization
Diffstat (limited to 'libs')
-rw-r--r-- | libs/backends/alsa/alsa_audiobackend.cc | 6 | ||||
-rw-r--r-- | libs/backends/dummy/dummy_audiobackend.cc | 6 |
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) { |