mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-11 09:06:33 +01:00
adding DSP stats to coreaudio backend (uncompiled)
This commit is contained in:
parent
995137aeb3
commit
c7bed1320e
3 changed files with 16 additions and 5 deletions
|
|
@ -548,7 +548,7 @@ CoreAudioBackend::_start (bool for_latency_measurement)
|
||||||
_pcmio->set_buffer_size_callback (buffer_size_callback_ptr, this);
|
_pcmio->set_buffer_size_callback (buffer_size_callback_ptr, this);
|
||||||
_pcmio->set_sample_rate_callback (sample_rate_callback_ptr, this);
|
_pcmio->set_sample_rate_callback (sample_rate_callback_ptr, this);
|
||||||
|
|
||||||
_pcmio->pcm_start (device1, device2, _samplerate, _samples_per_period, process_callback_ptr, this);
|
_pcmio->pcm_start (device1, device2, _samplerate, _samples_per_period, process_callback_ptr, this, dsp_stats[AudioBackend::DeviceWait]);
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
printf("STATE: %d\n", _pcmio->state ());
|
printf("STATE: %d\n", _pcmio->state ());
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1366,6 +1366,7 @@ CoreAudioBackend::process_callback (const uint32_t n_samples, const uint64_t hos
|
||||||
{
|
{
|
||||||
uint32_t i = 0;
|
uint32_t i = 0;
|
||||||
uint64_t clock1;
|
uint64_t clock1;
|
||||||
|
PBD::TimerRAII tr (dsp_stats[RunLoop]);
|
||||||
|
|
||||||
_active_ca = true;
|
_active_ca = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -794,7 +794,8 @@ int
|
||||||
CoreAudioPCM::pcm_start (
|
CoreAudioPCM::pcm_start (
|
||||||
uint32_t device_id_in, uint32_t device_id_out,
|
uint32_t device_id_in, uint32_t device_id_out,
|
||||||
uint32_t sample_rate, uint32_t samples_per_period,
|
uint32_t sample_rate, uint32_t samples_per_period,
|
||||||
int (process_callback (void*, const uint32_t, const uint64_t)), void *process_arg)
|
int (process_callback (void*, const uint32_t, const uint64_t)), void *process_arg,
|
||||||
|
PBD::Timing& dsp_timer)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(_device_ids);
|
assert(_device_ids);
|
||||||
|
|
@ -812,6 +813,7 @@ CoreAudioPCM::pcm_start (
|
||||||
_process_arg = process_arg;
|
_process_arg = process_arg;
|
||||||
_samples_per_period = samples_per_period;
|
_samples_per_period = samples_per_period;
|
||||||
_cur_samples_per_period = 0;
|
_cur_samples_per_period = 0;
|
||||||
|
_dsp_timer = &dsp_timer;
|
||||||
_active_device_id = 0;
|
_active_device_id = 0;
|
||||||
_capture_channels = 0;
|
_capture_channels = 0;
|
||||||
_playback_channels = 0;
|
_playback_channels = 0;
|
||||||
|
|
@ -1119,6 +1121,7 @@ CoreAudioPCM::render_callback (
|
||||||
UInt32 inNumberSamples,
|
UInt32 inNumberSamples,
|
||||||
AudioBufferList* ioData)
|
AudioBufferList* ioData)
|
||||||
{
|
{
|
||||||
|
PBD::WaitTimerRAII tr (*_dsp_timer);
|
||||||
OSStatus retVal = kAudioHardwareNoError;
|
OSStatus retVal = kAudioHardwareNoError;
|
||||||
|
|
||||||
if (_samples_per_period < inNumberSamples) {
|
if (_samples_per_period < inNumberSamples) {
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,10 @@
|
||||||
#define AUHAL_INPUT_ELEMENT 1
|
#define AUHAL_INPUT_ELEMENT 1
|
||||||
|
|
||||||
|
|
||||||
|
namespace PBD {
|
||||||
|
class Timing;
|
||||||
|
}
|
||||||
|
|
||||||
namespace ARDOUR {
|
namespace ARDOUR {
|
||||||
|
|
||||||
class CoreAudioPCM {
|
class CoreAudioPCM {
|
||||||
|
|
@ -78,6 +82,7 @@ public:
|
||||||
uint32_t samples_per_period,
|
uint32_t samples_per_period,
|
||||||
int (process_callback (void*, const uint32_t, const uint64_t)),
|
int (process_callback (void*, const uint32_t, const uint64_t)),
|
||||||
void * process_arg
|
void * process_arg
|
||||||
|
PBD::Timing& dsp_timer,
|
||||||
);
|
);
|
||||||
|
|
||||||
void set_error_callback (
|
void set_error_callback (
|
||||||
|
|
@ -174,6 +179,8 @@ private:
|
||||||
int (* _process_callback) (void*, const uint32_t, const uint64_t);
|
int (* _process_callback) (void*, const uint32_t, const uint64_t);
|
||||||
void * _process_arg;
|
void * _process_arg;
|
||||||
|
|
||||||
|
PBD::Timing* _dsp_timer;
|
||||||
|
|
||||||
void (* _error_callback) (void*);
|
void (* _error_callback) (void*);
|
||||||
void * _error_arg;
|
void * _error_arg;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue