From c190aca4a0debe1220558d14afb8f1ab4adb959f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 6 Sep 2007 02:30:39 +0000 Subject: Deep "automation regions" support. Fix zoom/height/etc changing for automation region views. Broke smooth automation region dragging (make omelette, break eggs, etc). git-svn-id: svn://localhost/ardour2/trunk@2424 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/automation_streamview.h | 72 +++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 gtk2_ardour/automation_streamview.h (limited to 'gtk2_ardour/automation_streamview.h') diff --git a/gtk2_ardour/automation_streamview.h b/gtk2_ardour/automation_streamview.h new file mode 100644 index 0000000000..c5eac37021 --- /dev/null +++ b/gtk2_ardour/automation_streamview.h @@ -0,0 +1,72 @@ +/* + Copyright (C) 2001, 2007 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_automation_streamview_h__ +#define __ardour_automation_streamview_h__ + +#include +#include + +#include +#include "enums.h" +#include "simplerect.h" +#include "streamview.h" +#include "time_axis_view_item.h" +#include "route_time_axis.h" +#include "automation_controller.h" + +namespace Gdk { + class Color; +} + +class PublicEditor; +class Selectable; +class Selection; +class AutomationRegionView; + +class AutomationStreamView : public StreamView +{ + public: + AutomationStreamView (AutomationTimeAxisView& tv); + ~AutomationStreamView (); + + void set_selected_regionviews (RegionSelection&); + void get_selectables (jack_nframes_t start, jack_nframes_t end, list&); + void get_inverted_selectables (Selection&, list& results); + + void redisplay_diskstream (); + + inline double contents_height() const + { return (_trackview.height - TimeAxisViewItem::NAME_HIGHLIGHT_SIZE - 2); } + + private: + void setup_rec_box (); + void rec_data_range_ready (jack_nframes_t start, jack_nframes_t dur); + void update_rec_regions (jack_nframes_t start, jack_nframes_t dur); + + RegionView* add_region_view_internal (boost::shared_ptr, bool wait_for_data); + void display_region(AutomationRegionView* region_view); + + void color_handler (); + + boost::shared_ptr _controller; + + AutomationTimeAxisView& _automation_view; +}; + +#endif /* __ardour_automation_streamview_h__ */ -- cgit v1.2.3