* and after the method call they should
*
* Session::follow_slave will then try to follow the given
- * <emph>position</emph> using a delay locked loop (DLL),
+ * <em>position</em> using a delay locked loop (DLL),
* starting with the first given transport speed.
* If the values of speed and position contradict each other,
* ARDOUR will always follow the position and disregard the speed.
* @param position - The transport position requested
* @return - The return value is currently ignored (see Session::follow_slave)
*/
- virtual bool speed_and_position (double& speed, nframes64_t& position) = 0;
+ virtual bool speed_and_position (double& speed, framepos_t& position) = 0;
/**
* reports to ARDOUR whether the Slave is currently synced to its external
/**
* @return the number of frames that this slave wants to seek ahead. Relevant
- * only if @func requires_seekahead() returns true.
+ * only if requires_seekahead() returns true.
*/
- virtual nframes64_t seekahead_distance() const { return 0; }
+ virtual framepos_t seekahead_distance() const { return 0; }
/**
* @return - when returning true, ARDOUR will use transport speed 1.0 no matter what
virtual ~ISlaveSessionProxy() {}
virtual TempoMap& tempo_map() const { return *((TempoMap *) 0); }
virtual nframes_t frame_rate() const { return 0; }
- virtual nframes64_t audible_frame () const { return 0; }
- virtual nframes64_t transport_frame () const { return 0; }
+ virtual framepos_t audible_frame () const { return 0; }
+ virtual framepos_t transport_frame () const { return 0; }
virtual nframes_t frames_since_cycle_start () const { return 0; }
- virtual nframes64_t frame_time () const { return 0; }
+ virtual framepos_t frame_time () const { return 0; }
- virtual void request_locate (nframes64_t /*frame*/, bool with_roll = false) {
+ virtual void request_locate (framepos_t /*frame*/, bool with_roll = false) {
(void) with_roll;
}
virtual void request_transport_speed (double /*speed*/) {}
TempoMap& tempo_map() const;
nframes_t frame_rate() const;
- nframes64_t audible_frame () const;
- nframes64_t transport_frame () const;
+ framepos_t audible_frame () const;
+ framepos_t transport_frame () const;
nframes_t frames_since_cycle_start () const;
- nframes64_t frame_time () const;
+ framepos_t frame_time () const;
- void request_locate (nframes64_t frame, bool with_roll = false);
+ void request_locate (framepos_t frame, bool with_roll = false);
void request_transport_speed (double speed);
};
struct SafeTime {
volatile int guard1;
- nframes64_t position;
- nframes64_t timestamp;
+ framepos_t position;
+ framepos_t timestamp;
double speed;
volatile int guard2;
~MTC_Slave ();
void rebind (MIDI::Port&);
- bool speed_and_position (double&, nframes64_t&);
+ bool speed_and_position (double&, framepos_t&);
bool locked() const;
bool ok() const;
nframes_t resolution() const;
bool requires_seekahead () const { return true; }
- nframes64_t seekahead_distance() const;
+ framepos_t seekahead_distance() const;
bool give_slave_full_control_over_transport_speed() const;
private:
static const int frame_tolerance;
SafeTime current;
- nframes_t mtc_frame; /* current time */
- nframes_t last_inbound_frame; /* when we got it; audio clocked */
+ framepos_t mtc_frame; /* current time */
+ framepos_t last_inbound_frame; /* when we got it; audio clocked */
MIDI::byte last_mtc_fps_byte;
- nframes64_t window_begin;
- nframes64_t window_end;
- nframes64_t last_mtc_timestamp;
- nframes64_t last_mtc_frame;
+ framepos_t window_begin;
+ framepos_t window_end;
+ framepos_t last_mtc_timestamp;
+ framepos_t last_mtc_frame;
bool did_reset_tc_format;
TimecodeFormat saved_tc_format;
size_t speed_accumulator_size;
void update_mtc_time (const MIDI::byte *, bool, nframes_t);
void update_mtc_status (MIDI::MTC_Status);
void read_current (SafeTime *) const;
- void reset_window (nframes64_t);
- bool outside_window (nframes64_t) const;
+ void reset_window (framepos_t);
+ bool outside_window (framepos_t) const;
void process_apparent_speed (double);
};
~MIDIClock_Slave ();
void rebind (MIDI::Port&);
- bool speed_and_position (double&, nframes64_t&);
+ bool speed_and_position (double&, framepos_t&);
bool locked() const;
bool ok() const;
double b, c, omega;
void reset ();
- void start (MIDI::Parser& parser, nframes64_t timestamp);
- void contineu (MIDI::Parser& parser, nframes64_t timestamp);
- void stop (MIDI::Parser& parser, nframes64_t timestamp);
+ void start (MIDI::Parser& parser, framepos_t timestamp);
+ void contineu (MIDI::Parser& parser, framepos_t timestamp);
+ void stop (MIDI::Parser& parser, framepos_t timestamp);
void position (MIDI::Parser& parser, MIDI::byte* message, size_t size);
// we can't use continue because it is a C++ keyword
- void calculate_one_ppqn_in_frames_at(nframes64_t time);
- nframes64_t calculate_song_position(uint16_t song_position_in_sixteenth_notes);
+ void calculate_one_ppqn_in_frames_at(framepos_t time);
+ framepos_t calculate_song_position(uint16_t song_position_in_sixteenth_notes);
void calculate_filter_coefficients();
- void update_midi_clock (MIDI::Parser& parser, nframes64_t timestamp);
+ void update_midi_clock (MIDI::Parser& parser, framepos_t timestamp);
void read_current (SafeTime *) const;
- bool stop_if_no_more_clock_events(nframes64_t& pos, nframes64_t now);
+ bool stop_if_no_more_clock_events(framepos_t& pos, framepos_t now);
/// whether transport should be rolling
bool _started;
JACK_Slave (jack_client_t*);
~JACK_Slave ();
- bool speed_and_position (double& speed, nframes64_t& pos);
+ bool speed_and_position (double& speed, framepos_t& pos);
bool starting() const { return _starting; }
bool locked() const;