summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/SConscript1
-rw-r--r--gtk2_ardour/editor.h190
-rw-r--r--gtk2_ardour/editor_timefx.cc131
-rw-r--r--gtk2_ardour/region_selection.h5
-rw-r--r--gtk2_ardour/time_fx_dialog.cc189
-rw-r--r--gtk2_ardour/time_fx_dialog.h69
-rw-r--r--gtk2_ardour/wscript1
7 files changed, 343 insertions, 243 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript
index 0a9d852b2c..61897275e4 100644
--- a/gtk2_ardour/SConscript
+++ b/gtk2_ardour/SConscript
@@ -248,6 +248,7 @@ tempo_lines.cc
theme_manager.cc
time_axis_view.cc
time_axis_view_item.cc
+time_fx_dialog.cc
time_selection.cc
ui_config.cc
utils.cc
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 571b612294..8f3e60d9e1 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -88,30 +88,31 @@ namespace LADSPA {
class Plugin;
}
-class TimeAxisView;
+class AnalysisWindow;
+class AudioRegionView;
+class AudioStreamView;
class AudioTimeAxisView;
+class AutomationLine;
+class AutomationSelection;
class AutomationTimeAxisView;
-class AudioRegionView;
+class BundleManager;
+class ControlPoint;
class CrossfadeView;
-class PluginSelector;
-class PlaylistSelector;
-class Marker;
+class GlobalPortMatrixWindow;
class GroupedButtons;
-class AutomationLine;
+class Marker;
+class MixerStrip;
+class PlaylistSelector;
+class PluginSelector;
+class RhythmFerret;
class Selection;
+class SoundFileOmega;
+class StreamView;
class TempoLines;
+class TimeAxisView;
+class TimeFXDialog;
class TimeSelection;
class TrackSelection;
-class AutomationSelection;
-class MixerStrip;
-class StreamView;
-class AudioStreamView;
-class ControlPoint;
-class SoundFileOmega;
-class RhythmFerret;
-class AnalysisWindow;
-class BundleManager;
-class GlobalPortMatrixWindow;
/* <CMT Additions> */
class ImageFrameView;
@@ -133,7 +134,7 @@ class Editor : public PublicEditor
void connect_to_session (ARDOUR::Session *);
ARDOUR::Session* current_session() const { return session; }
void first_idle ();
- virtual bool have_idled() const { return _have_idled; }
+ virtual bool have_idled () const { return _have_idled; }
nframes64_t leftmost_position() const { return leftmost_frame; }
nframes64_t current_page_frames() const {
@@ -264,6 +265,7 @@ class Editor : public PublicEditor
bool show_measures () const { return _show_measures; }
/* analysis window */
+
void analyze_region_selection();
void analyze_range_selection();
@@ -277,9 +279,9 @@ class Editor : public PublicEditor
void add_toplevel_controls (Gtk::Container&);
Gtk::HBox& get_status_bar_packer() { return status_bar_hpacker; }
- void set_zoom_focus (Editing::ZoomFocus);
+ void set_zoom_focus (Editing::ZoomFocus);
Editing::ZoomFocus get_zoom_focus () const { return zoom_focus; }
- double get_current_zoom () const { return frames_per_unit; }
+ double get_current_zoom () const { return frames_per_unit; }
void temporal_zoom_step (bool coarser);
@@ -337,8 +339,8 @@ class Editor : public PublicEditor
void video_pullup_chosen (ARDOUR::Session::PullupFormat pullup);
void subframes_per_frame_chosen (uint32_t);
- void update_smpte_mode();
- void update_video_pullup();
+ void update_smpte_mode ();
+ void update_video_pullup ();
void update_subframes_per_frame ();
/* fades/xfades */
@@ -628,10 +630,10 @@ class Editor : public PublicEditor
bool verbose_cursor_on; // so far unused
- Gtk::EventBox time_canvas_event_box;
- Gtk::EventBox track_canvas_event_box;
- Gtk::EventBox time_button_event_box;
- Gtk::EventBox ruler_label_event_box;
+ Gtk::EventBox time_canvas_event_box;
+ Gtk::EventBox track_canvas_event_box;
+ Gtk::EventBox time_button_event_box;
+ Gtk::EventBox ruler_label_event_box;
ArdourCanvas::Group *minsec_group;
ArdourCanvas::Pixbuf *logo_item;
@@ -696,14 +698,14 @@ class Editor : public PublicEditor
Glib::RefPtr<Gtk::ToggleAction> ruler_range_action;
Glib::RefPtr<Gtk::ToggleAction> ruler_loop_punch_action;
Glib::RefPtr<Gtk::ToggleAction> ruler_cd_marker_action;
- bool no_ruler_shown_update;
+ bool no_ruler_shown_update;
gint ruler_button_press (GdkEventButton*);
gint ruler_button_release (GdkEventButton*);
gint ruler_mouse_motion (GdkEventMotion*);
bool ruler_scroll (GdkEventScroll* event);
- gint ruler_pressed_button;
+ gint ruler_pressed_button;
Gtk::Widget * ruler_grabbed_widget;
void initialize_rulers ();
@@ -813,7 +815,6 @@ class Editor : public PublicEditor
Gtk::Label range_mark_label;
Gtk::Label transport_mark_label;
Gtk::Label cd_mark_label;
-
Gtk::VBox time_button_vbox;
Gtk::HBox time_button_hbox;
@@ -833,11 +834,9 @@ class Editor : public PublicEditor
void set_y_axis (double position);
};
- friend struct Cursor; /* it needs access to several private
- fields. XXX fix me.
- */
+ friend struct Cursor; /* FIXME: needs access to several private fields */
- Cursor* playhead_cursor;
+ Cursor* playhead_cursor;
ArdourCanvas::Group* cursor_group;
void cursor_to_region_boundary (Cursor*, int32_t dir);
@@ -2016,48 +2015,54 @@ public:
/* Drag-n-Drop */
- int convert_drop_to_paths (std::vector<Glib::ustring>& paths,
- const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
- void track_canvas_drag_data_received (const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
+ int convert_drop_to_paths (
+ std::vector<Glib::ustring>& paths,
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
+ void track_canvas_drag_data_received (
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
- void region_list_display_drag_data_received (const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
- void drop_paths (const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
- void drop_regions (const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
- void drop_routes (const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
+ void region_list_display_drag_data_received (
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
+ void drop_paths (
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
+ void drop_regions (
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
+ void drop_routes (
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
/* audio export */
@@ -2128,45 +2133,6 @@ public:
void start_time_fx (ArdourCanvas::Item*, GdkEvent*);
void end_time_fx (ArdourCanvas::Item*, GdkEvent*);
- struct TimeFXDialog : public ArdourDialog {
- ARDOUR::TimeFXRequest request;
- Editor& editor;
- bool pitching;
- Gtk::Adjustment pitch_octave_adjustment;
- Gtk::Adjustment pitch_semitone_adjustment;
- Gtk::Adjustment pitch_cent_adjustment;
- Gtk::SpinButton pitch_octave_spinner;
- Gtk::SpinButton pitch_semitone_spinner;
- Gtk::SpinButton pitch_cent_spinner;
- RegionSelection regions;
- Gtk::ProgressBar progress_bar;
-
- /* SoundTouch */
- Gtk::ToggleButton quick_button;
- Gtk::ToggleButton antialias_button;
- Gtk::HBox upper_button_box;
-
- /* RubberBand */
- Gtk::ComboBoxText stretch_opts_selector;
- Gtk::Label stretch_opts_label;
- Gtk::ToggleButton precise_button;
- Gtk::ToggleButton preserve_formants_button;
- Gtk::HBox opts_box;
-
- Gtk::Button* cancel_button;
- Gtk::Button* action_button;
- Gtk::VBox packer;
- int status;
-
- TimeFXDialog (Editor& e, bool for_pitch);
-
- gint update_progress ();
- sigc::connection first_cancel;
- sigc::connection first_delete;
- void cancel_in_progress ();
- gint delete_in_progress (GdkEventAny*);
- };
-
/* "whats mine is yours" */
friend class TimeFXDialog;
diff --git a/gtk2_ardour/editor_timefx.cc b/gtk2_ardour/editor_timefx.cc
index 7552dfe8f7..79266c2285 100644
--- a/gtk2_ardour/editor_timefx.cc
+++ b/gtk2_ardour/editor_timefx.cc
@@ -30,10 +30,11 @@
#include <gtkmm2ext/window_title.h>
#include <gtkmm2ext/utils.h>
-#include "editor.h"
-#include "audio_time_axis.h"
#include "audio_region_view.h"
+#include "audio_time_axis.h"
+#include "editor.h"
#include "region_selection.h"
+#include "time_fx_dialog.h"
#include "ardour/session.h"
#include "ardour/region.h"
@@ -59,132 +60,6 @@ using namespace sigc;
using namespace Gtk;
using namespace Gtkmm2ext;
-Editor::TimeFXDialog::TimeFXDialog (Editor& e, bool pitch)
- : ArdourDialog (X_("time fx dialog")),
- editor (e),
- pitching (pitch),
- pitch_octave_adjustment (0.0, -4.0, 4.0, 1, 2.0),
- pitch_semitone_adjustment (0.0, -12.0, 12.0, 1.0, 4.0),
- pitch_cent_adjustment (0.0, -499.0, 500.0, 5.0, 15.0),
- pitch_octave_spinner (pitch_octave_adjustment),
- pitch_semitone_spinner (pitch_semitone_adjustment),
- pitch_cent_spinner (pitch_cent_adjustment),
- quick_button (_("Quick but Ugly")),
- antialias_button (_("Skip Anti-aliasing")),
- stretch_opts_label (_("Contents:")),
- precise_button (_("Strict Linear")),
- preserve_formants_button(_("Preserve Formants"))
-{
- set_modal (true);
- set_position (Gtk::WIN_POS_MOUSE);
- set_name (N_("TimeFXDialog"));
-
- WindowTitle title(Glib::get_application_name());
- if (pitching) {
- title += _("Pitch Shift");
- } else {
- title += _("Time Stretch");
- }
- set_title(title.get_string());
-
- cancel_button = add_button (_("Cancel"), Gtk::RESPONSE_CANCEL);
-
- get_vbox()->set_spacing (5);
- get_vbox()->set_border_width (12);
-
- if (pitching) {
-
- upper_button_box.set_spacing (5);
- upper_button_box.set_border_width (5);
-
- Gtk::Label* l;
-
- l = manage (new Label (_("Octaves")));
- upper_button_box.pack_start (*l, false, false);
- upper_button_box.pack_start (pitch_octave_spinner, false, false);
-
- l = manage (new Label (_("Semitones (12TET)")));
- upper_button_box.pack_start (*l, false, false);
- upper_button_box.pack_start (pitch_semitone_spinner, false, false);
-
- l = manage (new Label (_("Cents")));
- upper_button_box.pack_start (*l, false, false);
- upper_button_box.pack_start (pitch_cent_spinner, false, false);
-
- pitch_cent_spinner.set_digits (1);
-
- upper_button_box.pack_start (preserve_formants_button, false, false);
-
-
- add_button (_("Shift"), Gtk::RESPONSE_ACCEPT);
-
- get_vbox()->pack_start (upper_button_box, false, false);
-
- } else {
-
-#ifdef USE_RUBBERBAND
- opts_box.set_spacing (5);
- opts_box.set_border_width (5);
- vector<string> strings;
-
- set_popdown_strings (stretch_opts_selector, editor.rb_opt_strings);
- /* set default */
- stretch_opts_selector.set_active_text (editor.rb_opt_strings[4]);
-
- opts_box.pack_start (precise_button, false, false);
- opts_box.pack_start (stretch_opts_label, false, false);
- opts_box.pack_start (stretch_opts_selector, false, false);
-
- get_vbox()->pack_start (opts_box, false, false);
-
-#else
- upper_button_box.set_homogeneous (true);
- upper_button_box.set_spacing (5);
- upper_button_box.set_border_width (5);
-
- upper_button_box.pack_start (quick_button, true, true);
- upper_button_box.pack_start (antialias_button, true, true);
-
- quick_button.set_name (N_("TimeFXButton"));
- antialias_button.set_name (N_("TimeFXButton"));
-
- get_vbox()->pack_start (upper_button_box, false, false);
-
-#endif
- add_button (_("Stretch/Shrink"), Gtk::RESPONSE_ACCEPT);
- }
-
- get_vbox()->pack_start (progress_bar);
-
- progress_bar.set_name (N_("TimeFXProgress"));
-
- show_all_children ();
-}
-
-gint
-Editor::TimeFXDialog::update_progress ()
-{
- progress_bar.set_fraction (request.progress);
- return !request.done;
-}
-
-void
-Editor::TimeFXDialog::cancel_in_progress ()
-{
- status = -2;
- request.cancel = true;
- first_cancel.disconnect();
-}
-
-gint
-Editor::TimeFXDialog::delete_in_progress (GdkEventAny* ev)
-{
- status = -2;
- request.cancel = true;
- first_delete.disconnect();
- return TRUE;
-}
-
int
Editor::time_stretch (RegionSelection& regions, float fraction)
{
diff --git a/gtk2_ardour/region_selection.h b/gtk2_ardour/region_selection.h
index 98d2a4eaab..ee0cdab008 100644
--- a/gtk2_ardour/region_selection.h
+++ b/gtk2_ardour/region_selection.h
@@ -28,11 +28,10 @@ using std::list;
using std::set;
class RegionView;
+class TimeAxisView;
-/**
- * Class to represent list of selected regions.
+/** Class to represent list of selected regions.
*/
-
class RegionSelection : public std::list<RegionView*>, public sigc::trackable
{
public:
diff --git a/gtk2_ardour/time_fx_dialog.cc b/gtk2_ardour/time_fx_dialog.cc
new file mode 100644
index 0000000000..b20c01c4e1
--- /dev/null
+++ b/gtk2_ardour/time_fx_dialog.cc
@@ -0,0 +1,189 @@
+/*
+ Copyright (C) 2000-2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "time_fx_dialog.h"
+
+#include <iostream>
+#include <cstdlib>
+#include <cmath>
+
+#include <string>
+
+#include "pbd/error.h"
+#include "pbd/pthread_utils.h"
+#include "pbd/memento_command.h"
+
+#include <gtkmm2ext/window_title.h>
+#include <gtkmm2ext/utils.h>
+
+#include "editor.h"
+#include "audio_time_axis.h"
+#include "audio_region_view.h"
+#include "region_selection.h"
+
+#include "ardour/session.h"
+#include "ardour/region.h"
+#include "ardour/audioplaylist.h"
+#include "ardour/audio_track.h"
+#include "ardour/audioregion.h"
+#include "ardour/audio_diskstream.h"
+#include "ardour/stretch.h"
+#include "ardour/midi_stretch.h"
+#include "ardour/pitch.h"
+
+#ifdef USE_RUBBERBAND
+#include "rubberband/RubberBandStretcher.h"
+using namespace RubberBand;
+#endif
+
+#include "i18n.h"
+
+using namespace std;
+using namespace ARDOUR;
+using namespace PBD;
+using namespace sigc;
+using namespace Gtk;
+using namespace Gtkmm2ext;
+
+TimeFXDialog::TimeFXDialog (Editor& e, bool pitch)
+ : ArdourDialog (X_("time fx dialog"))
+ , editor (e)
+ , pitching (pitch)
+ , pitch_octave_adjustment (0.0, -4.0, 4.0, 1, 2.0)
+ , pitch_semitone_adjustment (0.0, -12.0, 12.0, 1.0, 4.0)
+ , pitch_cent_adjustment (0.0, -499.0, 500.0, 5.0, 15.0)
+ , pitch_octave_spinner (pitch_octave_adjustment)
+ , pitch_semitone_spinner (pitch_semitone_adjustment)
+ , pitch_cent_spinner (pitch_cent_adjustment)
+ , quick_button (_("Quick but Ugly"))
+ , antialias_button (_("Skip Anti-aliasing"))
+ , stretch_opts_label (_("Contents:"))
+ , precise_button (_("Strict Linear"))
+ , preserve_formants_button(_("Preserve Formants"))
+{
+ set_modal (true);
+ set_position (Gtk::WIN_POS_MOUSE);
+ set_name (N_("TimeFXDialog"));
+
+ WindowTitle title(Glib::get_application_name());
+ if (pitching) {
+ title += _("Pitch Shift");
+ } else {
+ title += _("Time Stretch");
+ }
+ set_title(title.get_string());
+
+ cancel_button = add_button (_("Cancel"), Gtk::RESPONSE_CANCEL);
+
+ get_vbox()->set_spacing (5);
+ get_vbox()->set_border_width (12);
+
+ if (pitching) {
+
+ upper_button_box.set_spacing (5);
+ upper_button_box.set_border_width (5);
+
+ Gtk::Label* l;
+
+ l = manage (new Label (_("Octaves")));
+ upper_button_box.pack_start (*l, false, false);
+ upper_button_box.pack_start (pitch_octave_spinner, false, false);
+
+ l = manage (new Label (_("Semitones (12TET)")));
+ upper_button_box.pack_start (*l, false, false);
+ upper_button_box.pack_start (pitch_semitone_spinner, false, false);
+
+ l = manage (new Label (_("Cents")));
+ upper_button_box.pack_start (*l, false, false);
+ upper_button_box.pack_start (pitch_cent_spinner, false, false);
+
+ pitch_cent_spinner.set_digits (1);
+
+ upper_button_box.pack_start (preserve_formants_button, false, false);
+
+
+ add_button (_("Shift"), Gtk::RESPONSE_ACCEPT);
+
+ get_vbox()->pack_start (upper_button_box, false, false);
+
+ } else {
+
+#ifdef USE_RUBBERBAND
+ opts_box.set_spacing (5);
+ opts_box.set_border_width (5);
+ vector<string> strings;
+
+ set_popdown_strings (stretch_opts_selector, editor.rb_opt_strings);
+ /* set default */
+ stretch_opts_selector.set_active_text (editor.rb_opt_strings[4]);
+
+ opts_box.pack_start (precise_button, false, false);
+ opts_box.pack_start (stretch_opts_label, false, false);
+ opts_box.pack_start (stretch_opts_selector, false, false);
+
+ get_vbox()->pack_start (opts_box, false, false);
+
+#else
+ upper_button_box.set_homogeneous (true);
+ upper_button_box.set_spacing (5);
+ upper_button_box.set_border_width (5);
+
+ upper_button_box.pack_start (quick_button, true, true);
+ upper_button_box.pack_start (antialias_button, true, true);
+
+ quick_button.set_name (N_("TimeFXButton"));
+ antialias_button.set_name (N_("TimeFXButton"));
+
+ get_vbox()->pack_start (upper_button_box, false, false);
+
+#endif
+ add_button (_("Stretch/Shrink"), Gtk::RESPONSE_ACCEPT);
+ }
+
+ get_vbox()->pack_start (progress_bar);
+
+ progress_bar.set_name (N_("TimeFXProgress"));
+
+ show_all_children ();
+}
+
+gint
+TimeFXDialog::update_progress ()
+{
+ progress_bar.set_fraction (request.progress);
+ return !request.done;
+}
+
+void
+TimeFXDialog::cancel_in_progress ()
+{
+ status = -2;
+ request.cancel = true;
+ first_cancel.disconnect();
+}
+
+gint
+TimeFXDialog::delete_in_progress (GdkEventAny* ev)
+{
+ status = -2;
+ request.cancel = true;
+ first_delete.disconnect();
+ return TRUE;
+}
+
diff --git a/gtk2_ardour/time_fx_dialog.h b/gtk2_ardour/time_fx_dialog.h
new file mode 100644
index 0000000000..d5ec54c484
--- /dev/null
+++ b/gtk2_ardour/time_fx_dialog.h
@@ -0,0 +1,69 @@
+/*
+ Copyright (C) 2000-2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#ifndef __ardour_time_fx_dialog_h__
+#define __ardour_time_fx_dialog_h__
+
+#include <gtkmm.h>
+
+#include "ardour_dialog.h"
+#include "region_selection.h"
+
+class Editor;
+
+struct TimeFXDialog : public ArdourDialog {
+ ARDOUR::TimeFXRequest request;
+ Editor& editor;
+ bool pitching;
+ Gtk::Adjustment pitch_octave_adjustment;
+ Gtk::Adjustment pitch_semitone_adjustment;
+ Gtk::Adjustment pitch_cent_adjustment;
+ Gtk::SpinButton pitch_octave_spinner;
+ Gtk::SpinButton pitch_semitone_spinner;
+ Gtk::SpinButton pitch_cent_spinner;
+ RegionSelection regions;
+ Gtk::ProgressBar progress_bar;
+
+ /* SoundTouch */
+ Gtk::ToggleButton quick_button;
+ Gtk::ToggleButton antialias_button;
+ Gtk::HBox upper_button_box;
+
+ /* RubberBand */
+ Gtk::ComboBoxText stretch_opts_selector;
+ Gtk::Label stretch_opts_label;
+ Gtk::ToggleButton precise_button;
+ Gtk::ToggleButton preserve_formants_button;
+ Gtk::HBox opts_box;
+
+ Gtk::Button* cancel_button;
+ Gtk::Button* action_button;
+ Gtk::VBox packer;
+ int status;
+
+ TimeFXDialog (Editor& e, bool for_pitch);
+
+ gint update_progress ();
+ sigc::connection first_cancel;
+ sigc::connection first_delete;
+ void cancel_in_progress ();
+ gint delete_in_progress (GdkEventAny*);
+};
+
+#endif /* __ardour_time_fx_dialog_h__ */
diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript
index eca7aa3576..213975c0a6 100644
--- a/gtk2_ardour/wscript
+++ b/gtk2_ardour/wscript
@@ -221,6 +221,7 @@ def build(bld):
theme_manager.cc
time_axis_view.cc
time_axis_view_item.cc
+ time_fx_dialog.cc
time_selection.cc
ui_config.cc
utils.cc