#define __ardour_streamview_h__
#include <list>
-#include <map>
#include <cmath>
#include <ardour/location.h>
#include "enums.h"
#include "simplerect.h"
#include "canvas.h"
-#include "color.h"
namespace Gdk {
class Color;
public:
virtual ~StreamView ();
- RouteTimeAxisView& trackview() { return _trackview; }
+ RouteTimeAxisView& trackview() { return _trackview; }
+ const RouteTimeAxisView& trackview() const { return _trackview; }
void attach ();
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; }
- ArdourCanvas::Item* canvas_item() { return canvas_group; }
+ void set_layer_display (LayerDisplay);
+
+ ArdourCanvas::Group* canvas_item() { return canvas_group; }
enum ColorTarget {
RegionColor,
void add_region_view (boost::shared_ptr<ARDOUR::Region>);
void region_layered (RegionView*);
+ virtual void update_contents_y_position_and_height ();
+
+ virtual void redisplay_diskstream () = 0;
sigc::signal<void,RegionView*> RegionViewAdded;
protected:
- StreamView (RouteTimeAxisView&);
+ StreamView (RouteTimeAxisView&, ArdourCanvas::Group* group = NULL);
//private: (FIXME?)
void transport_changed();
+ void transport_looped();
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 (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves) = 0;
+ virtual RegionView* add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves, bool recording = false) = 0;
virtual void remove_region_view (boost::weak_ptr<ARDOUR::Region> );
//void remove_rec_region (boost::shared_ptr<ARDOUR::Region>); (unused)
void display_diskstream (boost::shared_ptr<ARDOUR::Diskstream>);
virtual void undisplay_diskstream ();
- virtual void redisplay_diskstream () = 0;
void diskstream_changed ();
virtual void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>);
- virtual void playlist_modified ();
+ 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 color_handler () = 0;
RouteTimeAxisView& _trackview;
+ bool owns_canvas_group;
ArdourCanvas::Group* canvas_group;
ArdourCanvas::SimpleRect* canvas_rect; /* frame around the whole thing */
sigc::connection screen_update_connection;
vector<RecBoxInfo> rec_rects;
- list<boost::shared_ptr<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;
vector<sigc::connection> playlist_connections;
sigc::connection playlist_change_connection;
-
- list<sigc::connection> rec_data_ready_connections;
- jack_nframes_t last_rec_data_frame;
- map<boost::shared_ptr<ARDOUR::Source>, bool> rec_data_ready_map;
+
+ 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__ */