Fix the >=2 channel track recording waveform drawing problem, and (temporarily) bypass node checks for FFADO in the engine dialog to get rid of the FFADO related startup errors

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2953 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Doug McLain 2008-01-20 22:39:53 +00:00
parent de80d6b95d
commit af168a0a9e
2 changed files with 8 additions and 12 deletions

View file

@ -763,6 +763,7 @@ AudioRegionView::set_envelope_visible (bool yn)
void void
AudioRegionView::create_waves () AudioRegionView::create_waves ()
{ {
//cerr << "AudioRegionView::create_waves() called on " << this << endl;//DEBUG
RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick
if (!atv.get_diskstream()) { if (!atv.get_diskstream()) {
@ -785,23 +786,16 @@ AudioRegionView::create_waves ()
wave_caches.push_back (WaveView::create_cache ()); wave_caches.push_back (WaveView::create_cache ());
if (wait_for_data) { if (wait_for_data) {
if (audio_region()->source(n)->peaks_ready (bind (mem_fun(*this, &AudioRegionView::peaks_ready_handler), n), data_ready_connection)) {
create_one_wave (n, true);
} else {
// we'll get a PeaksReady signal from the source in the future
// and will call create_one_wave(n) then.
}
} else {
create_one_wave (n, true); create_one_wave (n, true);
} }
} }
} }
void void
AudioRegionView::create_one_wave (uint32_t which, bool direct) AudioRegionView::create_one_wave (uint32_t which, bool direct)
{ {
//cerr << "AudioRegionView::create_one_wave() called which: " << which << " this: " << this << endl;//DEBUG
RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick
uint32_t nchans = atv.get_diskstream()->n_channels(); uint32_t nchans = atv.get_diskstream()->n_channels();
uint32_t n; uint32_t n;
@ -885,7 +879,8 @@ AudioRegionView::create_one_wave (uint32_t which, bool direct)
void void
AudioRegionView::peaks_ready_handler (uint32_t which) AudioRegionView::peaks_ready_handler (uint32_t which)
{ {
Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun(*this, &AudioRegionView::create_one_wave), which, false)); //Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun(*this, &AudioRegionView::create_one_wave), which, false));
cerr << "AudioRegionView::peaks_ready_handler() called on " << which << " this: " << this << endl;
} }
void void

View file

@ -813,7 +813,7 @@ EngineControl::driver_changed ()
vector<string>& strings = devices[driver]; vector<string>& strings = devices[driver];
if (strings.empty()) { if (strings.empty() && driver != "FFADO") {
error << string_compose (_("No devices found for driver \"%1\""), driver) << endmsg; error << string_compose (_("No devices found for driver \"%1\""), driver) << endmsg;
return; return;
} }
@ -1105,7 +1105,8 @@ EngineControl::set_state (const XMLNode& root)
clist = root.children(); clist = root.children();
for (citer = clist.begin(); citer != clist.end(); ++citer) { for (citer = clist.begin(); citer != clist.end(); ++citer) {
if ( prop && (prop->value() == "FFADO" ))
continue;
child = *citer; child = *citer;
prop = child->property ("val"); prop = child->property ("val");