diff --git a/gtk2_ardour/audio_clip_editor.cc b/gtk2_ardour/audio_clip_editor.cc index 061a314ca5..10bcf9c56f 100644 --- a/gtk2_ardour/audio_clip_editor.cc +++ b/gtk2_ardour/audio_clip_editor.cc @@ -17,12 +17,12 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include "pbd/compose.h" +#include +#include "gtkmm2ext/actions.h" #include "gtkmm2ext/gui_thread.h" #include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" #include "canvas/canvas.h" #include "canvas/debug.h" @@ -56,27 +56,25 @@ using namespace ARDOUR; using namespace ArdourCanvas; using namespace ArdourWaveView; using namespace ArdourWidgets; -using std::min; using std::max; - +using std::min; Glib::RefPtr ClipEditorBox::clip_editor_actions; void ClipEditorBox::init () { - Bindings* bindings = Bindings::get_bindings (X_("Clip Editing")); + Bindings* bindings = Bindings::get_bindings (X_ ("Clip Editing")); register_clip_editor_actions (bindings); - //_track_canvas_viewport->canvas()->set_data ("ardour-bindings", - //midi_bindings); + //_track_canvas_viewport->canvas()->set_data ("ardour-bindings", midi_bindings); } void ClipEditorBox::register_clip_editor_actions (Bindings* clip_editor_bindings) { - clip_editor_actions = ActionManager::create_action_group (clip_editor_bindings, X_("ClipEditing")); + clip_editor_actions = ActionManager::create_action_group (clip_editor_bindings, X_ ("ClipEditing")); /* two versions to allow same action for Delete and Backspace */ @@ -84,45 +82,20 @@ ClipEditorBox::register_clip_editor_actions (Bindings* clip_editor_bindings) // ActionManager::register_action (clip_editor_actions, X_("zoom-in"), _("Zoom In"), sigc::mem_fun (*this, &ClipEditorBox::zoom_out)); } -/* ------------ */ - -class ClipBBTMetric : public ArdourCanvas::Ruler::Metric -{ - public: - ClipBBTMetric () { units_per_pixel = 1; } - - void get_marks (std::vector& marks, int64_t lower, int64_t upper, int maxchars) const { - ArdourCanvas::Ruler::Mark mark; - - std::cerr << "get marks between " << lower << " .. " << upper << std::endl; - - for (int64_t n = lower; n < upper; n += 4000) { - mark.style = ArdourCanvas::Ruler::Mark::Major; - mark.label = string_compose ("%1", n); - mark.position = n / 100; - marks.push_back (mark); - std::cerr << "mark at " << mark.label << " @ " << mark.position << std::endl; - } - } - - private: -}; - - AudioClipEditor::AudioClipEditor () : _spp (0) , scroll_fraction (0) , current_line_drag (0) , current_scroll_drag (0) { - const double scale = UIConfiguration::instance().get_ui_scale(); + const double scale = UIConfiguration::instance ().get_ui_scale (); - frame = new Rectangle (root()); + frame = new Rectangle (root ()); frame->name = "audio clip editor frame"; frame->set_fill (false); frame->Event.connect (sigc::mem_fun (*this, &AudioClipEditor::event_handler)); - scroll_bar_trough = new Rectangle (root()); + scroll_bar_trough = new Rectangle (root ()); scroll_bar_handle = new Rectangle (scroll_bar_trough); scroll_bar_handle->set_outline (false); scroll_bar_handle->set_corner_radius (5.); @@ -133,10 +106,10 @@ AudioClipEditor::AudioClipEditor () clip_metric = new ClipBBTMetric (); - ruler_container = new ArdourCanvas::Container (waves_container); - ruler = new ArdourCanvas::Ruler (ruler_container, *clip_metric); - ruler->name = "Clip Editor"; - ruler->set_font_description (UIConfiguration::instance().get_SmallerFont()); + ruler_container = new ArdourCanvas::Container (waves_container); + ruler = new ArdourCanvas::Ruler (ruler_container, *clip_metric); + ruler->name = "Clip Editor"; + ruler->set_font_description (UIConfiguration::instance ().get_SmallerFont ()); line_container = new ArdourCanvas::Container (waves_container); @@ -168,35 +141,34 @@ AudioClipEditor::~AudioClipEditor () bool AudioClipEditor::line_event_handler (GdkEvent* ev, ArdourCanvas::Line* l) { - std::cerr << "event type " << Gtkmm2ext::event_type_string (ev->type) << " on line " << std::endl; + std::cerr << "event type " << Gtkmm2ext::event_type_string (ev->type) << " on line " << std::endl; switch (ev->type) { - case GDK_BUTTON_PRESS: - current_line_drag = new LineDrag (*this, *l); - return true; - - case GDK_BUTTON_RELEASE: - if (current_line_drag) { - current_line_drag->end (&ev->button); - delete current_line_drag; - current_line_drag = 0; + case GDK_BUTTON_PRESS: + current_line_drag = new LineDrag (*this, *l); return true; - } - break; - case GDK_MOTION_NOTIFY: - if (current_line_drag) { - current_line_drag->motion (&ev->motion); - return true; - } - break; + case GDK_BUTTON_RELEASE: + if (current_line_drag) { + current_line_drag->end (&ev->button); + delete current_line_drag; + current_line_drag = 0; + return true; + } + break; + case GDK_MOTION_NOTIFY: + if (current_line_drag) { + current_line_drag->motion (&ev->motion); + return true; + } + break; - case GDK_KEY_PRESS: - return key_press (&ev->key); + case GDK_KEY_PRESS: + return key_press (&ev->key); - default: - break; + default: + break; } return false; @@ -206,33 +178,32 @@ bool AudioClipEditor::scroll_event_handler (GdkEvent* ev) { switch (ev->type) { - case GDK_BUTTON_PRESS: - current_scroll_drag = new ScrollDrag (*this); - current_scroll_drag->begin (&ev->button); - return true; - - case GDK_BUTTON_RELEASE: - if (current_scroll_drag) { - current_scroll_drag->end (&ev->button); - delete current_scroll_drag; - current_scroll_drag = 0; + case GDK_BUTTON_PRESS: + current_scroll_drag = new ScrollDrag (*this); + current_scroll_drag->begin (&ev->button); return true; - } - break; - case GDK_MOTION_NOTIFY: - if (current_scroll_drag) { - current_scroll_drag->motion (&ev->motion); - return true; - } - break; + case GDK_BUTTON_RELEASE: + if (current_scroll_drag) { + current_scroll_drag->end (&ev->button); + delete current_scroll_drag; + current_scroll_drag = 0; + return true; + } + break; + case GDK_MOTION_NOTIFY: + if (current_scroll_drag) { + current_scroll_drag->motion (&ev->motion); + return true; + } + break; - case GDK_KEY_PRESS: - return key_press (&ev->key); + case GDK_KEY_PRESS: + return key_press (&ev->key); - default: - break; + default: + break; } return false; @@ -251,11 +222,11 @@ AudioClipEditor::position_lines () return; } - start_line->set_x0 (sample_to_pixel (audio_region->start().samples())); - start_line->set_x1 (sample_to_pixel (audio_region->start().samples())); + start_line->set_x0 (sample_to_pixel (audio_region->start ().samples ())); + start_line->set_x1 (sample_to_pixel (audio_region->start ().samples ())); - end_line->set_x0 (sample_to_pixel (audio_region->end().samples())); - end_line->set_x1 (sample_to_pixel (audio_region->end().samples())); + end_line->set_x0 (sample_to_pixel (audio_region->end ().samples ())); + end_line->set_x1 (sample_to_pixel (audio_region->end ().samples ())); } double @@ -270,12 +241,11 @@ AudioClipEditor::pixel_to_sample (double p) return round (p * _spp); } - AudioClipEditor::LineDrag::LineDrag (AudioClipEditor& ed, ArdourCanvas::Line& l) - : editor (ed) - , line (l) + : editor (ed) + , line (l) { - line.grab(); + line.grab (); } void @@ -286,7 +256,7 @@ AudioClipEditor::LineDrag::begin (GdkEventButton* ev) void AudioClipEditor::LineDrag::end (GdkEventButton* ev) { - line.ungrab(); + line.ungrab (); } void @@ -299,20 +269,17 @@ AudioClipEditor::LineDrag::motion (GdkEventMotion* ev) void AudioClipEditor::set_colors () { - set_background_color (UIConfiguration::instance().color (X_("theme:bg"))); + set_background_color (UIConfiguration::instance ().color (X_ ("theme:bg"))); - frame->set_outline_color (UIConfiguration::instance().color (X_("neutral:midground"))); + frame->set_outline_color (UIConfiguration::instance ().color (X_ ("neutral:midground"))); - ruler->set_fill_color (UIConfiguration::instance().color (X_("theme:bg1"))); - ruler->set_outline_color (UIConfiguration::instance().color (X_("theme:contrasting less"))); + start_line->set_outline_color (UIConfiguration::instance ().color (X_ ("theme:contrasting clock"))); + end_line->set_outline_color (UIConfiguration::instance ().color (X_ ("theme:contrasting alt"))); + loop_line->set_outline_color (UIConfiguration::instance ().color (X_ ("theme:contrasting selection"))); - start_line->set_outline_color (UIConfiguration::instance().color (X_("theme:contrasting clock"))); - end_line->set_outline_color (UIConfiguration::instance().color (X_("theme:contrasting alt"))); - loop_line->set_outline_color (UIConfiguration::instance().color (X_("theme:contrasting selection"))); - - scroll_bar_trough->set_fill_color (UIConfiguration::instance().color (X_("theme:bg"))); - scroll_bar_trough->set_outline_color (UIConfiguration::instance().color (X_("theme:contrasting less"))); - scroll_bar_handle->set_fill_color (UIConfiguration::instance().color (X_("theme:contrasting clock"))); + scroll_bar_trough->set_fill_color (UIConfiguration::instance ().color (X_ ("theme:bg"))); + scroll_bar_trough->set_outline_color (UIConfiguration::instance ().color (X_ ("theme:contrasting less"))); + scroll_bar_handle->set_fill_color (UIConfiguration::instance ().color (X_ ("theme:contrasting clock"))); set_waveform_colors (); } @@ -324,20 +291,20 @@ AudioClipEditor::scroll_changed () return; } - const double right_edge = scroll_bar_handle->get().x0; - const double avail_width = scroll_bar_trough->get().width() - scroll_bar_handle->get().width(); - scroll_fraction = right_edge / avail_width; - scroll_fraction = std::min (1., std::max (0., scroll_fraction)); - const samplepos_t s = llrintf (audio_region->source (0)->length().samples () * scroll_fraction); + const double right_edge = scroll_bar_handle->get ().x0; + const double avail_width = scroll_bar_trough->get ().width () - scroll_bar_handle->get ().width (); + scroll_fraction = right_edge / avail_width; + scroll_fraction = std::min (1., std::max (0., scroll_fraction)); + const samplepos_t s = llrintf (audio_region->source (0)->length ().samples () * scroll_fraction); scroll_to (sample_to_pixel (s), 0); queue_draw (); } AudioClipEditor::ScrollDrag::ScrollDrag (AudioClipEditor& e) - : editor (e) + : editor (e) { - e.scroll_bar_handle->grab(); + e.scroll_bar_handle->grab (); } void @@ -357,10 +324,10 @@ void AudioClipEditor::ScrollDrag::motion (GdkEventMotion* ev) { ArdourCanvas::Rectangle& r (*editor.scroll_bar_handle); - const double xdelta = ev->x - last_x; - ArdourCanvas::Rect n (r.get()); - const double handle_width = n.width(); - const double avail_width = editor.scroll_bar_trough->get().width() - handle_width; + const double xdelta = ev->x - last_x; + ArdourCanvas::Rect n (r.get ()); + const double handle_width = n.width (); + const double avail_width = editor.scroll_bar_trough->get ().width () - handle_width; n.x0 = std::max (0., std::min (avail_width, n.x0 + xdelta)); n.x1 = n.x0 + handle_width; @@ -374,7 +341,7 @@ AudioClipEditor::ScrollDrag::motion (GdkEventMotion* ev) void AudioClipEditor::drop_waves () { - for (auto & wave : waves) { + for (auto& wave : waves) { delete wave; } @@ -388,13 +355,12 @@ AudioClipEditor::set_region (boost::shared_ptr r) audio_region = r; - uint32_t n_chans = r->n_channels (); + uint32_t n_chans = r->n_channels (); samplecnt_t len; - len = r->source (0)->length().samples (); + len = r->source (0)->length ().samples (); for (uint32_t n = 0; n < n_chans; ++n) { - boost::shared_ptr wr = RegionFactory::get_whole_region_for_source (r->source (n)); if (!wr) { continue; @@ -427,24 +393,21 @@ AudioClipEditor::on_size_allocate (Gtk::Allocation& alloc) { GtkCanvas::on_size_allocate (alloc); - ArdourCanvas::Rect r (1, 1, alloc.get_width() - 2, alloc.get_height() - 2); + ArdourCanvas::Rect r (1, 1, alloc.get_width () - 2, alloc.get_height () - 2); frame->set (r); - const double ruler_height = 25.; - ruler->set (Rect (2, 2, alloc.get_width() - 4, ruler_height)); - - const double scroll_bar_height = 10.; - const double scroll_bar_width = alloc.get_width() - 2; + const double scroll_bar_height = 10.; + const double scroll_bar_width = alloc.get_width () - 2; const double scroll_bar_handle_left = scroll_bar_width * scroll_fraction; - scroll_bar_trough->set (Rect (1, alloc.get_height() - scroll_bar_height, scroll_bar_width, alloc.get_height())); - scroll_bar_handle->set (Rect (scroll_bar_handle_left, scroll_bar_trough->get().y0 + 1, scroll_bar_handle_left + 30., scroll_bar_trough->get().y1 - 1)); + scroll_bar_trough->set (Rect (1, alloc.get_height () - scroll_bar_height, scroll_bar_width, alloc.get_height ())); + scroll_bar_handle->set (Rect (scroll_bar_handle_left, scroll_bar_trough->get ().y0 + 1, scroll_bar_handle_left + 30., scroll_bar_trough->get ().y1 - 1)); position_lines (); - start_line->set_y1 (frame->get().height() - 2. - scroll_bar_height); - end_line->set_y1 (frame->get().height() - 2. - scroll_bar_height); - loop_line->set_y1 (frame->get().height() - 2. - scroll_bar_height); + start_line->set_y1 (frame->get ().height () - 2. - scroll_bar_height); + end_line->set_y1 (frame->get ().height () - 2. - scroll_bar_height); + loop_line->set_y1 (frame->get ().height () - 2. - scroll_bar_height); set_wave_heights (); } @@ -458,7 +421,7 @@ AudioClipEditor::set_spp (double samples_per_pixel) position_lines (); - for (auto & wave : waves) { + for (auto& wave : waves) { wave->set_samples_per_pixel (_spp); } } @@ -466,8 +429,8 @@ AudioClipEditor::set_spp (double samples_per_pixel) void AudioClipEditor::set_spp_from_length (samplecnt_t len) { - double available_width = frame->get().width(); - double s = floor (len / available_width); + double available_width = frame->get ().width (); + double s = floor (len / available_width); set_spp (s); } @@ -475,17 +438,17 @@ AudioClipEditor::set_spp_from_length (samplecnt_t len) void AudioClipEditor::set_wave_heights () { - if (waves.empty()) { + if (waves.empty ()) { return; } - uint32_t n = 0; - const Distance w = frame->get().height() - scroll_bar_trough->get().height() - 2. - ruler->get().height(); - Distance ht = w / waves.size(); + uint32_t n = 0; + const Distance w = frame->get ().height () - scroll_bar_trough->get ().height () - 2.; + Distance ht = w / waves.size (); - for (auto & wave : waves) { + for (auto& wave : waves) { wave->set_height (ht); - wave->set_y_position (ruler->get().height() + (n * ht)); + wave->set_y_position (ruler->get ().height () + (n * ht)); ++n; } } @@ -493,44 +456,39 @@ AudioClipEditor::set_wave_heights () void AudioClipEditor::set_waveform_colors () { - Gtkmm2ext::Color clip = UIConfiguration::instance().color ("clipped waveform"); - Gtkmm2ext::Color zero = UIConfiguration::instance().color ("zero line"); - Gtkmm2ext::Color fill = UIConfiguration::instance().color ("waveform fill"); - Gtkmm2ext::Color outline = UIConfiguration::instance().color ("waveform outline"); + Gtkmm2ext::Color clip = UIConfiguration::instance ().color ("clipped waveform"); + Gtkmm2ext::Color zero = UIConfiguration::instance ().color ("zero line"); + Gtkmm2ext::Color fill = UIConfiguration::instance ().color ("waveform fill"); + Gtkmm2ext::Color outline = UIConfiguration::instance ().color ("waveform outline"); - for (auto & wave : waves) { + for (auto& wave : waves) { wave->set_fill_color (fill); wave->set_outline_color (outline); wave->set_clip_color (clip); wave->set_zero_color (zero); } } + bool AudioClipEditor::event_handler (GdkEvent* ev) { switch (ev->type) { - case GDK_BUTTON_PRESS: -// PublicEditor::instance().get_selection().set (this); - break; - case GDK_ENTER_NOTIFY: -// redraw (); - break; - case GDK_LEAVE_NOTIFY: -// redraw (); - break; - default: - break; + case GDK_BUTTON_PRESS: + break; + case GDK_ENTER_NOTIFY: + break; + case GDK_LEAVE_NOTIFY: + break; + default: + break; } - return false; } -/* ====================================================== */ - AudioClipEditorBox::AudioClipEditorBox () { - _header_label.set_text(_("AUDIO Region Trimmer:")); - _header_label.set_alignment(0.0, 0.5); + _header_label.set_text (_ ("AUDIO Region Trimmer:")); + _header_label.set_alignment (0.0, 0.5); zoom_in_button.set_icon (ArdourIcon::ZoomIn); zoom_out_button.set_icon (ArdourIcon::ZoomOut); @@ -542,13 +500,13 @@ AudioClipEditorBox::AudioClipEditorBox () header_box.pack_start (zoom_in_button, false, false); header_box.pack_start (zoom_out_button, false, false); - pack_start(header_box, false, false, 6); + pack_start (header_box, false, false, 6); editor = manage (new AudioClipEditor); - editor->set_size_request(600,120); + editor->set_size_request (600, 120); - pack_start(*editor, true, true); - editor->show(); + pack_start (*editor, true, true); + editor->show (); } AudioClipEditorBox::~AudioClipEditorBox () @@ -559,13 +517,13 @@ AudioClipEditorBox::~AudioClipEditorBox () void AudioClipEditorBox::zoom_in_click () { - editor->set_spp (editor->spp() / 2.); + editor->set_spp (editor->spp () / 2.); } void AudioClipEditorBox::zoom_out_click () { - editor->set_spp (editor->spp() * 2.); + editor->set_spp (editor->spp () * 2.); } void @@ -577,31 +535,20 @@ AudioClipEditorBox::set_region (boost::shared_ptr r) return; } - set_session(&r->session()); + set_session (&r->session ()); - state_connection.disconnect(); + state_connection.disconnect (); _region = r; editor->set_region (ar); PBD::PropertyChange interesting_stuff; - region_changed(interesting_stuff); + region_changed (interesting_stuff); - _region->PropertyChanged.connect (state_connection, invalidator (*this), boost::bind (&AudioClipEditorBox::region_changed, this, _1), gui_context()); + _region->PropertyChanged.connect (state_connection, invalidator (*this), boost::bind (&AudioClipEditorBox::region_changed, this, _1), gui_context ()); } void AudioClipEditorBox::region_changed (const PBD::PropertyChange& what_changed) { -//ToDo: refactor the region_editor.cc to cover this basic stuff -// if (what_changed.contains (ARDOUR::Properties::name)) { -// name_changed (); -// } - -// PBD::PropertyChange interesting_stuff; -// interesting_stuff.add (ARDOUR::Properties::length); -// interesting_stuff.add (ARDOUR::Properties::start); -// if (what_changed.contains (interesting_stuff)) - { - } } diff --git a/gtk2_ardour/audio_clip_editor.h b/gtk2_ardour/audio_clip_editor.h index 9454b88fb8..805b9e4f81 100644 --- a/gtk2_ardour/audio_clip_editor.h +++ b/gtk2_ardour/audio_clip_editor.h @@ -27,8 +27,8 @@ #include #include "ardour/ardour.h" -#include "ardour/types.h" #include "ardour/session_handle.h" +#include "ardour/types.h" #include "gtkmm2ext/actions.h" #include "gtkmm2ext/bindings.h" @@ -45,19 +45,21 @@ #include "audio_clock.h" -namespace ARDOUR { +namespace ARDOUR +{ class Session; class Location; } -namespace ArdourCanvas { +namespace ArdourCanvas +{ class Text; class Polygon; +} -}; - -namespace ArdourWaveView { -class WaveView; +namespace ArdourWaveView +{ + class WaveView; } class ClipEditorBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr @@ -66,56 +68,56 @@ public: ClipEditorBox () {} ~ClipEditorBox () {} - virtual void set_region (boost::shared_ptr) =0; + virtual void set_region (boost::shared_ptr) = 0; - static void init (); - static void register_clip_editor_actions (Gtkmm2ext::Bindings*); + static void init (); + static void register_clip_editor_actions (Gtkmm2ext::Bindings*); static Glib::RefPtr clip_editor_actions; }; class ClipEditor { - public: - virtual ~ClipEditor() {} +public: + virtual ~ClipEditor () {} - virtual void zoom_in () = 0; + virtual void zoom_in () = 0; virtual void zoom_out () = 0; }; class AudioClipEditor : public ArdourCanvas::GtkCanvas { - public: +public: AudioClipEditor (); ~AudioClipEditor (); void set_region (boost::shared_ptr); void on_size_allocate (Gtk::Allocation&); - double sample_to_pixel (ARDOUR::samplepos_t); + double sample_to_pixel (ARDOUR::samplepos_t); samplepos_t pixel_to_sample (double); - void set_spp (double); - double spp() const { return _spp; } + void set_spp (double); + double spp () const + { + return _spp; + } bool key_press (GdkEventKey*); - private: - ArdourCanvas::Rectangle* frame; - ArdourCanvas::ScrollGroup* waves_container; - ArdourCanvas::Container* line_container; - ArdourCanvas::Line* start_line; - ArdourCanvas::Line* end_line; - ArdourCanvas::Line* loop_line; - ArdourCanvas::Rectangle* scroll_bar_trough; - ArdourCanvas::Rectangle* scroll_bar_handle; - ArdourCanvas::Container* ruler_container; - ArdourCanvas::Ruler* ruler; - ArdourCanvas::Ruler::Metric* clip_metric; - std::vector waves; - double non_wave_height; - samplepos_t left_origin; - double _spp; - double scroll_fraction; +private: + ArdourCanvas::Rectangle* frame; + ArdourCanvas::ScrollGroup* waves_container; + ArdourCanvas::Container* line_container; + ArdourCanvas::Line* start_line; + ArdourCanvas::Line* end_line; + ArdourCanvas::Line* loop_line; + ArdourCanvas::Rectangle* scroll_bar_trough; + ArdourCanvas::Rectangle* scroll_bar_handle; + std::vector waves; + double non_wave_height; + samplepos_t left_origin; + double _spp; + double scroll_fraction; boost::shared_ptr audio_region; void scroll_left (); @@ -138,33 +140,35 @@ class AudioClipEditor : public ArdourCanvas::GtkCanvas void position_lines (); void scroll_changed (); - class LineDrag { - public: + class LineDrag + { + public: LineDrag (AudioClipEditor&, ArdourCanvas::Line&); void begin (GdkEventButton*); void end (GdkEventButton*); void motion (GdkEventMotion*); - private: - AudioClipEditor& editor; + private: + AudioClipEditor& editor; ArdourCanvas::Line& line; }; friend class LineDrag; LineDrag* current_line_drag; - class ScrollDrag { - public: + class ScrollDrag + { + public: ScrollDrag (AudioClipEditor&); void begin (GdkEventButton*); void end (GdkEventButton*); void motion (GdkEventMotion*); - private: + private: AudioClipEditor& editor; - double last_x; + double last_x; }; friend class ScrollDrag; @@ -181,13 +185,13 @@ public: void region_changed (const PBD::PropertyChange& what_changed); private: - Gtk::HBox header_box; + Gtk::HBox header_box; ArdourWidgets::ArdourButton zoom_in_button; ArdourWidgets::ArdourButton zoom_out_button; - Gtk::Label _header_label; - Gtk::Table table; + Gtk::Label _header_label; + Gtk::Table table; - AudioClipEditor *editor; + AudioClipEditor* editor; PBD::ScopedConnection state_connection; diff --git a/gtk2_ardour/audio_region_properties_box.cc b/gtk2_ardour/audio_region_properties_box.cc index 272d463742..f54b86d9d9 100644 --- a/gtk2_ardour/audio_region_properties_box.cc +++ b/gtk2_ardour/audio_region_properties_box.cc @@ -17,12 +17,12 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include "pbd/compose.h" +#include +#include "gtkmm2ext/actions.h" #include "gtkmm2ext/gui_thread.h" #include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" #include "ardour/location.h" #include "ardour/profile.h" @@ -41,62 +41,74 @@ using namespace Gtk; using namespace ARDOUR; using namespace ArdourWidgets; -using std::min; using std::max; +using std::min; -RegionPropertiesBox::RegionPropertiesBox() : - length_clock (X_("regionlength"), true, "", true, false, true) +RegionPropertiesBox::RegionPropertiesBox () + : length_clock (X_("regionlength"), true, "", true, false, true) , start_clock (X_("regionstart"), true, "", false, false) , loop_length_clock (X_("regionlength"), true, "", true, false, true) , loop_start_clock (X_("regionstart"), true, "", false, false) , bbt_toggle (ArdourButton::led_default_elements) , loop_toggle (ArdourButton::led_default_elements) { - Gtk::Label *label; - int row = 0; + Gtk::Label* label; + int row = 0; - _header_label.set_alignment(0.0, 0.5); - pack_start(_header_label, false, false, 6); + _header_label.set_alignment (0.0, 0.5); + pack_start (_header_label, false, false, 6); - Gtk::Table *bpm_table = manage(new Gtk::Table()); - bpm_table->set_homogeneous (false); - bpm_table->set_spacings (4); - bpm_table->set_border_width (2); - label = manage(new Gtk::Label(_("BPM:"))); label->set_alignment(1.0, 0.5); - bpm_table->attach(*label, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - bpm_table->attach(bpm_button, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + Gtk::Table* bpm_table = manage (new Gtk::Table ()); + bpm_table->set_homogeneous (false); + bpm_table->set_spacings (4); + bpm_table->set_border_width (2); + label = manage (new Gtk::Label (_("BPM:"))); + label->set_alignment (1.0, 0.5); + bpm_table->attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + bpm_table->attach (bpm_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; pack_start (*bpm_table, false, false); - Gtk::Table *metrum_table = manage(new Gtk::Table()); - metrum_table->set_homogeneous (false); - metrum_table->set_spacings (4); - metrum_table->set_border_width (2); - label = manage(new Gtk::Label(_("Time Sig:"))); label->set_alignment(1.0, 0.5); - bpm_table->attach(*label, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - bpm_table->attach(metrum_button, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + Gtk::Table* metrum_table = manage (new Gtk::Table ()); + metrum_table->set_homogeneous (false); + metrum_table->set_spacings (4); + metrum_table->set_border_width (2); + label = manage (new Gtk::Label (_("Time Sig:"))); + label->set_alignment (1.0, 0.5); + bpm_table->attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + bpm_table->attach (metrum_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; pack_start (*metrum_table, false, false); - row = 0; + row = 0; - bbt_toggle.set_text(_("BBT Sync")); - table.attach(bbt_toggle, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + bbt_toggle.set_text (_("BBT Sync")); + table.attach (bbt_toggle, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; - label = manage(new Gtk::Label(_("Start:"))); label->set_alignment(1.0, 0.5); - table.attach(*label, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - table.attach(start_clock, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + label = manage (new Gtk::Label (_("Start:"))); + label->set_alignment (1.0, 0.5); + table.attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + table.attach (start_clock, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; - label = manage(new Gtk::Label(_("Length:"))); label->set_alignment(1.0, 0.5); - table.attach(*label, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - table.attach(length_clock, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + label = manage (new Gtk::Label (_("Length:"))); + label->set_alignment (1.0, 0.5); + table.attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + table.attach (length_clock, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; - loop_toggle.set_text(_("Loop")); - table.attach(loop_toggle, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + loop_toggle.set_text (_("Loop")); + table.attach (loop_toggle, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; - label = manage(new Gtk::Label(_("Loop Start:"))); label->set_alignment(1.0, 0.5); - table.attach(*label, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - table.attach(loop_start_clock, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + label = manage (new Gtk::Label (_("Loop Start:"))); + label->set_alignment (1.0, 0.5); + table.attach (*label, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + table.attach (loop_start_clock, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; table.set_homogeneous (false); table.set_spacings (4); @@ -104,7 +116,7 @@ RegionPropertiesBox::RegionPropertiesBox() : pack_start (table, false, false); } -RegionPropertiesBox::~RegionPropertiesBox() +RegionPropertiesBox::~RegionPropertiesBox () { } @@ -123,92 +135,81 @@ RegionPropertiesBox::set_session (Session* s) void RegionPropertiesBox::set_region (boost::shared_ptr r) { - set_session(&r->session()); + set_session (&r->session ()); - state_connection.disconnect(); + state_connection.disconnect (); _region = r; PBD::PropertyChange interesting_stuff; - region_changed(interesting_stuff); + region_changed (interesting_stuff); - _region->PropertyChanged.connect (state_connection, invalidator (*this), boost::bind (&RegionPropertiesBox::region_changed, this, _1), gui_context()); + _region->PropertyChanged.connect (state_connection, invalidator (*this), boost::bind (&RegionPropertiesBox::region_changed, this, _1), gui_context ()); } void RegionPropertiesBox::region_changed (const PBD::PropertyChange& what_changed) { -//ToDo: refactor the region_editor.cc to cover this basic stuff -// if (what_changed.contains (ARDOUR::Properties::name)) { -// name_changed (); -// } - -// PBD::PropertyChange interesting_stuff; -// interesting_stuff.add (ARDOUR::Properties::length); -// interesting_stuff.add (ARDOUR::Properties::start); -// if (what_changed.contains (interesting_stuff)) + // TODO: refactor the region_editor.cc to cover this basic stuff { - AudioClock::Mode mode = _region->position_time_domain() == Temporal::AudioTime ? AudioClock::Samples : AudioClock::BBT; + AudioClock::Mode mode = _region->position_time_domain () == Temporal::AudioTime ? AudioClock::Samples : AudioClock::BBT; start_clock.set_mode (mode); length_clock.set_mode (mode); - start_clock.set (_region->start()); - length_clock.set_duration (_region->length()); + start_clock.set (_region->start ()); + length_clock.set_duration (_region->length ()); - bpm_button.set_text("122.2"); - metrum_button.set_text("4/4"); + bpm_button.set_text ("122.2"); + metrum_button.set_text ("4/4"); } } -/* ================== */ - AudioRegionPropertiesBox::AudioRegionPropertiesBox () { - _header_label.set_text(_("AUDIO Region Properties:")); + _header_label.set_text (_("AUDIO Region Properties:")); - Gtk::Label *label; + Gtk::Label* label; - Gtk::Table *audio_t = manage(new Gtk::Table()); + Gtk::Table* audio_t = manage (new Gtk::Table ()); audio_t->set_homogeneous (true); audio_t->set_spacings (4); int row = 0; - label = manage(new Gtk::Label(_("Stretch Mode:"))); label->set_alignment(1.0, 0.5); - audio_t->attach(*label, 0, 1, row, row+1, Gtk::FILL, Gtk::SHRINK ); + label = manage (new Gtk::Label (_("Stretch Mode:"))); + label->set_alignment (1.0, 0.5); + audio_t->attach (*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK); - stretch_selector.set_text ("Mixed"); - stretch_selector.set_name ("generic button"); - // stretch_selector.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); - audio_t->attach(stretch_selector, 1, 3, row, row+1, Gtk::FILL, Gtk::SHRINK ); + stretch_selector.set_text ("Mixed"); + stretch_selector.set_name ("generic button"); + audio_t->attach (stretch_selector, 1, 3, row, row + 1, Gtk::FILL, Gtk::SHRINK); row++; - label = manage(new Gtk::Label(_("Fades:"))); label->set_alignment(1.0, 0.5); - fade_in_enable_button.set_text (_("In")); - fade_in_enable_button.set_name ("generic button"); - // fade_in_enable_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); - fade_out_enable_button.set_text (_("Out")); - fade_out_enable_button.set_name ("generic button"); - // fade_out_enable_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); - audio_t->attach(*label, 0, 1, row, row+1, Gtk::FILL, Gtk::SHRINK ); - audio_t->attach(fade_in_enable_button, 1, 2, row, row+1, Gtk::FILL, Gtk::SHRINK ); - audio_t->attach(fade_out_enable_button, 2, 3, row, row+1, Gtk::FILL, Gtk::SHRINK ); + label = manage (new Gtk::Label (_("Fades:"))); + label->set_alignment (1.0, 0.5); + fade_in_enable_button.set_text (_("In")); + fade_in_enable_button.set_name ("generic button"); + fade_out_enable_button.set_text (_("Out")); + fade_out_enable_button.set_name ("generic button"); + audio_t->attach (*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK); + audio_t->attach (fade_in_enable_button, 1, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK); + audio_t->attach (fade_out_enable_button, 2, 3, row, row + 1, Gtk::FILL, Gtk::SHRINK); row++; - label = manage(new Gtk::Label(_("Gain:"))); label->set_alignment(1.0, 0.5); - audio_t->attach(*label, 0, 1, row, row+1, Gtk::FILL, Gtk::SHRINK ); + label = manage (new Gtk::Label (_("Gain:"))); + label->set_alignment (1.0, 0.5); + audio_t->attach (*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::SHRINK); - gain_control.set_text (_("+6dB")); - gain_control.set_name ("generic button"); - // gain_control.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); - audio_t->attach(gain_control, 1, 3, row, row+1, Gtk::FILL, Gtk::SHRINK ); + gain_control.set_text (_("+6dB")); + gain_control.set_name ("generic button"); + audio_t->attach (gain_control, 1, 3, row, row + 1, Gtk::FILL, Gtk::SHRINK); row++; - pack_start(*audio_t); + pack_start (*audio_t); } AudioRegionPropertiesBox::~AudioRegionPropertiesBox () @@ -220,4 +221,3 @@ AudioRegionPropertiesBox::set_region (boost::shared_ptr r) { RegionPropertiesBox::set_region (r); } - diff --git a/gtk2_ardour/audio_region_properties_box.h b/gtk2_ardour/audio_region_properties_box.h index 9b8d6ab38a..380aeee608 100644 --- a/gtk2_ardour/audio_region_properties_box.h +++ b/gtk2_ardour/audio_region_properties_box.h @@ -35,7 +35,8 @@ #include "audio_clock.h" -namespace ARDOUR { +namespace ARDOUR +{ class Session; class Location; } @@ -54,7 +55,10 @@ protected: boost::shared_ptr _region; Gtk::Label _header_label; + private: + void region_changed (const PBD::PropertyChange& what_changed); + Gtk::Table table; AudioClock length_clock; @@ -63,13 +67,12 @@ private: AudioClock loop_length_clock; AudioClock loop_start_clock; - ArdourWidgets::ArdourButton bpm_button; - ArdourWidgets::ArdourButton metrum_button; + ArdourWidgets::ArdourButton bpm_button; + ArdourWidgets::ArdourButton metrum_button; - ArdourWidgets::ArdourButton bbt_toggle; - ArdourWidgets::ArdourButton loop_toggle; + ArdourWidgets::ArdourButton bbt_toggle; + ArdourWidgets::ArdourButton loop_toggle; - void region_changed (const PBD::PropertyChange& what_changed); PBD::ScopedConnection state_connection; }; @@ -82,12 +85,11 @@ public: virtual void set_region (boost::shared_ptr); private: + ArdourWidgets::ArdourButton fade_in_enable_button; + ArdourWidgets::ArdourButton fade_out_enable_button; - ArdourWidgets::ArdourButton fade_in_enable_button; - ArdourWidgets::ArdourButton fade_out_enable_button; - - ArdourWidgets::ArdourButton gain_control; - ArdourWidgets::ArdourButton stretch_selector; + ArdourWidgets::ArdourButton gain_control; + ArdourWidgets::ArdourButton stretch_selector; }; #endif /* __audio_region_properties_box_h__ */ diff --git a/gtk2_ardour/midi_clip_editor.cc b/gtk2_ardour/midi_clip_editor.cc index f6e83c003a..cf3e78e008 100644 --- a/gtk2_ardour/midi_clip_editor.cc +++ b/gtk2_ardour/midi_clip_editor.cc @@ -17,12 +17,12 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include "pbd/compose.h" +#include +#include "gtkmm2ext/actions.h" #include "gtkmm2ext/gui_thread.h" #include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" #include "canvas/canvas.h" #include "canvas/debug.h" @@ -48,24 +48,17 @@ using namespace Gtk; using namespace ARDOUR; using namespace ArdourCanvas; -using std::min; using std::max; - -/* ------------ */ +using std::min; MidiClipEditor::MidiClipEditor () { -// set_homogenous (true); -// set_row_spacing (4); + set_background_color (UIConfiguration::instance ().color (X_("theme:darkest"))); - set_background_color (UIConfiguration::instance().color (X_("theme:darkest"))); - - const double scale = UIConfiguration::instance().get_ui_scale(); - const double width = 600. * scale; + const double scale = UIConfiguration::instance ().get_ui_scale (); + const double width = 600. * scale; const double height = 210. * scale; -// name = string_compose ("trigger %1", _trigger.index()); - frame = new Rectangle (this); ArdourCanvas::Rect r (0, 0, width, height); @@ -73,8 +66,6 @@ MidiClipEditor::MidiClipEditor () frame->set_outline_all (); frame->Event.connect (sigc::mem_fun (*this, &MidiClipEditor::event_handler)); - -// selection_connection = PublicEditor::instance().get_selection().TriggersChanged.connect (sigc::mem_fun (*this, &TriggerBoxUI::selection_changed)); } MidiClipEditor::~MidiClipEditor () @@ -85,35 +76,30 @@ bool MidiClipEditor::event_handler (GdkEvent* ev) { switch (ev->type) { - case GDK_BUTTON_PRESS: -// PublicEditor::instance().get_selection().set (this); - break; - case GDK_ENTER_NOTIFY: -// redraw (); - break; - case GDK_LEAVE_NOTIFY: -// redraw (); - break; - default: - break; + case GDK_BUTTON_PRESS: + break; + case GDK_ENTER_NOTIFY: + break; + case GDK_LEAVE_NOTIFY: + break; + default: + break; } return false; } -/* ====================================================== */ - MidiClipEditorBox::MidiClipEditorBox () { - _header_label.set_text(_("MIDI Region Trimmer:")); - _header_label.set_alignment(0.0, 0.5); - pack_start(_header_label, false, false, 6); + _header_label.set_text (_("MIDI Region Trimmer:")); + _header_label.set_alignment (0.0, 0.5); + pack_start (_header_label, false, false, 6); - editor = manage (new MidiClipEditor()); - editor->set_size_request(600,120); + editor = manage (new MidiClipEditor ()); + editor->set_size_request (600, 120); - pack_start(*editor, true, true); - editor->show(); + pack_start (*editor, true, true); + editor->show (); } MidiClipEditorBox::~MidiClipEditorBox () @@ -129,33 +115,19 @@ MidiClipEditorBox::set_session (Session* s) void MidiClipEditorBox::set_region (boost::shared_ptr r) { - set_session(&r->session()); + set_session (&r->session ()); - state_connection.disconnect(); + state_connection.disconnect (); _region = r; PBD::PropertyChange interesting_stuff; - region_changed(interesting_stuff); + region_changed (interesting_stuff); - _region->PropertyChanged.connect (state_connection, invalidator (*this), boost::bind (&MidiClipEditorBox::region_changed, this, _1), gui_context()); + _region->PropertyChanged.connect (state_connection, invalidator (*this), boost::bind (&MidiClipEditorBox::region_changed, this, _1), gui_context ()); } void MidiClipEditorBox::region_changed (const PBD::PropertyChange& what_changed) { -//ToDo: refactor the region_editor.cc to cover this basic stuff -// if (what_changed.contains (ARDOUR::Properties::name)) { -// name_changed (); -// } - -// PBD::PropertyChange interesting_stuff; -// interesting_stuff.add (ARDOUR::Properties::length); -// interesting_stuff.add (ARDOUR::Properties::start); -// if (what_changed.contains (interesting_stuff)) - { - } } - - - diff --git a/gtk2_ardour/midi_clip_editor.h b/gtk2_ardour/midi_clip_editor.h index 6a7fa68596..95cd59c032 100644 --- a/gtk2_ardour/midi_clip_editor.h +++ b/gtk2_ardour/midi_clip_editor.h @@ -38,25 +38,27 @@ #include "audio_clock.h" -namespace ARDOUR { +namespace ARDOUR +{ class Session; class Location; } -namespace ArdourCanvas { +namespace ArdourCanvas +{ class Text; class Polygon; -}; +} class MidiClipEditor : public ArdourCanvas::GtkCanvas { - public: +public: MidiClipEditor (); ~MidiClipEditor (); - private: +private: ArdourCanvas::Rectangle* frame; - bool event_handler (GdkEvent* ev); + bool event_handler (GdkEvent* ev); }; class MidiClipEditorBox : public ClipEditorBox @@ -74,7 +76,7 @@ private: Gtk::Label _header_label; Gtk::Table table; - MidiClipEditor *editor; + MidiClipEditor* editor; PBD::ScopedConnection state_connection; diff --git a/gtk2_ardour/midi_region_properties_box.cc b/gtk2_ardour/midi_region_properties_box.cc index 6151021f28..fbf7f0712d 100644 --- a/gtk2_ardour/midi_region_properties_box.cc +++ b/gtk2_ardour/midi_region_properties_box.cc @@ -17,12 +17,12 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include #include "pbd/compose.h" +#include +#include "gtkmm2ext/actions.h" #include "gtkmm2ext/gui_thread.h" #include "gtkmm2ext/utils.h" -#include "gtkmm2ext/actions.h" #include "ardour/location.h" #include "ardour/profile.h" @@ -43,44 +43,42 @@ using namespace Gtk; using namespace ARDOUR; using namespace ArdourWidgets; -using std::min; using std::max; +using std::min; -MidiRegionPropertiesBox::MidiRegionPropertiesBox () : - patch_enable_button (ArdourButton::led_default_elements) +MidiRegionPropertiesBox::MidiRegionPropertiesBox () + : patch_enable_button (ArdourButton::led_default_elements) , cc_enable_button (ArdourButton::led_default_elements) { - _header_label.set_text(_("MIDI Region Properties:")); + _header_label.set_text (_("MIDI Region Properties:")); - Gtk::Table *midi_t = manage(new Gtk::Table()); + Gtk::Table* midi_t = manage (new Gtk::Table ()); midi_t->set_homogeneous (true); midi_t->set_spacings (4); int row = 0; - patch_enable_button.set_text (_("Send Patches")); - patch_enable_button.set_name ("generic button"); - // patch_enable_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); + patch_enable_button.set_text (_("Send Patches")); + patch_enable_button.set_name ("generic button"); - patch_selector_button.set_text (_("Patches...")); - patch_selector_button.set_name ("generic button"); - // patch_selector_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); + patch_selector_button.set_text (_("Patches...")); + patch_selector_button.set_name ("generic button"); - midi_t->attach(patch_enable_button, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - midi_t->attach(patch_selector_button, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + midi_t->attach (patch_enable_button, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + midi_t->attach (patch_selector_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; - cc_enable_button.set_text (_("Send CCs")); - cc_enable_button.set_name ("generic button"); - // cc_enable_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); + cc_enable_button.set_text (_("Send CCs")); + cc_enable_button.set_name ("generic button"); - cc_selector_button.set_text (_("CCs...")); - cc_selector_button.set_name ("generic button"); - // cc_selector_button.signal_clicked.connect (sigc::mem_fun (*this, &MidiRegionPropertiesBox::patch_enable_button_clicked)); + cc_selector_button.set_text (_("CCs...")); + cc_selector_button.set_name ("generic button"); - midi_t->attach(cc_enable_button, 0, 1, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); - midi_t->attach(cc_selector_button, 1, 2, row, row+1, Gtk::SHRINK, Gtk::SHRINK ); row++; + midi_t->attach (cc_enable_button, 0, 1, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + midi_t->attach (cc_selector_button, 1, 2, row, row + 1, Gtk::SHRINK, Gtk::SHRINK); + row++; - pack_start(*midi_t); + pack_start (*midi_t); } MidiRegionPropertiesBox::~MidiRegionPropertiesBox () @@ -92,12 +90,11 @@ MidiRegionPropertiesBox::set_region (boost::shared_ptr r) { RegionPropertiesBox::set_region (r); - _region->PropertyChanged.connect (midi_state_connection, invalidator (*this), boost::bind (&MidiRegionPropertiesBox::region_changed, this, _1), gui_context()); + _region->PropertyChanged.connect (midi_state_connection, invalidator (*this), boost::bind (&MidiRegionPropertiesBox::region_changed, this, _1), gui_context ()); } void MidiRegionPropertiesBox::region_changed (const PBD::PropertyChange& what_changed) { - //CC and Pgm stuff ...? + /* CC and Pgm stuff ...? */ } - diff --git a/gtk2_ardour/midi_region_properties_box.h b/gtk2_ardour/midi_region_properties_box.h index 1e6695ef00..52c9e5d879 100644 --- a/gtk2_ardour/midi_region_properties_box.h +++ b/gtk2_ardour/midi_region_properties_box.h @@ -33,7 +33,8 @@ #include "audio_region_properties_box.h" -namespace ARDOUR { +namespace ARDOUR +{ class Session; class Location; } @@ -47,15 +48,15 @@ public: void set_region (boost::shared_ptr); private: - - PBD::ScopedConnection midi_state_connection; void region_changed (const PBD::PropertyChange& what_changed); - ArdourWidgets::ArdourButton patch_enable_button; - ArdourWidgets::ArdourButton patch_selector_button; + PBD::ScopedConnection midi_state_connection; - ArdourWidgets::ArdourButton cc_enable_button; - ArdourWidgets::ArdourButton cc_selector_button; + ArdourWidgets::ArdourButton patch_enable_button; + ArdourWidgets::ArdourButton patch_selector_button; + + ArdourWidgets::ArdourButton cc_enable_button; + ArdourWidgets::ArdourButton cc_selector_button; }; #endif /* __midi_region_properties_box_h__ */ diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index 92044b5e45..51062ae940 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -37,17 +37,17 @@ #include "public_editor.h" #include "timers.h" -#include "audio_region_properties_box.h" -#include "midi_region_properties_box.h" #include "audio_region_operations_box.h" -#include "midi_region_operations_box.h" -#include "slot_properties_box.h" +#include "audio_region_properties_box.h" #include "midi_clip_editor.h" +#include "midi_region_operations_box.h" +#include "midi_region_properties_box.h" +#include "slot_properties_box.h" -#include "trigger_page.h" -#include "trigger_strip.h" #include "cuebox_ui.h" #include "trigger_master.h" +#include "trigger_page.h" +#include "trigger_strip.h" #include "ui_config.h" #include "utils.h" @@ -63,33 +63,33 @@ using namespace std; TriggerPage::TriggerPage () : Tabbable (_content, _("Trigger Drom"), X_("trigger")) - , _master_widget(32, 16.) + , _master_widget (32, 16.) { load_bindings (); register_actions (); /* spacer to account for the trigger strip frame */ - ArdourVSpacer *spacer = manage(new ArdourVSpacer()); - spacer->set_size_request(-1,1); + ArdourVSpacer* spacer = manage (new ArdourVSpacer ()); + spacer->set_size_request (-1, 1); _slot_area_box.pack_start (*spacer, Gtk::PACK_SHRINK); - CueBoxWidget *cue_box = manage(new CueBoxWidget(32, TriggerBox::default_triggers_per_box*16.)); + CueBoxWidget* cue_box = manage (new CueBoxWidget (32, TriggerBox::default_triggers_per_box * 16.)); _slot_area_box.pack_start (*cue_box, Gtk::PACK_SHRINK); - _master = new CueMaster(_master_widget.root()); + _master = new CueMaster (_master_widget.root ()); _slot_area_box.pack_start (_master_widget, Gtk::PACK_SHRINK); _midi_prop_box = new MidiRegionPropertiesBox (); _slot_prop_box = new SlotPropertiesBox (); _audio_prop_box = new AudioRegionPropertiesBox (); - _midi_prop_box = new MidiRegionPropertiesBox (); + _midi_prop_box = new MidiRegionPropertiesBox (); _audio_ops_box = new AudioRegionOperationsBox (); - _midi_ops_box = new MidiRegionOperationsBox (); + _midi_ops_box = new MidiRegionOperationsBox (); _audio_trim_box = new AudioClipEditorBox (); - _midi_trim_box = new MidiClipEditorBox (); + _midi_trim_box = new MidiClipEditorBox (); Gtk::Table* table = manage (new Gtk::Table); table->set_homogeneous (false); @@ -97,17 +97,23 @@ TriggerPage::TriggerPage () table->set_border_width (8); int col = 0; - table->attach(*_slot_prop_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); + table->attach (*_slot_prop_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); - col=1; - table->attach(*_audio_prop_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(*_audio_trim_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(*_audio_ops_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; + col = 1; + table->attach (*_audio_prop_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); + col++; + table->attach (*_audio_trim_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); + col++; + table->attach (*_audio_ops_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); + col++; - col=1; /* audio and midi boxen share the same table locations; shown and hidden depending on region type */ - table->attach(*_midi_prop_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(*_midi_trim_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; - table->attach(*_midi_ops_box, col, col+1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); col++; + col = 1; /* audio and midi boxen share the same table locations; shown and hidden depending on region type */ + table->attach (*_midi_prop_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); + col++; + table->attach (*_midi_trim_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); + col++; + table->attach (*_midi_ops_box, col, col + 1, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); + col++; _parameter_box.pack_start (*table); @@ -124,7 +130,7 @@ TriggerPage::TriggerPage () /* last item of strip packer */ _strip_packer.pack_end (_no_strips, true, true); _no_strips.set_size_request (PX_SCALE (60), -1); - _no_strips.signal_expose_event().connect (sigc::bind (sigc::ptr_fun(&ArdourWidgets::ArdourIcon::expose), &_no_strips, ArdourWidgets::ArdourIcon::CloseCross)); + _no_strips.signal_expose_event ().connect (sigc::bind (sigc::ptr_fun (&ArdourWidgets::ArdourIcon::expose), &_no_strips, ArdourWidgets::ArdourIcon::CloseCross)); _strip_group_box.pack_start (_slot_area_box, false, false); _strip_group_box.pack_start (_strip_scroller, true, true); @@ -261,23 +267,23 @@ TriggerPage::set_session (Session* s) _session->config.ParameterChanged.connect (_session_connections, invalidator (*this), boost::bind (&TriggerPage::parameter_changed, this, _1), gui_context ()); - Editor::instance().get_selection().TriggersChanged.connect (sigc::mem_fun (*this, &TriggerPage::selection_changed)); + Editor::instance ().get_selection ().TriggersChanged.connect (sigc::mem_fun (*this, &TriggerPage::selection_changed)); initial_track_display (); - _slot_prop_box->set_session(s); + _slot_prop_box->set_session (s); - _audio_prop_box->set_session(s); - _audio_ops_box->set_session(s); - _audio_trim_box->set_session(s); + _audio_prop_box->set_session (s); + _audio_ops_box->set_session (s); + _audio_trim_box->set_session (s); - _midi_prop_box->set_session(s); - _midi_ops_box->set_session(s); - _midi_trim_box->set_session(s); + _midi_prop_box->set_session (s); + _midi_ops_box->set_session (s); + _midi_trim_box->set_session (s); update_title (); start_updating (); - selection_changed(); + selection_changed (); } void @@ -343,42 +349,42 @@ TriggerPage::initial_track_display () void TriggerPage::selection_changed () { - Selection& selection (Editor::instance().get_selection()); + Selection& selection (Editor::instance ().get_selection ()); - _slot_prop_box->hide(); + _slot_prop_box->hide (); - _audio_ops_box->hide(); - _audio_prop_box->hide(); - _audio_trim_box->hide(); + _audio_ops_box->hide (); + _audio_prop_box->hide (); + _audio_trim_box->hide (); - _midi_ops_box->hide(); - _midi_prop_box->hide(); - _midi_trim_box->hide(); + _midi_ops_box->hide (); + _midi_prop_box->hide (); + _midi_trim_box->hide (); _parameter_box.hide (); - if (!selection.triggers.empty()) { - TriggerSelection ts = selection.triggers; - TriggerEntry* entry = *ts.begin(); - Trigger* slot = &entry->trigger(); + if (!selection.triggers.empty ()) { + TriggerSelection ts = selection.triggers; + TriggerEntry* entry = *ts.begin (); + Trigger* slot = &entry->trigger (); - _slot_prop_box->set_slot(slot); - _slot_prop_box->show(); - if (slot->region()) { - if (slot->region()->data_type() == DataType::AUDIO) { - _audio_prop_box->set_region(slot->region()); - _audio_trim_box->set_region(slot->region()); + _slot_prop_box->set_slot (slot); + _slot_prop_box->show (); + if (slot->region ()) { + if (slot->region ()->data_type () == DataType::AUDIO) { + _audio_prop_box->set_region (slot->region ()); + _audio_trim_box->set_region (slot->region ()); - _audio_prop_box->show(); - _audio_trim_box->show(); - _audio_ops_box->show(); + _audio_prop_box->show (); + _audio_trim_box->show (); + _audio_ops_box->show (); } else { - _midi_prop_box->set_region(slot->region()); - _midi_trim_box->set_region(slot->region()); + _midi_prop_box->set_region (slot->region ()); + _midi_trim_box->set_region (slot->region ()); - _midi_prop_box->show(); - _midi_trim_box->show(); - _midi_ops_box->show(); + _midi_prop_box->show (); + _midi_trim_box->show (); + _midi_ops_box->show (); } } _parameter_box.show (); @@ -403,7 +409,7 @@ TriggerPage::add_routes (RouteList& rl) } #endif - if (!(*r)->triggerbox()) { + if (!(*r)->triggerbox ()) { /* This Route has no TriggerBox -- and can never have one */ continue; } @@ -437,17 +443,17 @@ TriggerPage::redisplay_track_list () { bool visible_triggers = false; for (list::iterator i = _strips.begin (); i != _strips.end (); ++i) { - TriggerStrip* strip = *i; - boost::shared_ptr s = strip->stripable (); - boost::shared_ptr route = boost::dynamic_pointer_cast (s); + TriggerStrip* strip = *i; + boost::shared_ptr s = strip->stripable (); + boost::shared_ptr route = boost::dynamic_pointer_cast (s); bool hidden = s->presentation_info ().hidden (); if (!(s)->presentation_info ().trigger_track ()) { hidden = true; } - assert (route && route->triggerbox()); - if (!route || !route->triggerbox()) { + assert (route && route->triggerbox ()); + if (!route || !route->triggerbox ()) { hidden = true; } diff --git a/gtk2_ardour/trigger_page.h b/gtk2_ardour/trigger_page.h index bbeaa1393f..4b2074bec3 100644 --- a/gtk2_ardour/trigger_page.h +++ b/gtk2_ardour/trigger_page.h @@ -69,7 +69,7 @@ private: void pi_property_changed (PBD::PropertyChange const&); void stripable_property_changed (PBD::PropertyChange const&, boost::weak_ptr); - void selection_changed (); + void selection_changed (); PBD::ScopedConnectionList editor_connections; gint start_updating (); @@ -89,18 +89,18 @@ private: Gtk::VBox _browser_box; Gtk::HBox _parameter_box; - FittedCanvasWidget _master_widget; - CueMaster *_master; + FittedCanvasWidget _master_widget; + CueMaster* _master; SlotPropertiesBox* _slot_prop_box; AudioRegionPropertiesBox* _audio_prop_box; AudioRegionOperationsBox* _audio_ops_box; - AudioClipEditorBox* _audio_trim_box; + AudioClipEditorBox* _audio_trim_box; MidiRegionPropertiesBox* _midi_prop_box; MidiRegionOperationsBox* _midi_ops_box; - MidiClipEditorBox* _midi_trim_box; + MidiClipEditorBox* _midi_trim_box; std::list _strips; sigc::connection _fast_screen_update_connection; diff --git a/gtk2_ardour/trigger_strip.cc b/gtk2_ardour/trigger_strip.cc index 3aee62a172..4d9c5089fc 100644 --- a/gtk2_ardour/trigger_strip.cc +++ b/gtk2_ardour/trigger_strip.cc @@ -61,9 +61,9 @@ TriggerStrip::TriggerStrip (Session* s, boost::shared_ptr rt) , RouteUI (s) , _clear_meters (true) , _pb_selection () - , _master_widget ( -1, 16 ) + , _master_widget (-1, 16) , _processor_box (s, boost::bind (&TriggerStrip::plugin_selector, this), _pb_selection, 0) - , _trigger_display (*rt->triggerbox (), -1., TriggerBox::default_triggers_per_box*16.) + , _trigger_display (*rt->triggerbox (), -1., TriggerBox::default_triggers_per_box * 16.) , _panners (s) , _level_meter (s) { @@ -145,12 +145,12 @@ TriggerStrip::init () global_frame.set_shadow_type (Gtk::SHADOW_IN); global_frame.set_name ("BaseFrame"); - Gtk::VBox *outer_vpacker = manage(new Gtk::VBox); + Gtk::VBox* outer_vpacker = manage (new Gtk::VBox); outer_vpacker->pack_start (_trigger_display, Gtk::PACK_SHRINK); outer_vpacker->pack_start (_master_widget, Gtk::PACK_SHRINK); outer_vpacker->pack_start (global_frame, true, true); - outer_vpacker->show(); + outer_vpacker->show (); add (*outer_vpacker); @@ -191,8 +191,8 @@ TriggerStrip::set_route (boost::shared_ptr rt) { RouteUI::set_route (rt); - _master = new TriggerMaster(_master_widget.root(), _route->triggerbox()); - + _master = new TriggerMaster (_master_widget.root (), _route->triggerbox ()); + _processor_box.set_route (rt); /* Fader/Gain */ diff --git a/gtk2_ardour/trigger_strip.h b/gtk2_ardour/trigger_strip.h index 6a6efecff2..9a8a46899d 100644 --- a/gtk2_ardour/trigger_strip.h +++ b/gtk2_ardour/trigger_strip.h @@ -120,13 +120,13 @@ private: Gtk::Table volume_table; /* Widgets */ - FittedCanvasWidget _master_widget; - TriggerMaster *_master; + FittedCanvasWidget _master_widget; + TriggerMaster* _master; - ArdourWidgets::ArdourButton _name_button; - ProcessorBox _processor_box; - TriggerBoxWidget _trigger_display; - PannerUI _panners; + ArdourWidgets::ArdourButton _name_button; + ProcessorBox _processor_box; + TriggerBoxWidget _trigger_display; + PannerUI _panners; LevelMeterVBox _level_meter; boost::shared_ptr _gain_control; };