along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: diskstream.h 579 2006-06-12 19:56:37Z essej $
*/
#ifndef __ardour_diskstream_h__
class Playlist;
class IO;
- class Diskstream : public PBD::StatefulDestructible
+class Diskstream : public PBD::StatefulDestructible
{
public:
enum Flag {
virtual float playback_buffer_load() const = 0;
virtual float capture_buffer_load() const = 0;
- void set_flag (Flag f) { _flags |= f; }
- void unset_flag (Flag f) { _flags &= ~f; }
+ void set_flag (Flag f) { _flags = Flag (_flags | f); }
+ void unset_flag (Flag f) { _flags = Flag (_flags & ~f); }
AlignStyle alignment_style() const { return _alignment_style; }
void set_align_style (AlignStyle);
nframes_t get_capture_start_frame (uint32_t n=0);
nframes_t get_captured_frames (uint32_t n=0);
- uint32_t n_channels() { return _n_channels; }
+ ChanCount n_channels() { return _n_channels; }
static nframes_t disk_io_frames() { return disk_io_chunk_frames; }
static void set_disk_io_chunk_frames (uint32_t n) { disk_io_chunk_frames = n; }
virtual XMLNode& get_state(void) = 0;
virtual int set_state(const XMLNode& node) = 0;
- // FIXME: makes sense for all diskstream types?
virtual void monitor_input (bool) {}
nframes_t capture_offset() const { return _capture_offset; }
/** For non-butler contexts (allocates temporary working buffers) */
virtual int do_refill_with_alloc() = 0;
-
/* XXX fix this redundancy ... */
virtual void playlist_modified ();
virtual void playlist_deleted (boost::weak_ptr<Playlist>);
- virtual void finish_capture (bool rec_monitors_input) = 0;
virtual void transport_stopped (struct tm&, time_t, bool abort) = 0;
struct CaptureInfo {
virtual void get_input_sources () = 0;
virtual void check_record_status (nframes_t transport_frame, nframes_t nframes, bool can_record) = 0;
virtual void set_align_style_from_io() {}
- virtual void setup_destructive_playlist () = 0;
- virtual void use_destructive_playlist () = 0;
+ virtual void setup_destructive_playlist () {}
+ virtual void use_destructive_playlist () {}
static nframes_t disk_io_chunk_frames;
- vector<CaptureInfo*> capture_info;
+ std::vector<CaptureInfo*> capture_info;
Glib::Mutex capture_info_lock;
uint32_t i_am_the_modifier;
string _name;
ARDOUR::Session& _session;
ARDOUR::IO* _io;
- uint32_t _n_channels;
+ ChanCount _n_channels;
boost::shared_ptr<Playlist> _playlist;
nframes_t file_frame;
nframes_t playback_sample;
nframes_t playback_distance;
+ bool commit_should_unlock;
uint32_t _read_data_count;
uint32_t _write_data_count;
sigc::connection plmod_connection;
sigc::connection plgone_connection;
- unsigned char _flags;
+ Flag _flags;
};
}; /* namespace ARDOUR */