Merged with trunk R846
[ardour.git] / libs / ardour / ardour / track.h
index f16e9d29d93ce4a7d0a18daa459d0bf8e831ba98..2e628fa5869cbf9fffb360bce46e3002e61ef634 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef __ardour_track_h__
 #define __ardour_track_h__
 
+#include <boost/shared_ptr.hpp>
+
 #include <ardour/route.h>
 
 namespace ARDOUR {
@@ -48,9 +50,9 @@ class Track : public Route
 
        void toggle_monitor_input ();
 
-       bool can_record() const { return true; }
+       bool can_record();
 
-       Diskstream& diskstream() const { return *_diskstream; }
+       boost::shared_ptr<Diskstream> diskstream() const { return _diskstream; }
 
        virtual int use_diskstream (string name) = 0;
        virtual int use_diskstream (const PBD::ID& id) = 0;
@@ -95,12 +97,9 @@ class Track : public Route
 
        virtual XMLNode& state (bool full) = 0;
 
-       virtual void passthru_silence (jack_nframes_t start_frame, jack_nframes_t end_frame, 
-               jack_nframes_t nframes, jack_nframes_t offset, int declick, bool meter) = 0;
-
-       virtual uint32_t n_process_buffers () = 0;
+       virtual ChanCount n_process_buffers () = 0;
        
-       Diskstream *_diskstream;
+       boost::shared_ptr<Diskstream> _diskstream;
        MeterPoint  _saved_meter_point;
        TrackMode   _mode;