diff options
author | David Robillard <d@drobilla.net> | 2007-09-06 02:30:39 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-09-06 02:30:39 +0000 |
commit | c190aca4a0debe1220558d14afb8f1ab4adb959f (patch) | |
tree | 1c2749473afe96f41cd99d1036533342db98a1ba /gtk2_ardour/automation_streamview.h | |
parent | 7423ad46a742fbfd03ee4e54e78167c9006a2e8d (diff) |
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
Diffstat (limited to 'gtk2_ardour/automation_streamview.h')
-rw-r--r-- | gtk2_ardour/automation_streamview.h | 72 |
1 files changed, 72 insertions, 0 deletions
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 <list> +#include <cmath> + +#include <ardour/location.h> +#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<Selectable* >&); + void get_inverted_selectables (Selection&, list<Selectable* >& 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<ARDOUR::Region>, bool wait_for_data); + void display_region(AutomationRegionView* region_view); + + void color_handler (); + + boost::shared_ptr<AutomationController> _controller; + + AutomationTimeAxisView& _automation_view; +}; + +#endif /* __ardour_automation_streamview_h__ */ |