Fix the >=2 channel track recording waveform drawing problem, and (temporarily) bypas...
authorDoug McLain <doug@nostar.net>
Sun, 20 Jan 2008 22:39:53 +0000 (22:39 +0000)
committerDoug McLain <doug@nostar.net>
Sun, 20 Jan 2008 22:39:53 +0000 (22:39 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2953 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/audio_region_view.cc
gtk2_ardour/engine_dialog.cc

index c1be9616902686497dbb645d65e8236c7cdf3b02..5ef523d7a28bdce3c999a2180095c301314664f6 100644 (file)
@@ -763,6 +763,7 @@ AudioRegionView::set_envelope_visible (bool yn)
 void
 AudioRegionView::create_waves ()
 {
+       //cerr << "AudioRegionView::create_waves() called on " << this << endl;//DEBUG
        RouteTimeAxisView& atv (*(dynamic_cast<RouteTimeAxisView*>(&trackview))); // ick
 
        if (!atv.get_diskstream()) {
@@ -785,23 +786,16 @@ AudioRegionView::create_waves ()
                wave_caches.push_back (WaveView::create_cache ());
 
                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);
                }
+
        }
 }
 
 void
 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
        uint32_t nchans = atv.get_diskstream()->n_channels();
        uint32_t n;
@@ -885,7 +879,8 @@ AudioRegionView::create_one_wave (uint32_t which, bool direct)
 void
 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
index 032bdb53b869b1dd3b457a82ca2b88090b0e678c..f36044cbe3de4ad9171c9f6f41c6d19d5ea1bf0c 100644 (file)
@@ -813,7 +813,7 @@ EngineControl::driver_changed ()
 
        vector<string>& strings = devices[driver];
 
-       if (strings.empty()) {
+       if (strings.empty() && driver != "FFADO") {
                error << string_compose (_("No devices found for driver \"%1\""), driver) << endmsg;
                return;
        }
@@ -1105,7 +1105,8 @@ EngineControl::set_state (const XMLNode& root)
        clist = root.children();
 
        for (citer = clist.begin(); citer != clist.end(); ++citer) {
-
+               if ( prop && (prop->value() == "FFADO" ))
+                               continue;
                child = *citer;
 
                prop = child->property ("val");