AudioUnit work.
[ardour.git] / gtk2_ardour / crossfade_edit.cc
index 5ac5a57aa5ca40714a2241135d90bbecd4a16437..b2967dc4a9dfc60b453f8cc769ef176c377765f5 100644 (file)
@@ -34,6 +34,7 @@
 #include <ardour/session.h>
 #include <ardour/auditioner.h>
 #include <ardour/audioplaylist.h>
+#include <ardour/audiosource.h>
 #include <ardour/playlist_templates.h>
 
 #include <gtkmm2ext/gtk_ui.h>
@@ -51,6 +52,7 @@
 
 using namespace std;
 using namespace ARDOUR;
+using namespace PBD;
 using namespace Gtk;
 using namespace sigc;
 using namespace Editing;
@@ -62,8 +64,6 @@ const double CrossfadeEditor::canvas_border = 10;
 CrossfadeEditor::Presets* CrossfadeEditor::fade_in_presets = 0;
 CrossfadeEditor::Presets* CrossfadeEditor::fade_out_presets = 0;
 
-#include "crossfade_xpms.h"
-
 CrossfadeEditor::Half::Half ()
        : line (0), 
          normative_curve (0.0, 1.0, 1.0, true),
@@ -193,7 +193,7 @@ CrossfadeEditor::CrossfadeEditor (Session& s, Crossfade& xf, double my, double m
 
        for (list<Preset*>::iterator i = fade_in_presets->begin(); i != fade_in_presets->end(); ++i) {
 
-               pxmap = manage (new Image (Gdk::Pixbuf::create_from_xpm_data((*i)->xpm)));
+               pxmap = manage (new Image (get_xpm((*i)->xpm)));
                pbutton = manage (new Button);
                pbutton->add (*pxmap);
                pbutton->set_name ("CrossfadeEditButton");
@@ -214,7 +214,7 @@ CrossfadeEditor::CrossfadeEditor (Session& s, Crossfade& xf, double my, double m
 
        for (list<Preset*>::iterator i = fade_out_presets->begin(); i != fade_out_presets->end(); ++i) {
 
-               pxmap = manage (new Image (Gdk::Pixbuf::create_from_xpm_data((*i)->xpm)));
+               pxmap = manage (new Image (get_xpm((*i)->xpm)));
                pbutton = manage (new Button);
                pbutton->add (*pxmap);
                pbutton->set_name ("CrossfadeEditButton");
@@ -833,8 +833,7 @@ CrossfadeEditor::build_presets ()
        fade_out_presets = new Presets;
 
        /* FADE OUT */
-
-       p = new Preset (hiin_xpm);
+       p = new Preset ("hiin.xpm");
        p->push_back (PresetPoint (0, 0));
        p->push_back (PresetPoint (0.0207373, 0.197222));
        p->push_back (PresetPoint (0.0645161, 0.525));
@@ -845,7 +844,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 1));
        fade_in_presets->push_back (p);
        
-       p = new Preset (loin_xpm);
+       p = new Preset ("loin.xpm");
        p->push_back (PresetPoint (0, 0));
        p->push_back (PresetPoint (0.389401, 0.0333333));
        p->push_back (PresetPoint (0.629032, 0.0861111));
@@ -855,7 +854,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 1));
        fade_in_presets->push_back (p);
 
-       p = new Preset (regin_xpm);
+       p = new Preset ("regin.xpm");
        p->push_back (PresetPoint (0, 0));
        p->push_back (PresetPoint (0.0737327, 0.308333));
        p->push_back (PresetPoint (0.246544, 0.658333));
@@ -865,7 +864,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 1));
        fade_in_presets->push_back (p);
 
-       p = new Preset (regin2_xpm);
+       p = new Preset ("regin2.xpm");
        p->push_back (PresetPoint (0, 0));
        p->push_back (PresetPoint (0.304147, 0.0694444));
        p->push_back (PresetPoint (0.529954, 0.152778));
@@ -875,14 +874,14 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 1));
        fade_in_presets->push_back (p);
 
-       p = new Preset (linin_xpm);
+       p = new Preset ("linin.xpm");
        p->push_back (PresetPoint (0, 0));
        p->push_back (PresetPoint (1, 1));
        fade_in_presets->push_back (p);
 
        /* FADE OUT */
 
-       p = new Preset (hiout_xpm);
+       p = new Preset ("hiout.xpm");
        p->push_back (PresetPoint (0, 1));
        p->push_back (PresetPoint (0.305556, 1));
        p->push_back (PresetPoint (0.548611, 0.991736));
@@ -892,7 +891,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 0));
        fade_out_presets->push_back (p);
        
-       p = new Preset (regout_xpm);
+       p = new Preset ("regout.xpm");
        p->push_back (PresetPoint (0, 1));
        p->push_back (PresetPoint (0.228111, 0.988889));
        p->push_back (PresetPoint (0.347926, 0.972222));
@@ -902,7 +901,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 0));
        fade_out_presets->push_back (p);
 
-       p = new Preset (loout_xpm);
+       p = new Preset ("loout.xpm");
        p->push_back (PresetPoint (0, 1));
        p->push_back (PresetPoint (0.023041, 0.697222));
        p->push_back (PresetPoint (0.0553,   0.483333));
@@ -912,7 +911,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 0));
        fade_out_presets->push_back (p);
 
-       p = new Preset (regout2_xpm);
+       p = new Preset ("regout2.xpm");
        p->push_back (PresetPoint (0, 1));
        p->push_back (PresetPoint (0.080645, 0.730556));
        p->push_back (PresetPoint (0.277778, 0.289256));
@@ -921,7 +920,7 @@ CrossfadeEditor::build_presets ()
        p->push_back (PresetPoint (1, 0));
        fade_out_presets->push_back (p);
 
-       p = new Preset (linout_xpm);
+       p = new Preset ("linout.xpm");
        p->push_back (PresetPoint (0, 1));
        p->push_back (PresetPoint (1, 0));
        fade_out_presets->push_back (p);
@@ -983,7 +982,7 @@ CrossfadeEditor::curve_select_clicked (WhichFade wf)
                }
                
                for (list<Point*>::iterator i = fade[Out].points.begin(); i != fade[Out].points.end(); ++i) {
-                       (*i)->box->hide();
+                       (*i)->box->show();
                }
 
                for (vector<Button*>::iterator i = fade_out_buttons.begin(); i != fade_out_buttons.end(); ++i) {
@@ -1036,7 +1035,7 @@ CrossfadeEditor::make_waves (AudioRegion& region, WhichFade which)
                
                gdouble yoff = n * ht;
                
-               if (region.source(n).peaks_ready (bind (mem_fun(*this, &CrossfadeEditor::peaks_ready), &region, which))) {
+               if (region.source(n).peaks_ready (bind (mem_fun(*this, &CrossfadeEditor::peaks_ready), &region, which), peaks_ready_connection)) {
                        
                        WaveView* waveview = new WaveView (*(canvas->root()));
 
@@ -1071,14 +1070,14 @@ CrossfadeEditor::peaks_ready (AudioRegion* r, WhichFade which)
           will be ready by the time we want them. but our API forces us
           to provide this, so ..
        */
-
+       peaks_ready_connection.disconnect ();
        make_waves (*r, which);
 }
 
 void
 CrossfadeEditor::audition_both ()
 {
-       AudioPlaylist& pl (session.the_auditioner().prepare_playlist());
+       AudioPlaylist& pl (session.the_auditioner()->prepare_playlist());
        jack_nframes_t preroll;
        jack_nframes_t postroll;
        jack_nframes_t length;
@@ -1141,7 +1140,7 @@ CrossfadeEditor::audition_left_dry ()
 void
 CrossfadeEditor::audition_left ()
 {
-       AudioPlaylist& pl (session.the_auditioner().prepare_playlist());
+       AudioPlaylist& pl (session.the_auditioner()->prepare_playlist());
 
        AudioRegion* left = new AudioRegion (xfade.out(), xfade.out().length() - xfade.length(), xfade.length(), "xfade left", 
                                             0, Region::DefaultFlags, false);
@@ -1173,7 +1172,7 @@ CrossfadeEditor::audition_right_dry ()
 void
 CrossfadeEditor::audition_right ()
 {
-       AudioPlaylist& pl (session.the_auditioner().prepare_playlist());
+       AudioPlaylist& pl (session.the_auditioner()->prepare_playlist());
 
        AudioRegion* left = new AudioRegion (xfade.out(), xfade.out().length() - xfade.length(), xfade.length(), "xfade out", 
                                             0, Region::DefaultFlags, false);