A few type fixes.
[ardour.git] / libs / ardour / ardour / track.h
index a40b82916b638d84f2742114cf36a4b854de8015..ff1b57950a4bfbd2662cad59364949b7c0a1932f 100644 (file)
@@ -29,6 +29,7 @@ namespace ARDOUR {
 class Session;
 class Playlist;
 class RouteGroup;
+class Source;
 class Region;
 class Diskstream;
 
@@ -59,6 +60,8 @@ class Track : public Route, public PublicDiskstream
         bool needs_butler() const { return _needs_butler; }
        void toggle_monitor_input ();
 
+       virtual DataType data_type () const = 0;
+
        bool can_record();
 
         virtual void use_new_diskstream () = 0;
@@ -89,7 +92,7 @@ class Track : public Route, public PublicDiskstream
        boost::shared_ptr<PBD::Controllable> rec_enable_control() { return _rec_enable_control; }
 
        bool record_enabled() const;
-       void set_record_enable (bool yn, void *src);
+       void set_record_enabled (bool yn, void *src);
 
        /* XXX: unfortunate that this is exposed */
        PBD::ID const & diskstream_id () const;
@@ -100,8 +103,9 @@ class Track : public Route, public PublicDiskstream
        boost::shared_ptr<Playlist> playlist ();
        void monitor_input (bool);
        bool destructive () const;
-       std::list<boost::shared_ptr<Region> > & last_capture_regions ();
+       std::list<boost::shared_ptr<Source> > & last_capture_sources ();
        void set_capture_offset ();
+        std::list<boost::shared_ptr<Source> > steal_write_sources();
        void reset_write_sources (bool, bool force = false);
        float playback_buffer_load () const;
        float capture_buffer_load () const;
@@ -110,17 +114,17 @@ class Track : public Route, public PublicDiskstream
        uint32_t read_data_count() const;
        uint32_t write_data_count() const;
        void set_pending_overwrite (bool);
-       int seek (nframes_t, bool complete_refill = false);
+       int seek (framepos_t, bool complete_refill = false);
        bool hidden () const;
-       int can_internal_playback_seek (nframes_t);
-       int internal_playback_seek (nframes_t);
+       int can_internal_playback_seek (framepos_t);
+       int internal_playback_seek (framepos_t);
        void non_realtime_input_change ();
-       void non_realtime_locate (nframes_t);
+       void non_realtime_locate (framepos_t);
        void non_realtime_set_speed ();
        int overwrite_existing_buffers ();
-       nframes_t get_captured_frames (uint32_t n = 0);
+       framecnt_t get_captured_frames (uint32_t n = 0) const;
        int set_loop (Location *);
-       void transport_looped (nframes_t);
+       void transport_looped (framepos_t);
        bool realtime_set_speed (double, bool);
        void transport_stopped_wallclock (struct tm &, time_t, bool);
        bool pending_overwrite () const;
@@ -128,16 +132,17 @@ class Track : public Route, public PublicDiskstream
         void prepare_to_stop (framepos_t);
        void set_slaved (bool);
        ChanCount n_channels ();
-       nframes_t get_capture_start_frame (uint32_t n = 0);
+       framepos_t get_capture_start_frame (uint32_t n = 0) const;
        AlignStyle alignment_style () const;
-       void set_record_enabled (bool);
-       nframes_t current_capture_start () const;
-       nframes_t current_capture_end () const;
+       framepos_t current_capture_start () const;
+       framepos_t current_capture_end () const;
        void playlist_modified ();
        int use_playlist (boost::shared_ptr<Playlist>);
        void set_align_style (AlignStyle);
        int use_copy_playlist ();
        int use_new_playlist ();
+        void adjust_playback_buffering ();
+        void adjust_capture_buffering ();
 
        PBD::Signal0<void> DiskstreamChanged;
        PBD::Signal0<void> FreezeChange;
@@ -182,8 +187,8 @@ class Track : public Route, public PublicDiskstream
        struct RecEnableControllable : public PBD::Controllable {
                RecEnableControllable (Track&);
 
-               void set_value (float);
-               float get_value (void) const;
+               void set_value (double);
+               double get_value (void) const;
 
                Track& track;
        };