class Session;
class Playlist;
class RouteGroup;
+class Source;
class Region;
class Diskstream;
bool needs_butler() const { return _needs_butler; }
void toggle_monitor_input ();
+ virtual DataType data_type () const = 0;
+
bool can_record();
virtual void use_new_diskstream () = 0;
boost::shared_ptr<PBD::Controllable> rec_enable_control() { return _rec_enable_control; }
bool record_enabled() const;
- void set_record_enable (bool yn, void *src);
+ void set_record_enabled (bool yn, void *src);
/* XXX: unfortunate that this is exposed */
PBD::ID const & diskstream_id () const;
boost::shared_ptr<Playlist> playlist ();
void monitor_input (bool);
bool destructive () const;
- std::list<boost::shared_ptr<Region> > & last_capture_regions ();
+ std::list<boost::shared_ptr<Source> > & last_capture_sources ();
void set_capture_offset ();
+ std::list<boost::shared_ptr<Source> > steal_write_sources();
void reset_write_sources (bool, bool force = false);
float playback_buffer_load () const;
float capture_buffer_load () const;
uint32_t read_data_count() const;
uint32_t write_data_count() const;
void set_pending_overwrite (bool);
- int seek (nframes_t, bool complete_refill = false);
+ int seek (framepos_t, bool complete_refill = false);
bool hidden () const;
- int can_internal_playback_seek (nframes_t);
- int internal_playback_seek (nframes_t);
+ int can_internal_playback_seek (framepos_t);
+ int internal_playback_seek (framepos_t);
void non_realtime_input_change ();
- void non_realtime_locate (nframes_t);
+ void non_realtime_locate (framepos_t);
void non_realtime_set_speed ();
int overwrite_existing_buffers ();
- nframes_t get_captured_frames (uint32_t n = 0);
+ framecnt_t get_captured_frames (uint32_t n = 0) const;
int set_loop (Location *);
- void transport_looped (nframes_t);
+ void transport_looped (framepos_t);
bool realtime_set_speed (double, bool);
void transport_stopped_wallclock (struct tm &, time_t, bool);
bool pending_overwrite () const;
void prepare_to_stop (framepos_t);
void set_slaved (bool);
ChanCount n_channels ();
- nframes_t get_capture_start_frame (uint32_t n = 0);
+ framepos_t get_capture_start_frame (uint32_t n = 0) const;
AlignStyle alignment_style () const;
- void set_record_enabled (bool);
- nframes_t current_capture_start () const;
- nframes_t current_capture_end () const;
+ framepos_t current_capture_start () const;
+ framepos_t current_capture_end () const;
void playlist_modified ();
int use_playlist (boost::shared_ptr<Playlist>);
void set_align_style (AlignStyle);
int use_copy_playlist ();
int use_new_playlist ();
+ void adjust_playback_buffering ();
+ void adjust_capture_buffering ();
PBD::Signal0<void> DiskstreamChanged;
PBD::Signal0<void> FreezeChange;
struct RecEnableControllable : public PBD::Controllable {
RecEnableControllable (Track&);
- void set_value (float);
- float get_value (void) const;
+ void set_value (double);
+ double get_value (void) const;
Track& track;
};