diff options
Diffstat (limited to 'gtk2_ardour')
94 files changed, 259 insertions, 81 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index 99c97d20a4..55fa26ec85 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -26,7 +26,6 @@ gtkardour.Merge ([ libraries['ardour'], libraries['ardour_cp'], libraries['gtkmm2ext'], -# libraries['flowcanvas'], libraries['midi++2'], libraries['pbd3'], libraries['gtkmm2'], @@ -62,6 +61,7 @@ skipped_files=Split(""" connection_editor.cc """) + gtkardour_files=Split(""" about.cc actions.cc @@ -181,6 +181,7 @@ visual_time_axis.cc waveview.cc """) + fft_analysis_files=Split(""" analysis_window.cc fft_graph.cc diff --git a/gtk2_ardour/about.cc b/gtk2_ardour/about.cc index 94284f58d4..033b5c4604 100644 --- a/gtk2_ardour/about.cc +++ b/gtk2_ardour/about.cc @@ -43,6 +43,7 @@ using namespace Gdk; using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; #ifdef WITH_PAYMENT_OPTIONS diff --git a/gtk2_ardour/actions.cc b/gtk2_ardour/actions.cc index 78acffd6d1..ee688c3660 100644 --- a/gtk2_ardour/actions.cc +++ b/gtk2_ardour/actions.cc @@ -39,6 +39,7 @@ using namespace std; using namespace Gtk; using namespace Glib; using namespace sigc; +using namespace PBD; vector<RefPtr<Gtk::Action> > ActionManager::session_sensitive_actions; vector<RefPtr<Gtk::Action> > ActionManager::region_list_selection_sensitive_actions; diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index 8664dae61c..aa61cb2525 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -35,6 +35,7 @@ using namespace Gtk; using namespace Gtkmm2ext; using namespace sigc; using namespace std; +using namespace PBD; static const char* channel_setup_names[] = { "Mono", @@ -44,6 +45,7 @@ static const char* channel_setup_names[] = { "6 Channels", "8 Channels", "Manual Setup", + "MIDI", 0 }; @@ -157,6 +159,13 @@ AddRouteDialog::track () return track_button.get_active (); } +bool +AddRouteDialog::midi () +{ + const string str = channel_combo.get_active_text(); + return (str == _("MIDI")); +} + string AddRouteDialog::name_template () { @@ -192,7 +201,7 @@ AddRouteDialog::channels () string str = channel_combo.get_active_text(); int chns; - if (str == _("Mono")) { + if (str == _("Mono") || str == _("MIDI")) { return 1; } else if (str == _("Stereo")) { return 2; diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 28d8916985..ae4679fd5d 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -21,6 +21,7 @@ class AddRouteDialog : public Gtk::Dialog ~AddRouteDialog (); bool track (); + bool midi (); std::string name_template (); int channels (); int count (); diff --git a/gtk2_ardour/analysis_window.cc b/gtk2_ardour/analysis_window.cc index f044ca7388..5b135aad6e 100644 --- a/gtk2_ardour/analysis_window.cc +++ b/gtk2_ardour/analysis_window.cc @@ -26,7 +26,7 @@ #include <gtkmm/treeiter.h> #include <ardour/audioregion.h> -#include <ardour/playlist.h> +#include <ardour/audioplaylist.h> #include <ardour/types.h> #include "analysis_window.h" @@ -40,6 +40,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; AnalysisWindow::AnalysisWindow() : ArdourDialog(_("analysis window")), @@ -229,7 +230,12 @@ AnalysisWindow::analyze_data (Gtk::Button *button) for (TrackSelection::iterator i = s.tracks.begin(); i != s.tracks.end(); ++i) { - ARDOUR::Playlist *pl = (*i)->playlist(); + ARDOUR::AudioPlaylist *pl + = dynamic_cast<ARDOUR::AudioPlaylist*>((*i)->playlist()); + + if (!pl) + continue; + RouteUI *rui = dynamic_cast<RouteUI *>(*i); // Busses don't have playlists, so we need to check that we actually are working with a playlist diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index fa77c3f50b..901541778d 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -56,6 +56,7 @@ #include <ardour/session_diskstream.h> #include <ardour/port.h> #include <ardour/audio_track.h> +#include <ardour/midi_track.h> #include "actions.h" #include "ardour_ui.h" @@ -76,6 +77,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; @@ -867,11 +869,51 @@ ARDOUR_UI::open_session () void -ARDOUR_UI::session_add_midi_track () +ARDOUR_UI::session_add_midi_route (bool disk) { - cerr << _("Patience is a virtue.\n"); + Route* route; + + if (session == 0) { + warning << _("You cannot add a track without a session already loaded.") << endmsg; + return; + } + + try { + if (disk) { + if ((route = session->new_midi_track ()) == 0) { + error << _("could not create new MIDI track") << endmsg; + } + } else { + if ((route = session->new_midi_route ()) == 0) { + error << _("could not create new MIDI bus") << endmsg; + } + } +#if 0 +#if CONTROLOUTS + if (need_control_room_outs) { + pan_t pans[2]; + + pans[0] = 0.5; + pans[1] = 0.5; + + route->set_stereo_control_outs (control_lr_channels); + route->control_outs()->set_stereo_pan (pans, this); + } +#endif /* CONTROLOUTS */ +#endif + } + + catch (...) { + MessageDialog msg (*editor, + _("There are insufficient JACK ports available\n\ +to create a new track or bus.\n\ +You should save Ardour, exit and\n\ +restart JACK with more ports.")); + msg.run (); + } } + void ARDOUR_UI::session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode) { @@ -917,7 +959,7 @@ restart JACK with more ports.")); } void -ARDOUR_UI::diskstream_added (AudioDiskstream* ds) +ARDOUR_UI::diskstream_added (Diskstream* ds) { } @@ -1164,11 +1206,14 @@ ARDOUR_UI::toggle_monitor_enable (guint32 dstream) return; } - AudioDiskstream *ds; + Diskstream *ds; if ((ds = session->diskstream_by_id (dstream)) != 0) { - Port *port = ds->io()->input (0); - port->request_monitor_input (!port->monitoring_input()); + AudioDiskstream *ads = dynamic_cast<AudioDiskstream*>(ds); + if (ads) { + Port *port = ds->io()->input (0); + port->request_monitor_input (!port->monitoring_input()); + } } } @@ -1179,7 +1224,7 @@ ARDOUR_UI::toggle_record_enable (guint32 dstream) return; } - AudioDiskstream *ds; + Diskstream *ds; if ((ds = session->diskstream_by_id (dstream)) != 0) { ds->set_record_enabled (!ds->record_enabled(), this); @@ -2144,7 +2189,11 @@ ARDOUR_UI::add_route () /* XXX do something with name template */ while (count) { - if (track) { + if (track && add_route_dialog->midi()) { + session_add_midi_track(); + } else if (add_route_dialog->midi()) { + session_add_midi_bus(); + } else if (track) { session_add_audio_track (input_chan, output_chan, add_route_dialog->mode()); } else { session_add_audio_bus (input_chan, output_chan); diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 678342f32b..9dad6086be 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -199,7 +199,13 @@ class ARDOUR_UI : public Gtkmm2ext::UI session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal); } - void session_add_midi_track (); + void session_add_midi_track () { + session_add_midi_route (true); + } + + void session_add_midi_bus () { + session_add_midi_route (false); + } void set_engine (ARDOUR::AudioEngine&); @@ -522,7 +528,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI sigc::connection point_one_second_connection; sigc::connection point_zero_one_second_connection; - void diskstream_added (ARDOUR::AudioDiskstream*); + void diskstream_added (ARDOUR::Diskstream*); gint session_menu (GdkEventButton *); @@ -538,6 +544,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode); + void session_add_midi_route (bool disk); void add_diskstream_to_menu (ARDOUR::AudioDiskstream&); void diskstream_selected (gint32); diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index af1f3094bc..f92201e36c 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -47,6 +47,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace Gtkmm2ext; using namespace Gtk; using namespace Glib; diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 1f8b0ef702..0603fc6baa 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -36,6 +36,7 @@ using namespace sigc; using namespace Gtk; +using namespace PBD; namespace ARDOUR { class Session; diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index eb9e72b253..1c35ed93ae 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -39,6 +39,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Glib; using namespace Gtk; using namespace Gtkmm2ext; @@ -76,7 +77,7 @@ ARDOUR_UI::connect_to_session (Session *s) shuttle_box.set_sensitive (true); if (session->n_audio_diskstreams() == 0) { - session->AudioDiskstreamAdded.connect (mem_fun(*this, &ARDOUR_UI::diskstream_added)); + session->DiskstreamAdded.connect (mem_fun(*this, &ARDOUR_UI::diskstream_added)); } if (connection_editor) { diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 3add2a150c..e23ea65716 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -40,6 +40,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Gtkmm2ext; @@ -190,13 +191,17 @@ ARDOUR_UI::install_actions () ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_toggle_action (common_actions, X_("ToggleBigClock"), _("Big Clock"), mem_fun(*this, &ARDOUR_UI::toggle_big_clock_window)); ActionManager::session_sensitive_actions.push_back (act); - ActionManager::register_action (common_actions, X_("About"), _("About"), mem_fun(*this, &ARDOUR_UI::show_splash)); + act = ActionManager::register_action (common_actions, X_("About"), _("About"), mem_fun(*this, &ARDOUR_UI::show_splash)); act = ActionManager::register_toggle_action (common_actions, X_("ToggleColorManager"), _("Colors"), mem_fun(*this, &ARDOUR_UI::toggle_color_manager)); - + ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (common_actions, X_("AddAudioTrack"), _("Add Audio Track"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_track), 1, 1, ARDOUR::Normal)); ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (common_actions, X_("AddAudioBus"), _("Add Audio Bus"), bind (mem_fun(*this, &ARDOUR_UI::session_add_audio_bus), 1, 1)); ActionManager::session_sensitive_actions.push_back (act); + act = ActionManager::register_action (common_actions, X_("AddMIDITrack"), _("Add MIDI Track"), (mem_fun(*this, &ARDOUR_UI::session_add_midi_track))); + ActionManager::session_sensitive_actions.push_back (act); + act = ActionManager::register_action (common_actions, X_("AddMidiBus"), _("Add Midi Bus"), mem_fun(*this, &ARDOUR_UI::session_add_midi_bus)); + ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (common_actions, X_("Save"), _("Save"), bind (mem_fun(*this, &ARDOUR_UI::save_state), string(""))); ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (common_actions, X_("RemoveLastCapture"), _("Remove Last Capture"), mem_fun(*this, &ARDOUR_UI::remove_last_capture)); diff --git a/gtk2_ardour/ardour_ui_mixer.cc b/gtk2_ardour/ardour_ui_mixer.cc index 8d92f70ae2..991f37c3a7 100644 --- a/gtk2_ardour/ardour_ui_mixer.cc +++ b/gtk2_ardour/ardour_ui_mixer.cc @@ -28,6 +28,7 @@ #include "mixer_ui.h" using namespace ARDOUR; +using namespace PBD; int ARDOUR_UI::create_mixer () diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc index ac0028b58c..665c92d264 100644 --- a/gtk2_ardour/ardour_ui_options.cc +++ b/gtk2_ardour/ardour_ui_options.cc @@ -35,6 +35,7 @@ using namespace Gtk; using namespace Gtkmm2ext; using namespace ARDOUR; +using namespace PBD; void ARDOUR_UI::setup_config_options () diff --git a/gtk2_ardour/arprof b/gtk2_ardour/arprof index 984866a99b..8af65b5fe3 100755 --- a/gtk2_ardour/arprof +++ b/gtk2_ardour/arprof @@ -6,4 +6,4 @@ if [ gprofhelper.c -nt gprofhelper.so ] ; then fi export LD_LIBRARY_PATH=../libs/ardour/.libs -LDPRELOAD=./gprofhelper.so ./ardour $* +LDPRELOAD=./gprofhelper.so ./ardev $* diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 25985c4a3b..8c6f3a7d82 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -37,6 +37,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index 32c303de34..c2fbc45a84 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -80,6 +80,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace LADSPA; using namespace Gtk; using namespace Editing; @@ -378,7 +379,7 @@ AudioTimeAxisView::playlist_changed () label_view (); if (is_audio_track()) { - set_playlist (get_diskstream()->playlist()); + set_playlist (dynamic_cast<AudioPlaylist*>(get_diskstream()->playlist())); } } @@ -825,7 +826,8 @@ AudioTimeAxisView::rename_current_playlist () AudioPlaylist *pl; AudioDiskstream *ds; - if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) { + if (((ds = get_diskstream()) == 0) || ds->destructive() + || ((pl = dynamic_cast<AudioPlaylist*>(ds->playlist())) == 0)) { return; } @@ -854,7 +856,8 @@ AudioTimeAxisView::use_copy_playlist (bool prompt) AudioDiskstream *ds; string name; - if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) { + if (((ds = get_diskstream()) == 0) || ds->destructive() + || ((pl = dynamic_cast<AudioPlaylist*>(ds->playlist())) == 0)) { return; } @@ -882,7 +885,7 @@ AudioTimeAxisView::use_copy_playlist (bool prompt) if (name.length()) { ds->use_copy_playlist (); - pl = ds->playlist(); + pl = dynamic_cast<AudioPlaylist*>(ds->playlist()); pl->set_name (name); } } @@ -894,7 +897,8 @@ AudioTimeAxisView::use_new_playlist (bool prompt) AudioDiskstream *ds; string name; - if (((ds = get_diskstream()) == 0) || ds->destructive() || ((pl = ds->playlist()) == 0)) { + if (((ds = get_diskstream()) == 0) || ds->destructive() + || ((pl = dynamic_cast<AudioPlaylist*>(ds->playlist())) == 0)) { return; } @@ -921,7 +925,7 @@ AudioTimeAxisView::use_new_playlist (bool prompt) if (name.length()) { ds->use_new_playlist (); - pl = ds->playlist(); + pl = dynamic_cast<AudioPlaylist*>(ds->playlist()); pl->set_name (name); } } @@ -933,7 +937,7 @@ AudioTimeAxisView::clear_playlist () AudioDiskstream *ds; if ((ds = get_diskstream()) != 0) { - if ((pl = ds->playlist()) != 0) { + if ((pl = dynamic_cast<AudioPlaylist*>(ds->playlist())) != 0) { editor.clear_playlist (*pl); } } @@ -991,7 +995,7 @@ AudioTimeAxisView::update_diskstream_display () AudioDiskstream *ds; if ((ds = get_diskstream()) != 0) { - set_playlist (ds->playlist ()); + set_playlist (dynamic_cast<AudioPlaylist*> (ds->playlist ())); } map_frozen (); @@ -1143,7 +1147,7 @@ Region* AudioTimeAxisView::find_next_region (jack_nframes_t pos, RegionPoint point, int32_t dir) { AudioDiskstream *stream; - AudioPlaylist *playlist; + Playlist *playlist; if ((stream = get_diskstream()) != 0 && (playlist = stream->playlist()) != 0) { return playlist->find_next_region (pos, point, dir); diff --git a/gtk2_ardour/automation_gain_line.cc b/gtk2_ardour/automation_gain_line.cc index 272e6cfc52..74e4f64e3c 100644 --- a/gtk2_ardour/automation_gain_line.cc +++ b/gtk2_ardour/automation_gain_line.cc @@ -31,6 +31,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; AutomationGainLine::AutomationGainLine (const string & name, Session& s, TimeAxisView& tv, ArdourCanvas::Group& parent, Curve& c) diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc index 70bc676fca..b87a71ca87 100644 --- a/gtk2_ardour/automation_line.cc +++ b/gtk2_ardour/automation_line.cc @@ -48,6 +48,7 @@ using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Editing; using namespace Gnome; // for Canvas diff --git a/gtk2_ardour/automation_pan_line.cc b/gtk2_ardour/automation_pan_line.cc index 7a264502af..aacfbdde75 100644 --- a/gtk2_ardour/automation_pan_line.cc +++ b/gtk2_ardour/automation_pan_line.cc @@ -31,6 +31,7 @@ #include <ardour/session.h> using namespace ARDOUR; +using namespace PBD; AutomationPanLine::AutomationPanLine (const string & name, Session& s, TimeAxisView& tv, ArdourCanvas::Group& parent, Curve& c) diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc index 670a718736..165e124add 100644 --- a/gtk2_ardour/automation_time_axis.cc +++ b/gtk2_ardour/automation_time_axis.cc @@ -16,6 +16,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Editing; diff --git a/gtk2_ardour/color_manager.cc b/gtk2_ardour/color_manager.cc index db88e6622c..2f1a286467 100644 --- a/gtk2_ardour/color_manager.cc +++ b/gtk2_ardour/color_manager.cc @@ -12,6 +12,7 @@ using namespace std; using namespace Gtk; +using namespace PBD; /* the global color map */ diff --git a/gtk2_ardour/connection_editor.cc b/gtk2_ardour/connection_editor.cc index f411f945c8..a7c6e265ed 100644 --- a/gtk2_ardour/connection_editor.cc +++ b/gtk2_ardour/connection_editor.cc @@ -43,6 +43,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace sigc; diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc index 293324dc91..5b587594de 100644 --- a/gtk2_ardour/crossfade_edit.cc +++ b/gtk2_ardour/crossfade_edit.cc @@ -52,6 +52,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace sigc; using namespace Editing; diff --git a/gtk2_ardour/crossfade_view.cc b/gtk2_ardour/crossfade_view.cc index 4545837dfa..350698ec48 100644 --- a/gtk2_ardour/crossfade_view.cc +++ b/gtk2_ardour/crossfade_view.cc @@ -35,6 +35,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Editing; using namespace Gnome; using namespace Canvas; diff --git a/gtk2_ardour/curvetest.cc b/gtk2_ardour/curvetest.cc index 613835aa4c..3c9836a5e6 100644 --- a/gtk2_ardour/curvetest.cc +++ b/gtk2_ardour/curvetest.cc @@ -7,6 +7,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; int curvetest (string filename) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 16a8e5d922..0e45154717 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -84,6 +84,7 @@ using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Glib; using namespace Gtkmm2ext; @@ -3120,7 +3121,7 @@ Editor::mapped_set_selected_regionview_from_click (AudioTimeAxisView& atv, uint3 } - if ((pl = ds->playlist()) != 0) { + if ((pl = dynamic_cast<AudioPlaylist*>(ds->playlist())) != 0) { pl->get_equivalent_regions (basis->region, results); } @@ -3345,7 +3346,7 @@ Editor::set_selected_regionview_from_region_list (Region& r, Selection::Operatio continue; } - if ((pl = ds->playlist()) != 0) { + if ((pl = dynamic_cast<AudioPlaylist*>(ds->playlist())) != 0) { pl->get_region_list_equivalent_regions (*region, results); } diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index be2f3ba44f..b29b51a399 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -69,6 +69,7 @@ namespace ARDOUR { class AudioDiskstream; class RouteGroup; class Playlist; + class AudioPlaylist; class Region; class Location; class TempoSection; @@ -1600,7 +1601,7 @@ class Editor : public PublicEditor void external_edit_region (); int write_audio_selection (TimeSelection&); - bool write_audio_range (ARDOUR::Playlist&, uint32_t channels, list<ARDOUR::AudioRange>&); + bool write_audio_range (ARDOUR::AudioPlaylist&, uint32_t channels, list<ARDOUR::AudioRange>&); void write_selection (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index d88cda61e6..e20e6ee8eb 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -12,6 +12,7 @@ using namespace Glib; using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Editing; void diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 6f9d96e61e..f3e2ee1cb2 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -42,6 +42,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; using namespace Editing; diff --git a/gtk2_ardour/editor_audiotrack.cc b/gtk2_ardour/editor_audiotrack.cc index db1353f159..acad3371a0 100644 --- a/gtk2_ardour/editor_audiotrack.cc +++ b/gtk2_ardour/editor_audiotrack.cc @@ -8,6 +8,7 @@ #include "selection.h" using namespace ARDOUR; +using namespace PBD; void Editor::set_route_loop_selection () diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index 69aa6428a6..41350a1da4 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -46,6 +46,7 @@ using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Glib; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index ff4dda9182..dd87fc0bce 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -42,6 +42,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; bool @@ -511,22 +512,25 @@ Editor::canvas_crossfade_view_event (GdkEvent* event, ArdourCanvas::Item* item, if ((atv = dynamic_cast<AudioTimeAxisView*>(&tv)) != 0) { if (atv->is_audio_track()) { - - AudioPlaylist* pl = atv->get_diskstream()->playlist(); - Playlist::RegionList* rl = pl->regions_at (event_frame (event)); - if (!rl->empty()) { - DescendingRegionLayerSorter cmp; - rl->sort (cmp); + AudioPlaylist* pl; + if ((pl = dynamic_cast<AudioPlaylist*> (atv->get_diskstream()->playlist())) != 0) { + + Playlist::RegionList* rl = pl->regions_at (event_frame (event)); + + if (!rl->empty()) { + DescendingRegionLayerSorter cmp; + rl->sort (cmp); - AudioRegionView* arv = atv->view->find_view (*(dynamic_cast<AudioRegion*> (rl->front()))); + AudioRegionView* arv = atv->view->find_view (*(dynamic_cast<AudioRegion*> (rl->front()))); - /* proxy */ - - delete rl; + /* proxy */ - return canvas_region_view_event (event, arv->get_canvas_group(), arv); - } + delete rl; + + return canvas_region_view_event (event, arv->get_canvas_group(), arv); + } + } } } diff --git a/gtk2_ardour/editor_cursors.cc b/gtk2_ardour/editor_cursors.cc index 5dd1eb075b..2353481daf 100644 --- a/gtk2_ardour/editor_cursors.cc +++ b/gtk2_ardour/editor_cursors.cc @@ -28,6 +28,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; Editor::Cursor::Cursor (Editor& ed, const string& color, bool (Editor::*callbck)(GdkEvent*,ArdourCanvas::Item*)) diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc index 0047999f71..8df76fef25 100644 --- a/gtk2_ardour/editor_edit_groups.cc +++ b/gtk2_ardour/editor_edit_groups.cc @@ -38,6 +38,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; void diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc index 9781a24d29..f76f494e5f 100644 --- a/gtk2_ardour/editor_export_audio.cc +++ b/gtk2_ardour/editor_export_audio.cc @@ -46,6 +46,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; void @@ -286,7 +287,7 @@ Editor::write_audio_selection (TimeSelection& ts) if (atv->is_audio_track()) { - Playlist* playlist = atv->get_diskstream()->playlist(); + AudioPlaylist* playlist = dynamic_cast<AudioPlaylist*>(atv->get_diskstream()->playlist()); if (playlist && write_audio_range (*playlist, atv->get_diskstream()->n_channels(), ts) == 0) { ret = -1; @@ -299,7 +300,7 @@ Editor::write_audio_selection (TimeSelection& ts) } bool -Editor::write_audio_range (Playlist& playlist, uint32_t channels, list<AudioRange>& range) +Editor::write_audio_range (AudioPlaylist& playlist, uint32_t channels, list<AudioRange>& range) { AudioFileSource* fs; const jack_nframes_t chunk_size = 4096; diff --git a/gtk2_ardour/editor_hscroller.cc b/gtk2_ardour/editor_hscroller.cc index 5b2da7dc83..8504667daa 100644 --- a/gtk2_ardour/editor_hscroller.cc +++ b/gtk2_ardour/editor_hscroller.cc @@ -24,6 +24,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; void Editor::hscrollbar_allocate (Gtk::Allocation &alloc) diff --git a/gtk2_ardour/editor_imageframe.cc b/gtk2_ardour/editor_imageframe.cc index a8dce7d64b..6b8691b09f 100644 --- a/gtk2_ardour/editor_imageframe.cc +++ b/gtk2_ardour/editor_imageframe.cc @@ -44,6 +44,7 @@ #include "public_editor.h" using namespace Gtk; +using namespace PBD; /* <CMT Additions file="editor.cc"> */ diff --git a/gtk2_ardour/editor_keys.cc b/gtk2_ardour/editor_keys.cc index 00469281fc..baa158cbf8 100644 --- a/gtk2_ardour/editor_keys.cc +++ b/gtk2_ardour/editor_keys.cc @@ -36,6 +36,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; void diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index df64b9ed43..a584561e42 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -41,6 +41,7 @@ using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; void diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index c140213bb2..1100c23f61 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -61,6 +61,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; using namespace Editing; @@ -3197,7 +3198,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event) AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*> (&rv->get_time_axis_view()); if (atv && atv->is_audio_track()) { - AudioPlaylist* pl = atv->get_diskstream()->playlist(); + AudioPlaylist* pl = dynamic_cast<AudioPlaylist*>(atv->get_diskstream()->playlist()); if (pl) { /* only freeze and capture state once */ diff --git a/gtk2_ardour/editor_nudge.cc b/gtk2_ardour/editor_nudge.cc index 4bcafac93d..c6f5eeeb48 100644 --- a/gtk2_ardour/editor_nudge.cc +++ b/gtk2_ardour/editor_nudge.cc @@ -27,4 +27,5 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 39b2843756..d3845dd26b 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -64,6 +64,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; using namespace Editing; diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc index 26d9717d4a..5cf099433b 100644 --- a/gtk2_ardour/editor_region_list.cc +++ b/gtk2_ardour/editor_region_list.cc @@ -42,6 +42,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Glib; using namespace Editing; diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc index 79b67a544a..2e036f5001 100644 --- a/gtk2_ardour/editor_route_list.cc +++ b/gtk2_ardour/editor_route_list.cc @@ -35,6 +35,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; void diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc index e44f6a55eb..47641655e7 100644 --- a/gtk2_ardour/editor_rulers.cc +++ b/gtk2_ardour/editor_rulers.cc @@ -35,6 +35,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Editing; diff --git a/gtk2_ardour/editor_selection_list.cc b/gtk2_ardour/editor_selection_list.cc index 3b5d00d9ed..959da1ad2d 100644 --- a/gtk2_ardour/editor_selection_list.cc +++ b/gtk2_ardour/editor_selection_list.cc @@ -40,6 +40,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc index f4351fe518..5f998ada9f 100644 --- a/gtk2_ardour/editor_tempodisplay.cc +++ b/gtk2_ardour/editor_tempodisplay.cc @@ -49,6 +49,7 @@ using namespace std; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Gtkmm2ext; using namespace Editing; diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc index ecb2f5ba4b..6ff467454d 100644 --- a/gtk2_ardour/editor_timefx.cc +++ b/gtk2_ardour/editor_timefx.cc @@ -41,6 +41,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 834127e042..bcf8cd85ad 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -49,6 +49,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; diff --git a/gtk2_ardour/export_range_markers_dialog.cc b/gtk2_ardour/export_range_markers_dialog.cc index 3ff6ae783d..e43eb20cd1 100644 --- a/gtk2_ardour/export_range_markers_dialog.cc +++ b/gtk2_ardour/export_range_markers_dialog.cc @@ -32,6 +32,7 @@ using namespace Gtk; using namespace ARDOUR; +using namespace PBD; using namespace std; ExportRangeMarkersDialog::ExportRangeMarkersDialog (PublicEditor& editor) diff --git a/gtk2_ardour/gain_automation_time_axis.cc b/gtk2_ardour/gain_automation_time_axis.cc index cb96774cdb..8f41f5def0 100644 --- a/gtk2_ardour/gain_automation_time_axis.cc +++ b/gtk2_ardour/gain_automation_time_axis.cc @@ -28,6 +28,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; GainAutomationTimeAxisView::GainAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, ArdourCanvas::Canvas& canvas, const string & n, ARDOUR::Curve& c) diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 60b4854600..b7746c4b19 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -47,6 +47,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; diff --git a/gtk2_ardour/imageframe_socket_handler.cc b/gtk2_ardour/imageframe_socket_handler.cc index f649eddef7..905a96de7d 100644 --- a/gtk2_ardour/imageframe_socket_handler.cc +++ b/gtk2_ardour/imageframe_socket_handler.cc @@ -52,6 +52,7 @@ using namespace std; using namespace ardourvis ; using namespace sigc; using namespace ARDOUR; +using namespace PBD; ImageFrameSocketHandler* ImageFrameSocketHandler::_instance = 0 ; diff --git a/gtk2_ardour/imageframe_time_axis.cc b/gtk2_ardour/imageframe_time_axis.cc index 4ed36f55e7..ae288ec9ab 100644 --- a/gtk2_ardour/imageframe_time_axis.cc +++ b/gtk2_ardour/imageframe_time_axis.cc @@ -47,6 +47,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index b18e08fabd..b0ecd05077 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -49,6 +49,7 @@ using namespace Gtk; using namespace Glib; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtkmm2ext; IOSelectorWindow::IOSelectorWindow (Session& sess, IO& ior, bool input, bool can_cancel) diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc index 92dce01bb6..17390b8b4d 100644 --- a/gtk2_ardour/keyboard.cc +++ b/gtk2_ardour/keyboard.cc @@ -35,6 +35,8 @@ #include "i18n.h" +using namespace PBD; + #define KBD_DEBUG 1 bool debug_keyboard = false; diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc index 21d0fb5b15..f0fe230b57 100644 --- a/gtk2_ardour/location_ui.cc +++ b/gtk2_ardour/location_ui.cc @@ -38,6 +38,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index 2bbae39568..778355c858 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -53,6 +53,7 @@ using namespace Gtk; using namespace GTK_ARDOUR; using namespace ARDOUR; +using namespace PBD; using namespace sigc; TextReceiver text_receiver ("ardour"); @@ -102,12 +103,6 @@ handler (int sig) shutdown (1); } -static void -handler2 (int sig, siginfo_t* ctxt, void* ignored) -{ - handler (sig); -} - static void * signal_thread (void *arg) { @@ -361,9 +356,17 @@ To create it from the command line, start ardour as \"ardour --new %1"), path) return true; } +#ifdef VST_SUPPORT +/* this is called from the entry point of a wine-compiled + executable that is linked against gtk2_ardour built + as a shared library. +*/ +extern "C" { +int ardour_main (int argc, char *argv[]) +#else +int main (int argc, char *argv[]) +#endif -int -main (int argc, char *argv[]) { ARDOUR::AudioEngine *engine; vector<Glib::ustring> null_file_list; @@ -443,7 +446,7 @@ main (int argc, char *argv[]) try { engine = new ARDOUR::AudioEngine (jack_client_name); - ARDOUR::init (*engine, use_vst, try_hw_optimization, handler2); + ARDOUR::init (*engine, use_vst, try_hw_optimization); ui->set_engine (*engine); } catch (AudioEngine::NoBackendAvailable& err) { gui_jack_error (); @@ -463,6 +466,9 @@ main (int argc, char *argv[]) ARDOUR::cleanup (); shutdown (0); - /* just another commit forcing change */ + return 0; } +#ifdef VST_SUPPORT +} // end of extern C block +#endif diff --git a/gtk2_ardour/marker_time_axis.cc b/gtk2_ardour/marker_time_axis.cc index acb88257e0..1c6e7af2c7 100644 --- a/gtk2_ardour/marker_time_axis.cc +++ b/gtk2_ardour/marker_time_axis.cc @@ -42,6 +42,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; diff --git a/gtk2_ardour/meter_bridge.cc b/gtk2_ardour/meter_bridge.cc index 755058acb2..65434d5e82 100644 --- a/gtk2_ardour/meter_bridge.cc +++ b/gtk2_ardour/meter_bridge.cc @@ -32,6 +32,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace sigc; diff --git a/gtk2_ardour/meter_bridge_strip.cc b/gtk2_ardour/meter_bridge_strip.cc index 50562a68d0..ea3b609720 100644 --- a/gtk2_ardour/meter_bridge_strip.cc +++ b/gtk2_ardour/meter_bridge_strip.cc @@ -40,6 +40,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 3a8881916c..47d884be5e 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -63,6 +63,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 916424b9bd..983903d6dd 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -49,6 +49,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Glib; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc index 5ac4bf5a8d..d4c2715742 100644 --- a/gtk2_ardour/option_editor.cc +++ b/gtk2_ardour/option_editor.cc @@ -43,6 +43,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Editing; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/pan_automation_time_axis.cc b/gtk2_ardour/pan_automation_time_axis.cc index 36e6c31245..b72eda78bd 100644 --- a/gtk2_ardour/pan_automation_time_axis.cc +++ b/gtk2_ardour/pan_automation_time_axis.cc @@ -31,6 +31,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; PanAutomationTimeAxisView::PanAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Canvas& canvas, std::string n) diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc index 36f7aab252..1fb94a1321 100644 --- a/gtk2_ardour/panner2d.cc +++ b/gtk2_ardour/panner2d.cc @@ -39,6 +39,7 @@ using namespace std; using namespace Gtk; using namespace sigc; using namespace ARDOUR; +using namespace PBD; Panner2d::Target::Target (float xa, float ya, const char *txt) : x (xa), y (ya), text (txt ? strdup (txt) : 0) diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index 850070fabf..63a19867a8 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -41,6 +41,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; diff --git a/gtk2_ardour/playlist_selector.cc b/gtk2_ardour/playlist_selector.cc index 870fa2df5f..f16294bf96 100644 --- a/gtk2_ardour/playlist_selector.cc +++ b/gtk2_ardour/playlist_selector.cc @@ -40,6 +40,7 @@ using namespace std; using namespace sigc; using namespace Gtk; using namespace ARDOUR; +using namespace PBD; PlaylistSelector::PlaylistSelector () : ArdourDialog ("playlist selector") @@ -115,7 +116,7 @@ PlaylistSelector::show_for (RouteUI* ruix) for (DSPL_Map::iterator x = dspl_map.begin(); x != dspl_map.end(); ++x) { - AudioDiskstream* ds = session->diskstream_by_id (x->first); + Diskstream* ds = session->diskstream_by_id (x->first); if (ds == 0) { continue; diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc index 56f5fab9c8..16796df160 100644 --- a/gtk2_ardour/plugin_selector.cc +++ b/gtk2_ardour/plugin_selector.cc @@ -36,6 +36,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; PluginSelector::PluginSelector (PluginManager *mgr) @@ -149,6 +150,9 @@ PluginSelector::PluginSelector (PluginManager *mgr) added_list.get_selection()->signal_changed().connect (mem_fun(*this, &PluginSelector::added_list_selection_changed)); input_refiller (); +#ifdef VST_SUPPORT + vst_refiller (); +#endif } void @@ -306,6 +310,9 @@ PluginSelector::btn_update_clicked() { manager->refresh (); input_refiller (); +#ifdef VST_SUPPORT + vst_refiller (); +#endif } #ifdef VST_SUPPORT diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 66231adcc3..749ab9d4ac 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -56,6 +56,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index 958b7995c6..e5800e8ece 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -228,7 +228,7 @@ class VSTPluginUI : public PlugUIBase, public Gtk::VBox Gtk::HBox preset_box; Gtk::VBox vpacker; - gboolean configure_handler (GdkEventConfigure*, Gtk::Socket*); + bool configure_handler (GdkEventConfigure*, Gtk::Socket*); void save_plugin_setting (); }; #endif diff --git a/gtk2_ardour/redirect_automation_line.cc b/gtk2_ardour/redirect_automation_line.cc index 57b1c07967..8971e8ff10 100644 --- a/gtk2_ardour/redirect_automation_line.cc +++ b/gtk2_ardour/redirect_automation_line.cc @@ -32,6 +32,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; RedirectAutomationLine::RedirectAutomationLine (const string & name, Redirect& rd, uint32_t port, Session& s, diff --git a/gtk2_ardour/redirect_automation_time_axis.cc b/gtk2_ardour/redirect_automation_time_axis.cc index 798d132a4a..e1b71310ac 100644 --- a/gtk2_ardour/redirect_automation_time_axis.cc +++ b/gtk2_ardour/redirect_automation_time_axis.cc @@ -29,6 +29,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; RedirectAutomationTimeAxisView::RedirectAutomationTimeAxisView (Session& s, Route& r, PublicEditor& e, TimeAxisView& parent, Canvas& canvas, std::string n, diff --git a/gtk2_ardour/redirect_box.cc b/gtk2_ardour/redirect_box.cc index 3d858a8f60..f5cb9522e0 100644 --- a/gtk2_ardour/redirect_box.cc +++ b/gtk2_ardour/redirect_box.cc @@ -65,6 +65,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace Glib; using namespace Gtkmm2ext; diff --git a/gtk2_ardour/region_editor.cc b/gtk2_ardour/region_editor.cc index 73aa3465d9..413ff01753 100644 --- a/gtk2_ardour/region_editor.cc +++ b/gtk2_ardour/region_editor.cc @@ -33,6 +33,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace std; diff --git a/gtk2_ardour/region_gain_line.cc b/gtk2_ardour/region_gain_line.cc index 059289acd4..bba9410ffb 100644 --- a/gtk2_ardour/region_gain_line.cc +++ b/gtk2_ardour/region_gain_line.cc @@ -16,6 +16,7 @@ using namespace std; using namespace ARDOUR; +using namespace PBD; AudioRegionGainLine::AudioRegionGainLine (const string & name, Session& s, AudioRegionView& r, ArdourCanvas::Group& parent, Curve& c) : AutomationLine (name, r.get_time_axis_view(), parent, c), diff --git a/gtk2_ardour/region_selection.cc b/gtk2_ardour/region_selection.cc index b3ceb8516f..751584cab7 100644 --- a/gtk2_ardour/region_selection.cc +++ b/gtk2_ardour/region_selection.cc @@ -6,6 +6,7 @@ #include "region_selection.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; diff --git a/gtk2_ardour/regionview.cc b/gtk2_ardour/regionview.cc index 4d73b64fe7..114aaf5da3 100644 --- a/gtk2_ardour/regionview.cc +++ b/gtk2_ardour/regionview.cc @@ -49,6 +49,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Editing; using namespace ArdourCanvas; diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index 7b6f00d76b..d6ec7eab6c 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -52,6 +52,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace Gtk; using namespace sigc; diff --git a/gtk2_ardour/route_redirect_selection.cc b/gtk2_ardour/route_redirect_selection.cc index cefe7985cb..6d315e0aae 100644 --- a/gtk2_ardour/route_redirect_selection.cc +++ b/gtk2_ardour/route_redirect_selection.cc @@ -31,6 +31,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; RouteRedirectSelection& diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index bd2cee26e9..4559058b8d 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -41,6 +41,7 @@ using namespace sigc; using namespace Gtk; using namespace Gtkmm2ext; using namespace ARDOUR; +using namespace PBD; RouteUI::RouteUI (ARDOUR::Route& rt, ARDOUR::Session& sess, const char* m_name, diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc index 3c1aea1ec8..2e4ed8a117 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -33,6 +33,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; struct AudioRangeComparator { diff --git a/gtk2_ardour/send_ui.cc b/gtk2_ardour/send_ui.cc index 8ce3838176..be95f753e7 100644 --- a/gtk2_ardour/send_ui.cc +++ b/gtk2_ardour/send_ui.cc @@ -28,6 +28,7 @@ #include "gui_thread.h" using namespace ARDOUR; +using namespace PBD; SendUI::SendUI (Send& s, Session& se) : _send (s), diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc index aa06d86bb8..79546880de 100644 --- a/gtk2_ardour/sfdb_ui.cc +++ b/gtk2_ardour/sfdb_ui.cc @@ -42,6 +42,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace std; SoundFileBox::SoundFileBox () diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index e95411a498..9b33244fad 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -29,6 +29,7 @@ #include "color.h" using namespace ARDOUR; +using namespace PBD; using namespace Editing; StreamView::StreamView (AudioTimeAxisView& tv) @@ -361,7 +362,9 @@ StreamView::playlist_changed (AudioDiskstream *ds) playlist_connections.push_back (ds->playlist()->RegionRemoved.connect (mem_fun (*this, &StreamView::remove_region_view))); playlist_connections.push_back (ds->playlist()->StateChanged.connect (mem_fun (*this, &StreamView::playlist_state_changed))); playlist_connections.push_back (ds->playlist()->Modified.connect (mem_fun (*this, &StreamView::playlist_modified))); - playlist_connections.push_back (ds->playlist()->NewCrossfade.connect (mem_fun (*this, &StreamView::add_crossfade))); + AudioPlaylist* apl = dynamic_cast<AudioPlaylist*>(ds->playlist()); + if (apl) + playlist_connections.push_back (apl->NewCrossfade.connect (mem_fun (*this, &StreamView::add_crossfade))); } void @@ -454,7 +457,9 @@ StreamView::redisplay_diskstream () if (_trackview.is_audio_track()) { _trackview.get_diskstream()->playlist()->foreach_region (this, &StreamView::add_region_view); - _trackview.get_diskstream()->playlist()->foreach_crossfade (this, &StreamView::add_crossfade); + AudioPlaylist* apl = dynamic_cast<AudioPlaylist*>(_trackview.get_diskstream()->playlist()); + if (apl) + apl->foreach_crossfade (this, &StreamView::add_crossfade); } for (i = region_views.begin(); i != region_views.end(); ) { diff --git a/gtk2_ardour/taperegionview.cc b/gtk2_ardour/taperegionview.cc index 533b715ce4..641d067350 100644 --- a/gtk2_ardour/taperegionview.cc +++ b/gtk2_ardour/taperegionview.cc @@ -38,6 +38,7 @@ using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Editing; using namespace ArdourCanvas; diff --git a/gtk2_ardour/tempo_dialog.cc b/gtk2_ardour/tempo_dialog.cc index 9f5fbda13f..7eb0362580 100644 --- a/gtk2_ardour/tempo_dialog.cc +++ b/gtk2_ardour/tempo_dialog.cc @@ -11,6 +11,7 @@ using namespace Gtk; using namespace Gtkmm2ext; using namespace ARDOUR; +using namespace PBD; TempoDialog::TempoDialog (TempoMap& map, jack_nframes_t frame, const string & action) : ArdourDialog ("tempo dialog"), diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 1b6c1f390c..b5ab5baa10 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -55,6 +55,7 @@ using namespace Gtk; using namespace Gdk; using namespace sigc; using namespace ARDOUR; +using namespace PBD; using namespace Editing; using namespace ArdourCanvas; diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc index c333a8acb3..abab306a84 100644 --- a/gtk2_ardour/time_axis_view_item.cc +++ b/gtk2_ardour/time_axis_view_item.cc @@ -38,6 +38,7 @@ using namespace std; using namespace Editing; using namespace Glib; +using namespace PBD; //------------------------------------------------------------------------------ /** Initialize const static memeber data */ diff --git a/gtk2_ardour/time_selection.cc b/gtk2_ardour/time_selection.cc index 0d1b94e8a0..518e04cccb 100644 --- a/gtk2_ardour/time_selection.cc +++ b/gtk2_ardour/time_selection.cc @@ -28,6 +28,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; AudioRange& TimeSelection::operator[] (uint32_t which) diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc index c1ad4f6ca7..91cb7ad58b 100644 --- a/gtk2_ardour/utils.cc +++ b/gtk2_ardour/utils.cc @@ -43,6 +43,7 @@ using namespace std; using namespace Gtk; using namespace sigc; using namespace Glib; +using namespace PBD; ustring fit_to_pixels (const ustring& str, int pixel_width, Pango::FontDescription& font, int& actual_width) diff --git a/gtk2_ardour/visual_time_axis.cc b/gtk2_ardour/visual_time_axis.cc index b6c96c55ab..c27ed33089 100644 --- a/gtk2_ardour/visual_time_axis.cc +++ b/gtk2_ardour/visual_time_axis.cc @@ -55,6 +55,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; using namespace Gtk; diff --git a/gtk2_ardour/vst_pluginui.cc b/gtk2_ardour/vst_pluginui.cc index 8b40e27070..7adf702f4d 100644 --- a/gtk2_ardour/vst_pluginui.cc +++ b/gtk2_ardour/vst_pluginui.cc @@ -19,7 +19,7 @@ */ #include <fst.h> - +#include <gtk/gtksocket.h> #include <ardour/insert.h> #include <ardour/vst_plugin.h> @@ -29,6 +29,7 @@ using namespace Gtk; using namespace ARDOUR; +using namespace PBD; VSTPluginUI::VSTPluginUI (PluginInsert& pi, VSTPlugin& vp) : PlugUIBase (pi), @@ -60,16 +61,12 @@ VSTPluginUI::get_preferred_height () int VSTPluginUI::package (Gtk::Window& win) { - /* for GTK+2, remove this: you cannot add to a realized socket */ - - //socket.realize (); - /* forward configure events to plugin window */ - win.signal_configure_event().connect (bind (mem_fun (*this, &VSTPluginUI::configure_handler), &socket)); + win.signal_configure_event().connect (bind (mem_fun (*this, &VSTPluginUI::configure_handler), &socket), false); - /* XXX in GTK2, use add_id() instead of steal, although add_id() - assumes that the window's owner understands the XEmbed protocol. + /* + this assumes that the window's owner understands the XEmbed protocol. */ socket.add_id (fst_get_XID (vst.fst())); @@ -77,45 +74,42 @@ VSTPluginUI::package (Gtk::Window& win) return 0; } -gboolean +bool VSTPluginUI::configure_handler (GdkEventConfigure* ev, Gtk::Socket *socket) { XEvent event; - gint x, y; + GdkWindow* w; - if (socket->gobj() == NULL) { - return FALSE; + if (socket == 0 || ((w = socket->gobj()->plug_window) == 0)) { + return false; } event.xconfigure.type = ConfigureNotify; - event.xconfigure.event = GDK_WINDOW_XWINDOW (socket->get_window()->gobj()); - event.xconfigure.window = GDK_WINDOW_XWINDOW (socket->get_window()->gobj()); + event.xconfigure.event = GDK_WINDOW_XWINDOW (w); + event.xconfigure.window = GDK_WINDOW_XWINDOW (w); /* The ICCCM says that synthetic events should have root relative * coordinates. We still aren't really ICCCM compliant, since * we don't send events when the real toplevel is moved. */ gdk_error_trap_push (); - gdk_window_get_origin (socket->get_window()->gobj(), &x, &y); + gdk_window_get_origin (w, &x, &y); gdk_error_trap_pop (); event.xconfigure.x = x; event.xconfigure.y = y; - event.xconfigure.width = GTK_WIDGET(socket)->allocation.width; - event.xconfigure.height = GTK_WIDGET(socket)->allocation.height; + event.xconfigure.width = GTK_WIDGET(socket->gobj())->allocation.width; + event.xconfigure.height = GTK_WIDGET(socket->gobj())->allocation.height; event.xconfigure.border_width = 0; event.xconfigure.above = None; event.xconfigure.override_redirect = False; gdk_error_trap_push (); - XSendEvent (GDK_WINDOW_XDISPLAY (socket->get_window()->gobj()), - GDK_WINDOW_XWINDOW (socket->get_window()->gobj()), - False, StructureNotifyMask, &event); - // gdk_display_sync (GDK_WINDOW_XDISPLAY (socket->plug_window)); + XSendEvent (GDK_WINDOW_XDISPLAY (w), GDK_WINDOW_XWINDOW (w), False, StructureNotifyMask, &event); gdk_error_trap_pop (); - return FALSE; + return false; } |