summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-06-26 16:01:34 +0000
committerDavid Robillard <d@drobilla.net>2006-06-26 16:01:34 +0000
commitfe13d08874f08b723df53116e5655c3d229a657e (patch)
tree21dcf9d03415864b685c1e23cb553dcf18a3ab07 /gtk2_ardour
parent13532c8500dce5f7a4525bcdfc3b44936fbaa5e6 (diff)
Large nasty commit in the form of a 5000 line patch chock-full of completely
unecessary changes. (Sorry, doing a "sprint" based thing, this is the end of the first one) Achieved MIDI track and bus creation, associated Jack port and diskstream creation, and minimal GUI stuff for creating them. Should be set to start work on actually recording and playing midi to/from disk now. Relevant (significant) changes: - Creation of a Buffer class. Base class is type agnostic so things can point to a buffer but not care what kind it is (otherwise it'd be a template). Derived into AudioBuffer and MidiBuffer, with a type tag because checking type is necessary in parts of the code where dynamic_cast wouldn't be wise. Originally I considered this a hack, but passing around a type proved to be a very good solution to all the other problems (below). There is a 1:1 mapping between jack port data types and ardour Buffer types (with a conversion function), but that's easily removed if it ever becomes necessary. Having the type scoped in the Buffer class is maybe not the best spot for it, but whatever (this is proof of concept kinda stuff right now...) - IO now has a "default" port type (passed to the constructor and stored as a member), used by ensure_io (and similar) to create n ports. IO::register_***_port has a type argument that defaults to the default type if not passed. Rationale: previous IO API is identical, no changes needed to existing code, but path is paved for multiple port types in one IO, which we will need for eg synth plugin inserts, among other things. This is not quite ideal (best would be to only have the two port register functions and have them take a type), but the alternative is a lot of work (namely destroying the 'ensure' functions and everything that uses them) for very little gain. (I am convinced after quite a few tries at the whiteboard that subclassing IO in any way is not a feasible option, look at it's inheritance diagram in Doxygen and you can see why) - AudioEngine::register_audio_input_port is now register_input_port and takes a type argument. Ditto for output. - (Most significant change) AudioDiskstream abstracted into Distream, and sibling MidiDiskstream created. Very much still a work in progress, but Diskstream is there to switch references over to (most already are), which is the important part. It is still unclear what the MIDI diskstream's relation to channels is, but I'm pretty sure they will be single channel only (so SMF Type 0) since noone can come up with a reason otherwise. - MidiTrack creation. Same thing as AudioTrack but with a different default type basically. No big deal here. - Random cleanups and variable renamings etc. because I have OCD and can't help myself. :) Known broken: Loading of sessions containing MIDI tracks. git-svn-id: svn://localhost/ardour2/branches/midi@641 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/SConscript3
-rw-r--r--gtk2_ardour/about.cc1
-rw-r--r--gtk2_ardour/actions.cc1
-rw-r--r--gtk2_ardour/add_route_dialog.cc11
-rw-r--r--gtk2_ardour/add_route_dialog.h1
-rw-r--r--gtk2_ardour/analysis_window.cc10
-rw-r--r--gtk2_ardour/ardour_ui.cc65
-rw-r--r--gtk2_ardour/ardour_ui.h11
-rw-r--r--gtk2_ardour/ardour_ui2.cc1
-rw-r--r--gtk2_ardour/ardour_ui_dependents.cc1
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc3
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc9
-rw-r--r--gtk2_ardour/ardour_ui_mixer.cc1
-rw-r--r--gtk2_ardour/ardour_ui_options.cc1
-rwxr-xr-xgtk2_ardour/arprof2
-rw-r--r--gtk2_ardour/audio_clock.cc1
-rw-r--r--gtk2_ardour/audio_time_axis.cc22
-rw-r--r--gtk2_ardour/automation_gain_line.cc1
-rw-r--r--gtk2_ardour/automation_line.cc1
-rw-r--r--gtk2_ardour/automation_pan_line.cc1
-rw-r--r--gtk2_ardour/automation_time_axis.cc1
-rw-r--r--gtk2_ardour/color_manager.cc1
-rw-r--r--gtk2_ardour/connection_editor.cc1
-rw-r--r--gtk2_ardour/crossfade_edit.cc1
-rw-r--r--gtk2_ardour/crossfade_view.cc1
-rw-r--r--gtk2_ardour/curvetest.cc1
-rw-r--r--gtk2_ardour/editor.cc5
-rw-r--r--gtk2_ardour/editor.h3
-rw-r--r--gtk2_ardour/editor_actions.cc1
-rw-r--r--gtk2_ardour/editor_audio_import.cc1
-rw-r--r--gtk2_ardour/editor_audiotrack.cc1
-rw-r--r--gtk2_ardour/editor_canvas.cc1
-rw-r--r--gtk2_ardour/editor_canvas_events.cc28
-rw-r--r--gtk2_ardour/editor_cursors.cc1
-rw-r--r--gtk2_ardour/editor_edit_groups.cc1
-rw-r--r--gtk2_ardour/editor_export_audio.cc5
-rw-r--r--gtk2_ardour/editor_hscroller.cc1
-rw-r--r--gtk2_ardour/editor_imageframe.cc1
-rw-r--r--gtk2_ardour/editor_keys.cc1
-rw-r--r--gtk2_ardour/editor_markers.cc1
-rw-r--r--gtk2_ardour/editor_mouse.cc3
-rw-r--r--gtk2_ardour/editor_nudge.cc1
-rw-r--r--gtk2_ardour/editor_ops.cc1
-rw-r--r--gtk2_ardour/editor_region_list.cc1
-rw-r--r--gtk2_ardour/editor_route_list.cc1
-rw-r--r--gtk2_ardour/editor_rulers.cc1
-rw-r--r--gtk2_ardour/editor_selection_list.cc1
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc1
-rw-r--r--gtk2_ardour/editor_timefx.cc1
-rw-r--r--gtk2_ardour/export_dialog.cc1
-rw-r--r--gtk2_ardour/export_range_markers_dialog.cc1
-rw-r--r--gtk2_ardour/gain_automation_time_axis.cc1
-rw-r--r--gtk2_ardour/gain_meter.cc1
-rw-r--r--gtk2_ardour/imageframe_socket_handler.cc1
-rw-r--r--gtk2_ardour/imageframe_time_axis.cc1
-rw-r--r--gtk2_ardour/io_selector.cc1
-rw-r--r--gtk2_ardour/keyboard.cc2
-rw-r--r--gtk2_ardour/location_ui.cc1
-rw-r--r--gtk2_ardour/main.cc26
-rw-r--r--gtk2_ardour/marker_time_axis.cc1
-rw-r--r--gtk2_ardour/meter_bridge.cc1
-rw-r--r--gtk2_ardour/meter_bridge_strip.cc1
-rw-r--r--gtk2_ardour/mixer_strip.cc1
-rw-r--r--gtk2_ardour/mixer_ui.cc1
-rw-r--r--gtk2_ardour/option_editor.cc1
-rw-r--r--gtk2_ardour/pan_automation_time_axis.cc1
-rw-r--r--gtk2_ardour/panner2d.cc1
-rw-r--r--gtk2_ardour/panner_ui.cc1
-rw-r--r--gtk2_ardour/playlist_selector.cc3
-rw-r--r--gtk2_ardour/plugin_selector.cc7
-rw-r--r--gtk2_ardour/plugin_ui.cc1
-rw-r--r--gtk2_ardour/plugin_ui.h2
-rw-r--r--gtk2_ardour/redirect_automation_line.cc1
-rw-r--r--gtk2_ardour/redirect_automation_time_axis.cc1
-rw-r--r--gtk2_ardour/redirect_box.cc1
-rw-r--r--gtk2_ardour/region_editor.cc1
-rw-r--r--gtk2_ardour/region_gain_line.cc1
-rw-r--r--gtk2_ardour/region_selection.cc1
-rw-r--r--gtk2_ardour/regionview.cc1
-rw-r--r--gtk2_ardour/route_params_ui.cc1
-rw-r--r--gtk2_ardour/route_redirect_selection.cc1
-rw-r--r--gtk2_ardour/route_ui.cc1
-rw-r--r--gtk2_ardour/selection.cc1
-rw-r--r--gtk2_ardour/send_ui.cc1
-rw-r--r--gtk2_ardour/sfdb_ui.cc1
-rw-r--r--gtk2_ardour/streamview.cc9
-rw-r--r--gtk2_ardour/taperegionview.cc1
-rw-r--r--gtk2_ardour/tempo_dialog.cc1
-rw-r--r--gtk2_ardour/time_axis_view.cc1
-rw-r--r--gtk2_ardour/time_axis_view_item.cc1
-rw-r--r--gtk2_ardour/time_selection.cc1
-rw-r--r--gtk2_ardour/utils.cc1
-rw-r--r--gtk2_ardour/visual_time_axis.cc1
-rw-r--r--gtk2_ardour/vst_pluginui.cc38
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;
}