#define __ardour_streamview_h__
#include <list>
-#include <map>
#include <cmath>
#include <ardour/location.h>
struct RecBoxInfo {
ArdourCanvas::SimpleRect* rectangle;
- jack_nframes_t start;
- jack_nframes_t length;
+ nframes_t start;
+ nframes_t length;
};
class PublicEditor;
void set_zoom_all();
int set_position (gdouble x, gdouble y);
- virtual int set_height (gdouble);
+ virtual int set_height (double);
virtual int set_samples_per_unit (gdouble spp);
gdouble get_samples_per_unit () { return _samples_per_unit; }
+ void set_layer_display (LayerDisplay);
+
ArdourCanvas::Item* canvas_item() { return canvas_group; }
enum ColorTarget {
Gdk::Color get_region_color () const { return region_color; }
void apply_color (Gdk::Color&, ColorTarget t);
- RegionView* find_view (const ARDOUR::Region&);
+ RegionView* find_view (boost::shared_ptr<const ARDOUR::Region>);
void foreach_regionview (sigc::slot<void,RegionView*> slot);
void set_selected_regionviews (RegionSelection&);
- void get_selectables (jack_nframes_t start, jack_nframes_t end, list<Selectable* >&);
+ void get_selectables (nframes_t start, nframes_t end, list<Selectable* >&);
void get_inverted_selectables (Selection&, list<Selectable* >& results);
- void add_region_view (ARDOUR::Region*);
+ void add_region_view (boost::shared_ptr<ARDOUR::Region>);
void region_layered (RegionView*);
sigc::signal<void,RegionView*> RegionViewAdded;
//private: (FIXME?)
void transport_changed();
- void rec_enable_changed(void* src = 0);
+ void rec_enable_changed();
void sess_rec_enable_changed();
virtual void setup_rec_box () = 0;
void update_rec_box ();
- virtual void update_rec_regions () = 0;
+ //virtual void update_rec_regions () = 0;
- virtual void add_region_view_internal (ARDOUR::Region*, bool wait_for_waves) = 0;
- virtual void remove_region_view (ARDOUR::Region* );
- void remove_rec_region (ARDOUR::Region*);
+ virtual RegionView* add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves) = 0;
+ virtual void remove_region_view (boost::weak_ptr<ARDOUR::Region> );
+ //void remove_rec_region (boost::shared_ptr<ARDOUR::Region>); (unused)
- void display_diskstream (ARDOUR::Diskstream* );
+ void display_diskstream (boost::shared_ptr<ARDOUR::Diskstream>);
virtual void undisplay_diskstream ();
virtual void redisplay_diskstream () = 0;
- void diskstream_changed (void* );
+ void diskstream_changed ();
- void playlist_state_changed (ARDOUR::Change);
- virtual void playlist_changed (ARDOUR::Diskstream* );
- virtual void playlist_modified ();
+ virtual void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>);
+ virtual void playlist_modified_weak (boost::weak_ptr<ARDOUR::Diskstream>);
+ virtual void playlist_modified (boost::shared_ptr<ARDOUR::Diskstream>);
virtual void color_handler (ColorID, uint32_t) = 0;
+ virtual void update_contents_y_position_and_height ();
RouteTimeAxisView& _trackview;
ArdourCanvas::Group* canvas_group;
sigc::connection screen_update_connection;
vector<RecBoxInfo> rec_rects;
- list<ARDOUR::Region* > rec_regions;
+ list< std::pair<boost::shared_ptr<ARDOUR::Region>,RegionView* > > rec_regions;
bool rec_updating;
bool rec_active;
bool use_rec_regions;
- /* XXX why are these different? */
- Gdk::Color region_color;
- uint32_t stream_base_color;
+ Gdk::Color region_color; ///< Contained region color
+ uint32_t stream_base_color; ///< Background color
vector<sigc::connection> playlist_connections;
sigc::connection playlist_change_connection;
+
+ int layers;
+ double height;
+ LayerDisplay layer_display;
+
+ list<sigc::connection> rec_data_ready_connections;
+ jack_nframes_t last_rec_data_frame;
};
#endif /* __ardour_streamview_h__ */