X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Faudio_track.h;h=ee25837481b24dc8eb547d86d997b6e7d70f210f;hb=6bd583803ea1daf19a1c088766122b5cdf340171;hp=a074732c39aebf9ffe822a4cf4aace0ab8089360;hpb=93c7aeba048f19df5abee5e4325ef8b0ef62c279;p=ardour.git diff --git a/libs/ardour/ardour/audio_track.h b/libs/ardour/ardour/audio_track.h index a074732c39..ee25837481 100644 --- a/libs/ardour/ardour/audio_track.h +++ b/libs/ardour/ardour/audio_track.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2006 Paul Davis + Copyright (C) 2002-2006 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,63 +15,47 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_audio_track_h__ #define __ardour_audio_track_h__ -#include +#include "ardour/interthread_info.h" +#include "ardour/track.h" namespace ARDOUR { class Session; -class AudioDiskstream; class AudioPlaylist; class RouteGroup; +class AudioFileSource; -class AudioTrack : public Track +class LIBARDOUR_API AudioTrack : public Track { public: - AudioTrack (Session&, string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal); - AudioTrack (Session&, const XMLNode&); + AudioTrack (Session&, std::string name, TrackMode m = Normal); ~AudioTrack (); - int roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, - nframes_t offset, int declick, bool can_record, bool rec_monitors_input); - - int no_roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, - nframes_t offset, bool state_changing, bool can_record, bool rec_monitors_input); - - int silent_roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, - nframes_t offset, bool can_record, bool rec_monitors_input); + MonitorState get_auto_monitoring_state () const; - boost::shared_ptr audio_diskstream() const; - - int use_diskstream (string name); - int use_diskstream (const PBD::ID& id); - - int export_stuff (vector& buffers, uint32_t nbufs, nframes_t nframes, nframes_t end_frame); - - void freeze (InterThreadInfo&); + void freeze_me (InterThreadInfo&); void unfreeze (); - void bounce (InterThreadInfo&); - void bounce_range (nframes_t start, nframes_t end, InterThreadInfo&); + bool bounceable (boost::shared_ptr, bool include_endpoint) const; + boost::shared_ptr bounce (InterThreadInfo&); + boost::shared_ptr bounce_range (samplepos_t start, samplepos_t end, InterThreadInfo&, + boost::shared_ptr endpoint, bool include_endpoint); + int export_stuff (BufferSet& bufs, samplepos_t start_sample, samplecnt_t nframes, + boost::shared_ptr endpoint, bool include_endpoint, bool for_export, bool for_freeze); - int set_state(const XMLNode& node); + int set_state (const XMLNode&, int version); - protected: - XMLNode& state (bool full); + boost::shared_ptr write_source (uint32_t n = 0); - void passthru_silence (nframes_t start_frame, nframes_t end_frame, - nframes_t nframes, nframes_t offset, int declick, - bool meter); + protected: + XMLNode& state (bool save_template); - uint32_t n_process_buffers (); - private: - int set_diskstream (boost::shared_ptr, void *); int deprecated_use_diskstream_connections (); void set_state_part_two (); void set_state_part_three ();