diff options
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__ */ |