Fixes to bundle manager to make it vaguely usable.
[ardour.git] / libs / ardour / ardour / audio_track.h
index bca79b0d7dec88dadf4f2ff8d593e8b304bccf8a..48609271d7bad6e670d2c74e5cba56f6a267ab45 100644 (file)
@@ -15,7 +15,6 @@
     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__
@@ -37,40 +36,47 @@ class AudioTrack : public Track
        AudioTrack (Session&, const XMLNode&);
        ~AudioTrack ();
 
-       int roll (jack_nframes_t nframes, jack_nframes_t start_frame, jack_nframes_t end_frame, 
-               jack_nframes_t offset, int declick, bool can_record, bool rec_monitors_input);
+       int set_mode (TrackMode m); 
+       bool can_use_mode (TrackMode m, bool& bounce_required);
+
+       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 (jack_nframes_t nframes, jack_nframes_t start_frame, jack_nframes_t end_frame, 
-               jack_nframes_t offset, bool state_changing, 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 (jack_nframes_t nframes, jack_nframes_t start_frame, jack_nframes_t end_frame, 
-               jack_nframes_t offset, 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);
 
-       AudioDiskstream& audio_diskstream() const;
+       boost::shared_ptr<AudioDiskstream> audio_diskstream() const;
 
        int use_diskstream (string name);
        int use_diskstream (const PBD::ID& id);
        
-       int export_stuff (BufferSet& bufs, jack_nframes_t nframes, jack_nframes_t end_frame);
+       int export_stuff (BufferSet& bufs, nframes_t nframes, nframes_t end_frame);
 
        void freeze (InterThreadInfo&);
        void unfreeze ();
 
-       void bounce (InterThreadInfo&);
-       void bounce_range (jack_nframes_t start, jack_nframes_t end, InterThreadInfo&);
+       boost::shared_ptr<Region> bounce (InterThreadInfo&);
+       boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&);
 
        int set_state(const XMLNode& node);
 
   protected:
        XMLNode& state (bool full);
-
-       ChanCount n_process_buffers ();
        
+       int _set_state (const XMLNode&, bool call_base);
+
   private:
-       int  set_diskstream (AudioDiskstream&, void *);
+       int  set_diskstream (boost::shared_ptr<AudioDiskstream>, void *);
        int  deprecated_use_diskstream_connections ();
        void set_state_part_two ();
        void set_state_part_three ();
+
+       void catch_up_on_busses (ARDOUR::RouteList&);
+       void add_internal_send (boost::shared_ptr<ARDOUR::Route>);
+
 };
 
 } // namespace ARDOUR