diff options
author | Carl Hetherington <carl@carlh.net> | 2009-07-09 17:58:13 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-07-09 17:58:13 +0000 |
commit | 402cc384ced6cb152c8abe4294009fe0de0a6dea (patch) | |
tree | f01db6b412cb8e2d3c69fa123fd615c229ee47d3 /gtk2_ardour/midi_streamview.cc | |
parent | cc351b97a986fca48a6b3b631a292bf24efc5e41 (diff) |
Back out big shared_ptr change. Moving to a branch. Apologies all.
git-svn-id: svn://localhost/ardour2/branches/3.0@5343 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_streamview.cc')
-rw-r--r-- | gtk2_ardour/midi_streamview.cc | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc index 4f6b77a53c..30718ad158 100644 --- a/gtk2_ardour/midi_streamview.cc +++ b/gtk2_ardour/midi_streamview.cc @@ -53,7 +53,7 @@ using namespace ARDOUR; using namespace PBD; using namespace Editing; -MidiStreamView::MidiStreamView (MidiTimeAxisViewPtr tv) +MidiStreamView::MidiStreamView (MidiTimeAxisView& tv) : StreamView (tv) , note_range_adjustment(0.0f, 0.0f, 0.0f) , _range_dirty(false) @@ -63,13 +63,13 @@ MidiStreamView::MidiStreamView (MidiTimeAxisViewPtr tv) , _data_note_min(60) , _data_note_max(71) { - if (tv->is_track()) { + if (tv.is_track()) { stream_base_color = ARDOUR_UI::config()->canvasvar_MidiTrackBase.get(); } else { stream_base_color = ARDOUR_UI::config()->canvasvar_MidiBusBase.get(); } - use_rec_regions = tv->editor().show_waveforms_recording (); + use_rec_regions = tv.editor().show_waveforms_recording (); /* use a group dedicated to MIDI underlays. Audio underlays are not in this group. */ midi_underlay_group = new ArdourCanvas::Group (*canvas_group); @@ -81,16 +81,12 @@ MidiStreamView::MidiStreamView (MidiTimeAxisViewPtr tv) _note_lines->property_x1() = 0; _note_lines->property_y1() = 0; - _note_lines->property_x2() = trackview()->editor().frame_to_pixel (max_frames); + _note_lines->property_x2() = trackview().editor().frame_to_pixel (max_frames); _note_lines->property_y2() = 0; - TimeAxisViewPtr w (_trackview); - _note_lines->signal_event().connect( - bind( - mem_fun(_trackview->editor(), &PublicEditor::canvas_stream_view_event), - _note_lines, w - ) - ); + _note_lines->signal_event().connect(bind( + mem_fun(_trackview.editor(), &PublicEditor::canvas_stream_view_event), + _note_lines, &_trackview)); _note_lines->lower_to_bottom(); @@ -251,7 +247,7 @@ MidiStreamView::update_data_note_range(uint8_t min, uint8_t max) void MidiStreamView::redisplay_diskstream () { - if (!_trackview->is_midi_track()) { + if (!_trackview.is_midi_track()) { return; } @@ -261,7 +257,7 @@ MidiStreamView::redisplay_diskstream () _range_dirty = false; _data_note_min = 127; _data_note_max = 0; - _trackview->get_diskstream()->playlist()->foreach_region( + _trackview.get_diskstream()->playlist()->foreach_region( sigc::mem_fun (*this, &StreamView::update_contents_metrics) ); @@ -284,7 +280,7 @@ MidiStreamView::redisplay_diskstream () } // Add and display region views, and flag them as valid - _trackview->get_diskstream()->playlist()->foreach_region( + _trackview.get_diskstream()->playlist()->foreach_region( sigc::hide_return (sigc::mem_fun (*this, &StreamView::add_region_view)) ); @@ -386,11 +382,11 @@ MidiStreamView::setup_rec_box () { // cerr << _trackview.name() << " streamview SRB\n"; - if (_trackview->session().transport_rolling()) { + if (_trackview.session().transport_rolling()) { if (!rec_active && - _trackview->session().record_status() == Session::Recording && - _trackview->get_diskstream()->record_enabled()) { + _trackview.session().record_status() == Session::Recording && + _trackview.get_diskstream()->record_enabled()) { if (use_rec_regions && rec_regions.size() == rec_rects.size()) { @@ -404,7 +400,7 @@ MidiStreamView::setup_rec_box () rec_data_ready_connections.clear(); // FIXME - boost::shared_ptr<MidiDiskstream> mds = boost::dynamic_pointer_cast<MidiDiskstream>(_trackview->get_diskstream()); + boost::shared_ptr<MidiDiskstream> mds = boost::dynamic_pointer_cast<MidiDiskstream>(_trackview.get_diskstream()); assert(mds); sources.push_back(mds->write_source()); @@ -415,14 +411,14 @@ MidiStreamView::setup_rec_box () jack_nframes_t start = 0; if (rec_regions.size() > 0) { - start = rec_regions.back().first->position() + _trackview->get_diskstream()->get_captured_frames(rec_regions.size()-1); + start = rec_regions.back().first->position() + _trackview.get_diskstream()->get_captured_frames(rec_regions.size()-1); } boost::shared_ptr<MidiRegion> region (boost::dynamic_pointer_cast<MidiRegion> (RegionFactory::create (sources, start, 1 , "", 0, Region::DefaultFlags, false))); assert(region); region->block_property_changes (); - region->set_position (_trackview->session().transport_frame(), this); + region->set_position (_trackview.session().transport_frame(), this); rec_regions.push_back (make_pair(region, (RegionView*)0)); // rec regions are destroyed in setup_rec_box @@ -432,14 +428,14 @@ MidiStreamView::setup_rec_box () /* start a new rec box */ - boost::shared_ptr<MidiTrack> mt = _trackview->midi_track(); /* we know what it is already */ + boost::shared_ptr<MidiTrack> mt = _trackview.midi_track(); /* we know what it is already */ boost::shared_ptr<MidiDiskstream> ds = mt->midi_diskstream(); jack_nframes_t frame_pos = ds->current_capture_start (); - gdouble xstart = _trackview->editor().frame_to_pixel (frame_pos); + gdouble xstart = _trackview.editor().frame_to_pixel (frame_pos); gdouble xend; uint32_t fill_color; - assert(_trackview->midi_track()->mode() == Normal); + assert(_trackview.midi_track()->mode() == Normal); xend = xstart; fill_color = ARDOUR_UI::config()->canvasvar_RecordingRect.get(); @@ -448,14 +444,14 @@ MidiStreamView::setup_rec_box () rec_rect->property_x1() = xstart; rec_rect->property_y1() = 1.0; rec_rect->property_x2() = xend; - rec_rect->property_y2() = (double) _trackview->current_height() - 1; + rec_rect->property_y2() = (double) _trackview.current_height() - 1; rec_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RecordingRect.get(); rec_rect->property_fill_color_rgba() = fill_color; rec_rect->lower_to_bottom(); RecBoxInfo recbox; recbox.rectangle = rec_rect; - recbox.start = _trackview->session().transport_frame(); + recbox.start = _trackview.session().transport_frame(); recbox.length = 0; rec_rects.push_back (recbox); @@ -466,8 +462,8 @@ MidiStreamView::setup_rec_box () rec_active = true; } else if (rec_active && - (_trackview->session().record_status() != Session::Recording || - !_trackview->get_diskstream()->record_enabled())) { + (_trackview.session().record_status() != Session::Recording || + !_trackview.get_diskstream()->record_enabled())) { screen_update_connection.disconnect(); rec_active = false; @@ -561,7 +557,7 @@ MidiStreamView::update_rec_regions (boost::shared_ptr<MidiModel> data, nframes_t if (nlen != region->length()) { region->freeze (); - region->set_position (_trackview->get_diskstream()->get_capture_start_frame(n), this); + region->set_position (_trackview.get_diskstream()->get_capture_start_frame(n), this); region->set_length (start + dur - region->position(), this); region->thaw ("updated"); @@ -573,7 +569,7 @@ MidiStreamView::update_rec_regions (boost::shared_ptr<MidiModel> data, nframes_t /* also update rect */ ArdourCanvas::SimpleRect * rect = rec_rects[n].rectangle; - gdouble xend = _trackview->editor().frame_to_pixel (region->position() + region->length()); + gdouble xend = _trackview.editor().frame_to_pixel (region->position() + region->length()); rect->property_x2() = xend; /* draw events */ @@ -610,14 +606,14 @@ MidiStreamView::update_rec_regions (boost::shared_ptr<MidiModel> data, nframes_t } else { - nframes_t nlen = _trackview->get_diskstream()->get_captured_frames(n); + nframes_t nlen = _trackview.get_diskstream()->get_captured_frames(n); if (nlen != region->length()) { if (region->source_length(0) >= region->position() + nlen) { region->freeze (); - region->set_position (_trackview->get_diskstream()->get_capture_start_frame(n), this); + region->set_position (_trackview.get_diskstream()->get_capture_start_frame(n), this); region->set_length (nlen, this); region->thaw ("updated"); @@ -658,12 +654,12 @@ void MidiStreamView::color_handler () { //case cMidiTrackBase: - if (_trackview->is_midi_track()) { + if (_trackview.is_midi_track()) { //canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiTrackBase.get(); } //case cMidiBusBase: - if (!_trackview->is_midi_track()) { + if (!_trackview.is_midi_track()) { //canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiBusBase.get();; } } |