Update recorded MIDI regions as notes arrive. Fixes one cause of infinite note-lengt...
[ardour.git] / libs / ardour / ardour / track.h
index b3d69e440333a29ebc7e6bacb7fde54de9a69824..ff1b57950a4bfbd2662cad59364949b7c0a1932f 100644 (file)
@@ -60,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;
@@ -112,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;
@@ -130,10 +132,10 @@ 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;
-       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);
@@ -185,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;
        };