From f24be24b1b4d77c0091c4b8cdff4c35c93b7d5a3 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 19 Feb 2015 17:43:16 -0500 Subject: [PATCH] change Audio backend sample time methods to use a 64 bit timeline Conflicts: libs/ardour/ardour/audioengine.h --- libs/ardour/ardour/audio_backend.h | 4 ++-- libs/ardour/ardour/audioengine.h | 5 +++-- libs/ardour/ardour/port_engine.h | 2 +- libs/ardour/ardour/slave.h | 4 ++-- libs/ardour/audioengine.cc | 4 ++-- libs/ardour/slave.cc | 2 +- libs/backends/alsa/alsa_audiobackend.cc | 4 ++-- libs/backends/alsa/alsa_audiobackend.h | 6 +++--- libs/backends/dummy/dummy_audiobackend.cc | 4 ++-- libs/backends/dummy/dummy_audiobackend.h | 6 +++--- libs/backends/jack/jack_audiobackend.cc | 4 ++-- libs/backends/jack/jack_audiobackend.h | 4 ++-- libs/backends/wavesaudio/waves_audiobackend.cc | 6 +++--- libs/backends/wavesaudio/waves_audiobackend.h | 6 +++--- 14 files changed, 31 insertions(+), 30 deletions(-) diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h index a61e5757de..5c40b58fbb 100644 --- a/libs/ardour/ardour/audio_backend.h +++ b/libs/ardour/ardour/audio_backend.h @@ -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. diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index 5679d375aa..948cf8bb10 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -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; diff --git a/libs/ardour/ardour/port_engine.h b/libs/ardour/ardour/port_engine.h index 62996b7cdf..aaf72d812a 100644 --- a/libs/ardour/ardour/port_engine.h +++ b/libs/ardour/ardour/port_engine.h @@ -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; diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h index 6df10c3f9a..e7ef279773 100644 --- a/libs/ardour/ardour/slave.h +++ b/libs/ardour/ardour/slave.h @@ -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); diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index db0c9a695f..9f4d725aa5 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -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) { diff --git a/libs/ardour/slave.cc b/libs/ardour/slave.cc index c0678ce252..4fbb75f623 100644 --- a/libs/ardour/slave.cc +++ b/libs/ardour/slave.cc @@ -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(); diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc index a3524b45fb..52caa98db9 100644 --- a/libs/backends/alsa/alsa_audiobackend.cc +++ b/libs/backends/alsa/alsa_audiobackend.cc @@ -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; diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h index a1081141a8..26857aa46b 100644 --- a/libs/backends/alsa/alsa_audiobackend.h +++ b/libs/backends/alsa/alsa_audiobackend.h @@ -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 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 */ diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc index 6ba6a60bd8..8b2a314bed 100644 --- a/libs/backends/dummy/dummy_audiobackend.cc +++ b/libs/backends/dummy/dummy_audiobackend.cc @@ -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; diff --git a/libs/backends/dummy/dummy_audiobackend.h b/libs/backends/dummy/dummy_audiobackend.h index abc0ab5927..426d349c68 100644 --- a/libs/backends/dummy/dummy_audiobackend.h +++ b/libs/backends/dummy/dummy_audiobackend.h @@ -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 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; diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc index 428d3f3c18..905f7bd7e0 100644 --- a/libs/backends/jack/jack_audiobackend.cc +++ b/libs/backends/jack/jack_audiobackend.cc @@ -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); diff --git a/libs/backends/jack/jack_audiobackend.h b/libs/backends/jack/jack_audiobackend.h index 5a5aaaff63..a621cb21bd 100644 --- a/libs/backends/jack/jack_audiobackend.h +++ b/libs/backends/jack/jack_audiobackend.h @@ -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); diff --git a/libs/backends/wavesaudio/waves_audiobackend.cc b/libs/backends/wavesaudio/waves_audiobackend.cc index 744573c68f..12aad02064 100644 --- a/libs/backends/wavesaudio/waves_audiobackend.cc +++ b/libs/backends/wavesaudio/waves_audiobackend.cc @@ -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; diff --git a/libs/backends/wavesaudio/waves_audiobackend.h b/libs/backends/wavesaudio/waves_audiobackend.h index f8b8fd851e..5b84978767 100644 --- a/libs/backends/wavesaudio/waves_audiobackend.h +++ b/libs/backends/wavesaudio/waves_audiobackend.h @@ -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 ();