change Audio backend sample time methods to use a 64 bit timeline

Conflicts:
	libs/ardour/ardour/audioengine.h
This commit is contained in:
Paul Davis 2015-02-19 17:43:16 -05:00
parent 498d97f78c
commit f24be24b1b
14 changed files with 31 additions and 30 deletions

View file

@ -469,12 +469,12 @@ class LIBARDOUR_API AudioBackend : public PortEngine {
*
* Can be called from any thread.
*/
virtual pframes_t sample_time () = 0;
virtual framepos_t sample_time () = 0;
/** Return the time according to the sample clock in use when the most
* recent buffer process cycle began. Can be called from any thread.
*/
virtual pframes_t sample_time_at_cycle_start () = 0;
virtual framepos_t sample_time_at_cycle_start () = 0;
/** Return the time since the current buffer process cycle started,
* in samples, according to the sample clock in use.

View file

@ -79,6 +79,7 @@ public:
ProcessThread* main_thread() const { return _main_thread; }
<<<<<<< HEAD
/* START BACKEND PROXY API
*
* See audio_backend.h for full documentation and semantics. These wrappers
@ -98,8 +99,8 @@ public:
pframes_t samples_per_cycle () const;
int usecs_per_cycle () const;
size_t raw_buffer_size (DataType t);
pframes_t sample_time ();
pframes_t sample_time_at_cycle_start ();
framepos_t sample_time ();
framepos_t sample_time_at_cycle_start ();
pframes_t samples_since_cycle_start ();
bool get_sync_offset (pframes_t& offset) const;

View file

@ -336,7 +336,7 @@ class LIBARDOUR_API PortEngine {
*
* XXX to be removed after some more design cleanup.
*/
virtual pframes_t sample_time_at_cycle_start () = 0;
virtual framepos_t sample_time_at_cycle_start () = 0;
protected:
PortManager& manager;

View file

@ -189,7 +189,7 @@ class LIBARDOUR_API ISlaveSessionProxy {
virtual framepos_t audible_frame () const { return 0; }
virtual framepos_t transport_frame () const { return 0; }
virtual pframes_t frames_since_cycle_start () const { return 0; }
virtual pframes_t sample_time_at_cycle_start() const { return 0; }
virtual framepos_t sample_time_at_cycle_start() const { return 0; }
virtual framepos_t frame_time () const { return 0; }
virtual void request_locate (framepos_t /*frame*/, bool with_roll = false) {
@ -212,7 +212,7 @@ class LIBARDOUR_API SlaveSessionProxy : public ISlaveSessionProxy {
framepos_t audible_frame () const;
framepos_t transport_frame () const;
pframes_t frames_since_cycle_start () const;
pframes_t sample_time_at_cycle_start() const;
framepos_t sample_time_at_cycle_start() const;
framepos_t frame_time () const;
void request_locate (framepos_t frame, bool with_roll = false);

View file

@ -984,7 +984,7 @@ AudioEngine::raw_buffer_size (DataType t)
return _backend->raw_buffer_size (t);
}
pframes_t
framepos_t
AudioEngine::sample_time ()
{
if (!_backend) {
@ -993,7 +993,7 @@ AudioEngine::sample_time ()
return _backend->sample_time ();
}
pframes_t
framepos_t
AudioEngine::sample_time_at_cycle_start ()
{
if (!_backend) {

View file

@ -59,7 +59,7 @@ SlaveSessionProxy::frames_since_cycle_start() const
return session.engine().samples_since_cycle_start();
}
pframes_t
framepos_t
SlaveSessionProxy::sample_time_at_cycle_start() const
{
return session.engine().sample_time_at_cycle_start();

View file

@ -690,13 +690,13 @@ AlsaAudioBackend::raw_buffer_size (DataType t)
}
/* Process time */
pframes_t
framepos_t
AlsaAudioBackend::sample_time ()
{
return _processed_samples;
}
pframes_t
framepos_t
AlsaAudioBackend::sample_time_at_cycle_start ()
{
return _processed_samples;

View file

@ -223,8 +223,8 @@ class AlsaAudioBackend : public AudioBackend {
size_t raw_buffer_size (DataType t);
/* Process time */
pframes_t sample_time ();
pframes_t sample_time_at_cycle_start ();
framepos_t sample_time ();
framepos_t sample_time_at_cycle_start ();
pframes_t samples_since_cycle_start ();
int create_process_thread (boost::function<void()> func);
@ -348,7 +348,7 @@ class AlsaAudioBackend : public AudioBackend {
/* processing */
float _dsp_load;
uint64_t _processed_samples;
framecnt_t _processed_samples;
pthread_t _main_thread;
/* process threads */

View file

@ -434,13 +434,13 @@ DummyAudioBackend::raw_buffer_size (DataType t)
}
/* Process time */
pframes_t
framepos_t
DummyAudioBackend::sample_time ()
{
return _processed_samples;
}
pframes_t
framepos_t
DummyAudioBackend::sample_time_at_cycle_start ()
{
return _processed_samples;

View file

@ -260,8 +260,8 @@ class DummyAudioBackend : public AudioBackend {
size_t raw_buffer_size (DataType t);
/* Process time */
pframes_t sample_time ();
pframes_t sample_time_at_cycle_start ();
framepos_t sample_time ();
framepos_t sample_time_at_cycle_start ();
pframes_t samples_since_cycle_start ();
int create_process_thread (boost::function<void()> func);
@ -358,7 +358,7 @@ class DummyAudioBackend : public AudioBackend {
uint32_t _systemic_input_latency;
uint32_t _systemic_output_latency;
uint64_t _processed_samples;
framecnt_t _processed_samples;
pthread_t _main_thread;

View file

@ -663,14 +663,14 @@ JACKAudioBackend::get_sync_offset (pframes_t& offset) const
return false;
}
pframes_t
framepos_t
JACKAudioBackend::sample_time ()
{
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0);
return jack_frame_time (_priv_jack);
}
pframes_t
framepos_t
JACKAudioBackend::sample_time_at_cycle_start ()
{
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0);

View file

@ -98,8 +98,8 @@ class JACKAudioBackend : public AudioBackend {
float dsp_load() const;
pframes_t sample_time ();
pframes_t sample_time_at_cycle_start ();
framepos_t sample_time ();
framepos_t sample_time_at_cycle_start ();
pframes_t samples_since_cycle_start ();
size_t raw_buffer_size (DataType t);

View file

@ -714,7 +714,7 @@ void
WavesAudioBackend::_audio_device_callback (const float* input_buffer,
float* output_buffer,
unsigned long nframes,
pframes_t sample_time,
framepos_t sample_time,
uint64_t cycle_start_time_nanos)
{
uint64_t dsp_start_time_nanos = __get_time_nanos();
@ -1000,7 +1000,7 @@ WavesAudioBackend::raw_buffer_size (DataType data_type)
}
pframes_t
framepos_t
WavesAudioBackend::sample_time ()
{
// WARNING: This is approximate calculation. Implementation of accurate calculation is pending.
@ -1027,7 +1027,7 @@ WavesAudioBackend::__get_time_nanos ()
}
pframes_t
framepos_t
WavesAudioBackend::sample_time_at_cycle_start ()
{
// COMMENTED FREQUENT DBG LOGS */ std::cout << "WavesAudioBackend::sample_time_at_cycle_start (): " << _sample_time_at_cycle_start << std::endl;

View file

@ -195,9 +195,9 @@ class WavesMidiPort;
virtual size_t raw_buffer_size (DataType data_type);
virtual pframes_t sample_time ();
virtual framepos_t sample_time ();
virtual pframes_t sample_time_at_cycle_start ();
virtual framepos_t sample_time_at_cycle_start ();
virtual pframes_t samples_since_cycle_start ();
@ -343,7 +343,7 @@ class WavesMidiPort;
void _audio_device_callback (const float* input_audio_buffer,
float* output_buffer,
unsigned long nframes,
pframes_t sample_time,
framepos_t sample_time,
uint64_t cycle_start_time_nanos);
void _changed_midi_devices ();