diff options
Diffstat (limited to 'gtk2_ardour/ghostregion.cc')
-rw-r--r-- | gtk2_ardour/ghostregion.cc | 105 |
1 files changed, 54 insertions, 51 deletions
diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc index 31e6de390b..5350a0e459 100644 --- a/gtk2_ardour/ghostregion.cc +++ b/gtk2_ardour/ghostregion.cc @@ -18,15 +18,18 @@ */ #include "evoral/Note.hpp" +#include "canvas/group.h" +#include "canvas/rectangle.h" +#include "canvas/wave_view.h" +#include "canvas/debug.h" + #include "ardour_ui.h" #include "automation_time_axis.h" -#include "canvas-note.h" #include "ghostregion.h" #include "midi_streamview.h" #include "midi_time_axis.h" #include "rgb_macros.h" -#include "simplerect.h" -#include "waveview.h" +#include "note.h" using namespace std; using namespace Editing; @@ -39,15 +42,16 @@ GhostRegion::GhostRegion (ArdourCanvas::Group* parent, TimeAxisView& tv, TimeAxi : trackview (tv) , source_trackview (source_tv) { - group = new ArdourCanvas::Group (*parent); - group->property_x() = initial_pos; - group->property_y() = 0.0; + group = new ArdourCanvas::Group (parent); + CANVAS_DEBUG_NAME (group, "ghost region group"); + group->set_position (ArdourCanvas::Duple (initial_pos, 0)); - base_rect = new ArdourCanvas::SimpleRect (*group); - base_rect->property_x1() = (double) 0.0; - base_rect->property_y1() = (double) 0.0; - base_rect->property_y2() = (double) trackview.current_height(); - base_rect->property_outline_what() = (guint32) 0; + base_rect = new ArdourCanvas::Rectangle (group); + CANVAS_DEBUG_NAME (base_rect, "ghost region rect"); + base_rect->set_x0 (0); + base_rect->set_y0 (0); + base_rect->set_y1 (trackview.current_height()); + base_rect->set_outline_what (0); if (!is_automation_ghost()) { base_rect->hide(); @@ -70,21 +74,21 @@ GhostRegion::~GhostRegion () void GhostRegion::set_duration (double units) { - base_rect->property_x2() = units; + base_rect->set_x1 (units); } void GhostRegion::set_height () { - base_rect->property_y2() = (double) trackview.current_height(); + base_rect->set_y1 (trackview.current_height()); } void GhostRegion::set_colors () { if (is_automation_ghost()) { - base_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackBase.get(); - base_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackBase.get(); + base_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackBase()); + base_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackBase()); } } @@ -108,28 +112,26 @@ AudioGhostRegion::AudioGhostRegion(TimeAxisView& tv, TimeAxisView& source_tv, do } void -AudioGhostRegion::set_samples_per_unit (double spu) +AudioGhostRegion::set_samples_per_pixel (double fpp) { for (vector<WaveView*>::iterator i = waves.begin(); i != waves.end(); ++i) { - (*i)->property_samples_per_unit() = spu; + (*i)->set_samples_per_pixel (fpp); } } void AudioGhostRegion::set_height () { - gdouble ht; vector<WaveView*>::iterator i; uint32_t n; GhostRegion::set_height(); - ht = ((trackview.current_height()) / (double) waves.size()); + double const ht = ((trackview.current_height()) / (double) waves.size()); for (n = 0, i = waves.begin(); i != waves.end(); ++i, ++n) { - gdouble yoff = n * ht; - (*i)->property_height() = ht; - (*i)->property_y() = yoff; + (*i)->set_height (ht); + (*i)->set_y_position (n * ht); } } @@ -140,17 +142,17 @@ AudioGhostRegion::set_colors () guint fill_color; if (is_automation_ghost()) { - fill_color = ARDOUR_UI::config()->canvasvar_GhostTrackWaveFill.get(); + fill_color = ARDOUR_UI::config()->get_canvasvar_GhostTrackWaveFill(); } else { fill_color = source_track_color(200); } for (uint32_t n=0; n < waves.size(); ++n) { - waves[n]->property_wave_color() = ARDOUR_UI::config()->canvasvar_GhostTrackWave.get(); - waves[n]->property_fill_color() = fill_color; - waves[n]->property_clip_color() = ARDOUR_UI::config()->canvasvar_GhostTrackWaveClip.get(); - waves[n]->property_zero_color() = ARDOUR_UI::config()->canvasvar_GhostTrackZeroLine.get(); + waves[n]->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackWave()); + waves[n]->set_fill_color (fill_color); + waves[n]->set_clip_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackWaveClip()); + waves[n]->set_zero_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackZeroLine()); } } @@ -189,20 +191,21 @@ MidiGhostRegion::~MidiGhostRegion() clear_events (); } -MidiGhostRegion::Event::Event (ArdourCanvas::CanvasNoteEvent* e, ArdourCanvas::Group* g) +MidiGhostRegion::GhostEvent::GhostEvent (NoteBase* e, ArdourCanvas::Group* g) : event (e) { - rect = new ArdourCanvas::SimpleRect (*g, e->x1(), e->y1(), e->x2(), e->y2()); + rect = new ArdourCanvas::Rectangle (g, ArdourCanvas::Rect (e->x0(), e->y0(), e->x1(), e->y1())); + CANVAS_DEBUG_NAME (rect, "ghost note rect"); } -MidiGhostRegion::Event::~Event () +MidiGhostRegion::GhostEvent::~GhostEvent () { /* event is not ours to delete */ delete rect; } void -MidiGhostRegion::set_samples_per_unit (double /*spu*/) +MidiGhostRegion::set_samples_per_pixel (double /*spu*/) { } @@ -233,8 +236,8 @@ MidiGhostRegion::set_colors() GhostRegion::set_colors(); for (EventList::iterator it = events.begin(); it != events.end(); ++it) { - (*it)->rect->property_fill_color_rgba() = fill; - (*it)->rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackMidiOutline.get(); + (*it)->rect->set_fill_color (fill); + (*it)->rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackMidiOutline()); } } @@ -257,20 +260,20 @@ MidiGhostRegion::update_range () } else { (*it)->rect->show(); double const y = trackview.current_height() - (note_num + 1 - mv->lowest_note()) * h + 1; - (*it)->rect->property_y1() = y; - (*it)->rect->property_y2() = y + h; + (*it)->rect->set_y0 (y); + (*it)->rect->set_y1 (y + h); } } } void -MidiGhostRegion::add_note(ArdourCanvas::CanvasNote* n) +MidiGhostRegion::add_note (NoteBase* n) { - Event* event = new Event (n, group); + GhostEvent* event = new GhostEvent (n, group); events.push_back (event); - event->rect->property_fill_color_rgba() = source_track_color(200); - event->rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_GhostTrackMidiOutline.get(); + event->rect->set_fill_color (source_track_color(200)); + event->rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_GhostTrackMidiOutline()); MidiStreamView* mv = midi_view(); @@ -281,8 +284,8 @@ MidiGhostRegion::add_note(ArdourCanvas::CanvasNote* n) event->rect->hide(); } else { const double y = mv->note_to_y(note_num); - event->rect->property_y1() = y; - event->rect->property_y2() = y + mv->note_height(); + event->rect->set_y0 (y); + event->rect->set_y1 (y + mv->note_height()); } } } @@ -302,23 +305,23 @@ MidiGhostRegion::clear_events() * @param parent The CanvasNote from the parent MidiRegionView. */ void -MidiGhostRegion::update_note (ArdourCanvas::CanvasNote* parent) +MidiGhostRegion::update_note (NoteBase* parent) { - Event* ev = find_event (parent); + GhostEvent* ev = find_event (parent); if (!ev) { return; } - double const x1 = parent->property_x1 (); - double const x2 = parent->property_x2 (); - ev->rect->property_x1 () = x1; - ev->rect->property_x2 () = x2; + double const x1 = parent->x0 (); + double const x2 = parent->x1 (); + ev->rect->set_x0 (x1); + ev->rect->set_x1 (x2); } void -MidiGhostRegion::remove_note (ArdourCanvas::CanvasNoteEvent* note) +MidiGhostRegion::remove_note (NoteBase* note) { - Event* ev = find_event (note); + GhostEvent* ev = find_event (note); if (!ev) { return; } @@ -333,8 +336,8 @@ MidiGhostRegion::remove_note (ArdourCanvas::CanvasNoteEvent* note) * @return Our Event, or 0 if not found. */ -MidiGhostRegion::Event * -MidiGhostRegion::find_event (ArdourCanvas::CanvasNoteEvent* parent) +MidiGhostRegion::GhostEvent * +MidiGhostRegion::find_event (NoteBase* parent) { /* we are using _optimization_iterator to speed up the common case where a caller is going through our notes in order. |