X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Faudio_diskstream.h;h=0ab9231252d124bcbc473e4cb0314efc7becbbda;hb=2b9dc7b380bb4e40171067f42b4010970869a57d;hp=507b148d8253d69b7263df98c966918d194144e9;hpb=79f91c7a205d981d2b8cc15e32a6da02d8423065;p=ardour.git diff --git a/libs/ardour/ardour/audio_diskstream.h b/libs/ardour/ardour/audio_diskstream.h index 507b148d82..0ab9231252 100644 --- a/libs/ardour/ardour/audio_diskstream.h +++ b/libs/ardour/ardour/audio_diskstream.h @@ -19,7 +19,6 @@ #ifndef __ardour_audio_diskstream_h__ #define __ardour_audio_diskstream_h__ -#include #include #include @@ -29,6 +28,8 @@ #include +#include + #include "pbd/fastlog.h" #include "pbd/ringbufferNPT.h" #include "pbd/stateful.h" @@ -126,7 +127,7 @@ class AudioDiskstream : public Diskstream /* stateful */ XMLNode& get_state(void); - int set_state(const XMLNode& node, int version = 3000); + int set_state(const XMLNode& node, int version); void monitor_input (bool); @@ -175,14 +176,17 @@ class AudioDiskstream : public Diskstream protected: friend class AudioTrack; - int process (nframes_t transport_frame, nframes_t nframes, bool can_record, bool rec_monitors_input); + int process (nframes_t transport_frame, nframes_t nframes, bool can_record, bool rec_monitors_input, bool& need_butler); bool commit (nframes_t nframes); private: - struct ChannelInfo { + struct ChannelInfo : public boost::noncopyable { - ChannelInfo (nframes_t buffer_size, nframes_t speed_buffer_size, nframes_t wrap_buffer_size); + ChannelInfo (nframes_t playback_buffer_size, + nframes_t capture_buffer_size, + nframes_t speed_buffer_size, + nframes_t wrap_buffer_size); ~ChannelInfo (); Sample *playback_wrap_buffer; @@ -229,10 +233,10 @@ class AudioDiskstream : public Diskstream ChannelInfo* channel_info, int channel, bool reversed); void finish_capture (bool rec_monitors_input, boost::shared_ptr); - void transport_stopped (struct tm&, time_t, bool abort); + void transport_stopped_wallclock (struct tm&, time_t, bool abort); void transport_looped (nframes_t transport_frame); - void init (Diskstream::Flag); + void init (); void init_channel (ChannelInfo &chan); void destroy_channel (ChannelInfo &chan); @@ -246,7 +250,7 @@ class AudioDiskstream : public Diskstream int use_pending_capture_data (XMLNode& node); void get_input_sources (); - void check_record_status (nframes_t transport_frame, nframes_t nframes, bool can_record); + void prepare_record_status(nframes_t capture_start_frame); void set_align_style_from_io(); void setup_destructive_playlist (); void use_destructive_playlist ();