manually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample
[ardour.git] / gtk2_ardour / midi_time_axis.cc
index 9e4d0ed5b1cb4f6a7980b88582a144766689c714..17a5feff29ae889cdfce5fce705d59c0f190e89e 100644 (file)
@@ -123,7 +123,6 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session* sess, ArdourCanva
        , controller_menu (0)
        , poly_pressure_menu (0)
        , _step_editor (0)
-       , _patch_change_dialog (0)
 {
        _midnam_model_selector.disable_scrolling();
        _midnam_custom_device_mode_selector.disable_scrolling();
@@ -193,10 +192,6 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
        update_control_names();
        processors_changed (RouteProcessorChange ());
 
-       _route->processors_changed.connect (*this, invalidator (*this),
-                                           boost::bind (&MidiTimeAxisView::processors_changed, this, _1),
-                                           gui_context());
-
        if (is_track()) {
                _piano_roll_header->SetNoteSelection.connect (
                        sigc::mem_fun (*this, &MidiTimeAxisView::set_note_selection));
@@ -347,9 +342,6 @@ MidiTimeAxisView::~MidiTimeAxisView ()
 
        delete controller_menu;
        delete _step_editor;
-
-       delete  _patch_change_dialog;
-       _patch_change_dialog = 0;
 }
 
 void
@@ -391,11 +383,6 @@ MidiTimeAxisView::setup_midnam_patches ()
        }
 }
 
-void
-MidiTimeAxisView::drop_instrument_ref ()
-{
-       midnam_connection.drop_connections ();
-}
 void
 MidiTimeAxisView::start_scroomer_update ()
 {
@@ -417,17 +404,8 @@ MidiTimeAxisView::update_patch_selector ()
 
        bool pluginprovided = false;
        if (_route) {
-               boost::shared_ptr<Processor> the_instrument (_route->the_instrument());
-               boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert>(the_instrument);
+               boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (_route->the_instrument ());
                if (pi && pi->plugin ()->has_midnam ()) {
-                       midnam_connection.drop_connections ();
-                       the_instrument->DropReferences.connect (midnam_connection, invalidator (*this),
-                                       boost::bind (&MidiTimeAxisView::drop_instrument_ref, this),
-                                       gui_context());
-                       pi->plugin()->UpdateMidnam.connect (midnam_connection, invalidator (*this),
-                                       boost::bind (&Plugin::read_midnam, pi->plugin ()),
-                                       gui_context());
-
                        pluginprovided = true;
                        std::string model_name = pi->plugin ()->midnam_model ();
                        if (gui_property (X_("midnam-model-name")) != model_name) {
@@ -445,6 +423,7 @@ MidiTimeAxisView::update_patch_selector ()
        }
 }
 
+
 void
 MidiTimeAxisView::model_changed(const std::string& model)
 {
@@ -486,6 +465,10 @@ MidiTimeAxisView::model_changed(const std::string& model)
        delete controller_menu;
        controller_menu = 0;
        build_automation_action_menu(false);
+
+       if (patch_change_dialog ()) {
+               patch_change_dialog ()->refresh ();
+       }
 }
 
 void
@@ -565,7 +548,7 @@ MidiTimeAxisView::append_extra_display_menu_items ()
                                   sigc::mem_fun(*this, &MidiTimeAxisView::toggle_channel_selector)));
 
        items.push_back (MenuElem (_("Patch Selector..."),
-                               sigc::mem_fun(*this, &MidiTimeAxisView::send_patch_change)));
+                               sigc::mem_fun(*this, &RouteUI::select_midi_patch)));
 
        color_mode_menu = build_color_mode_menu();
        if (color_mode_menu) {
@@ -1082,22 +1065,6 @@ MidiTimeAxisView::build_color_mode_menu()
        return mode_menu;
 }
 
-void
-MidiTimeAxisView::send_patch_change ()
-{
-       if (!_route) {
-               return;
-       }
-       if (_patch_change_dialog) {
-               _patch_change_dialog->present ();
-               return;
-       }
-
-       PatchChangeGridDialog* d = new PatchChangeGridDialog (string_compose (_("Select Patch for '%1'"), _route->name ()), _route);
-       _patch_change_dialog = d;
-       d->present ();
-}
-
 void
 MidiTimeAxisView::set_note_mode(NoteMode mode, bool apply_to_selection)
 {
@@ -1568,10 +1535,10 @@ MidiTimeAxisView::automation_child_menu_item (Evoral::Parameter param)
 }
 
 boost::shared_ptr<MidiRegion>
-MidiTimeAxisView::add_region (framepos_t f, framecnt_t length, bool commit)
+MidiTimeAxisView::add_region (samplepos_t f, samplecnt_t length, bool commit)
 {
        Editor* real_editor = dynamic_cast<Editor*> (&_editor);
-       MusicFrame pos (f, 0);
+       MusicSample pos (f, 0);
 
        if (commit) {
                real_editor->begin_reversible_command (Operations::create_region);
@@ -1589,8 +1556,8 @@ MidiTimeAxisView::add_region (framepos_t f, framecnt_t length, bool commit)
 
        boost::shared_ptr<Region> region = (RegionFactory::create (src, plist));
        /* sets beat position */
-       region->set_position (pos.frame, pos.division);
-       playlist()->add_region (region, pos.frame, 1.0, false, pos.division);
+       region->set_position (pos.sample, pos.division);
+       playlist()->add_region (region, pos.sample, 1.0, false, pos.division);
        _session->add_command (new StatefulDiffCommand (playlist()));
 
        if (commit) {
@@ -1665,7 +1632,7 @@ MidiTimeAxisView::contents_height_changed ()
 }
 
 bool
-MidiTimeAxisView::paste (framepos_t pos, const Selection& selection, PasteContext& ctx, const int32_t sub_num)
+MidiTimeAxisView::paste (samplepos_t pos, const Selection& selection, PasteContext& ctx, const int32_t sub_num)
 {
        if (!_editor.internal_editing()) {
                // Non-internal paste, paste regions like any other route