(audio driver) Pass is_perfcnt_enable boolean variable to audio

driver write function
This commit is contained in:
twinaphex 2017-01-25 17:30:34 +01:00
parent 3c67b2e547
commit e74853750b
26 changed files with 62 additions and 34 deletions

View File

@ -633,7 +633,8 @@ static bool audio_driver_flush(const int16_t *data, size_t samples)
}
if (current_audio->write(audio_driver_context_audio_data,
output_data, output_frames * output_size * 2) < 0)
output_data, output_frames * output_size * 2,
is_perfcnt_enable) < 0)
{
audio_driver_active = false;
return false;

View File

@ -49,7 +49,8 @@ typedef struct audio_driver
*
* Write samples to audio driver.
**/
ssize_t (*write)(void *data, const void *buf, size_t size);
ssize_t (*write)(void *data, const void *buf, size_t size,
bool is_perfcnt_enable);
/* Stops driver. */
bool (*stop)(void *data);

View File

@ -228,7 +228,8 @@ static bool audio_thread_use_float(void *data)
return thr->use_float;
}
static ssize_t audio_thread_write(void *data, const void *buf, size_t size)
static ssize_t audio_thread_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
ssize_t ret;
audio_thread_t *thr = (audio_thread_t*)data;
@ -236,7 +237,8 @@ static ssize_t audio_thread_write(void *data, const void *buf, size_t size)
if (!thr)
return 0;
ret = thr->driver->write(thr->driver_data, buf, size);
ret = thr->driver->write(thr->driver_data, buf, size,
is_perfcnt_enable);
if (ret < 0)
{

View File

@ -167,7 +167,8 @@ error:
return NULL;
}
static ssize_t alsa_write(void *data, const void *buf_, size_t size_)
static ssize_t alsa_write(void *data, const void *buf_, size_t size_,
bool is_perfcnt_enable)
{
alsa_t *alsa = (alsa_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;

View File

@ -219,7 +219,8 @@ static int check_pcm_status(void *data, int channel_type)
}
static ssize_t alsa_qsa_write(void *data, const void *buf, size_t size)
static ssize_t alsa_qsa_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
alsa_t *alsa = (alsa_t*)data;
snd_pcm_sframes_t written = 0;

View File

@ -243,7 +243,8 @@ error:
return NULL;
}
static ssize_t alsa_thread_write(void *data, const void *buf, size_t size)
static ssize_t alsa_thread_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;

View File

@ -332,7 +332,8 @@ error:
return NULL;
}
static ssize_t coreaudio_write(void *data, const void *buf_, size_t size)
static ssize_t coreaudio_write(void *data, const void *buf_, size_t size,
bool is_perfcnt_enable)
{
coreaudio_t *dev = (coreaudio_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;

View File

@ -162,7 +162,8 @@ static void ctr_csnd_audio_free(void *data)
free(ctr);
}
static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size)
static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
int i;
uint32_t samples_played = 0;
@ -177,7 +178,7 @@ static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size)
(void)current_tick;
performance_counter_init(ctraudio_f, "ctraudio_f");
performance_counter_start(ctraudio_f);
performance_counter_start_plus(is_perfcnt_enable, ctraudio_f);
ctr_csnd_audio_update_playpos(ctr);
@ -209,7 +210,7 @@ static ssize_t ctr_csnd_audio_write(void *data, const void *buf, size_t size)
GSPGPU_FlushDataCache(ctr->l, CTR_CSND_AUDIO_SIZE);
GSPGPU_FlushDataCache(ctr->r, CTR_CSND_AUDIO_SIZE);
performance_counter_stop(ctraudio_f);
performance_counter_stop_plus(is_perfcnt_enable, ctraudio_f);
return size;
}

View File

@ -93,7 +93,8 @@ static void ctr_dsp_audio_free(void *data)
ndspExit();
}
static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size)
static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
u32 pos;
static struct retro_perf_counter ctraudio_dsp_f = {0};
@ -117,7 +118,7 @@ static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size)
}
performance_counter_init(ctraudio_dsp_f, "ctraudio_dsp_f");
performance_counter_start(ctraudio_dsp_f);
performance_counter_start_plus(is_perfcnt_enable, ctraudio_dsp_f);
pos = ctr->pos << 2;
@ -140,7 +141,7 @@ static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size)
ctr->pos += size >> 2;
ctr->pos &= CTR_DSP_AUDIO_COUNT_MASK;
performance_counter_stop(ctraudio_dsp_f);
performance_counter_stop_plus(is_perfcnt_enable, ctraudio_dsp_f);
return size;
}

View File

@ -426,7 +426,8 @@ static void dsound_set_nonblock_state(void *data, bool state)
ds->nonblock = state;
}
static ssize_t dsound_write(void *data, const void *buf_, size_t size)
static ssize_t dsound_write(void *data, const void *buf_, size_t size,
bool is_perfcnt_enable)
{
size_t written = 0;
dsound_t *ds = (dsound_t*)data;

View File

@ -116,7 +116,8 @@ static INLINE void copy_swapped(uint32_t * restrict dst,
}while(--size);
}
static ssize_t gx_audio_write(void *data, const void *buf_, size_t size)
static ssize_t gx_audio_write(void *data, const void *buf_, size_t size,
bool is_perfcnt_enable)
{
size_t frames = size >> 2;
const uint32_t *buf = buf_;

View File

@ -292,7 +292,8 @@ static size_t write_buffer(jack_t *jd, const float *buf, size_t size)
return written * sizeof(float) * 2;
}
static ssize_t ja_write(void *data, const void *buf, size_t size)
static ssize_t ja_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
jack_t *jd = (jack_t*)data;

View File

@ -35,7 +35,8 @@ static void null_audio_free(void *data)
(void)data;
}
static ssize_t null_audio_write(void *data, const void *buf, size_t size)
static ssize_t null_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
(void)data;
(void)buf;

View File

@ -173,7 +173,8 @@ static size_t al_fill_internal_buf(al_t *al, const void *buf, size_t size)
return read_size;
}
static ssize_t al_write(void *data, const void *buf_, size_t size)
static ssize_t al_write(void *data, const void *buf_, size_t size,
bool is_perfcnt_enable)
{
al_t *al = (al_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;

View File

@ -230,7 +230,8 @@ static bool sl_start(void *data, bool is_shutdown)
}
static ssize_t sl_write(void *data, const void *buf_, size_t size)
static ssize_t sl_write(void *data, const void *buf_, size_t size,
bool is_perfcnt_enable)
{
sl_t *sl = (sl_t*)data;
size_t written = 0;

View File

@ -97,7 +97,8 @@ error:
return NULL;
}
static ssize_t oss_write(void *data, const void *buf, size_t size)
static ssize_t oss_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
ssize_t ret;
int *fd = (int*)data;

View File

@ -146,7 +146,8 @@ static void *ps3_audio_init(const char *device,
return data;
}
static ssize_t ps3_audio_write(void *data, const void *buf, size_t size)
static ssize_t ps3_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
ps3_audio_t *aud = data;

View File

@ -184,7 +184,8 @@ static void psp_audio_free(void *data)
free(psp);
}
static ssize_t psp_audio_write(void *data, const void *buf, size_t size)
static ssize_t psp_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
psp_audio_t* psp = (psp_audio_t*)data;
uint16_t write_pos = psp->write_pos;

View File

@ -236,7 +236,8 @@ error:
return NULL;
}
static ssize_t pulse_write(void *data, const void *buf_, size_t size)
static ssize_t pulse_write(void *data, const void *buf_, size_t size,
bool is_perfcnt_enable)
{
pa_t *pa = (pa_t*)data;
const uint8_t *buf = (const uint8_t*)buf_;

View File

@ -58,7 +58,8 @@ static void *ra_init(const char *device, unsigned rate, unsigned latency,
return roar;
}
static ssize_t ra_write(void *data, const void *buf, size_t size)
static ssize_t ra_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
int err;
size_t written = 0;
@ -72,7 +73,8 @@ static ssize_t ra_write(void *data, const void *buf, size_t size)
ssize_t rc;
size_t write_amt = size - written;
if ((rc = roar_vs_write(roar->vss, (const char*)buf + written, write_amt, &err)) < (ssize_t)write_amt)
if ((rc = roar_vs_write(roar->vss,
(const char*)buf + written, write_amt, &err)) < (ssize_t)write_amt)
{
if (roar->nonblocking)
return rc;

View File

@ -102,7 +102,8 @@ error:
return NULL;
}
static ssize_t rs_write(void *data, const void *buf, size_t size)
static ssize_t rs_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
rsd_t *rsd = (rsd_t*)data;

View File

@ -51,7 +51,8 @@ static void *rwebaudio_init(const char *device, unsigned rate, unsigned latency,
return data;
}
static ssize_t rwebaudio_write(void *data, const void *buf, size_t size)
static ssize_t rwebaudio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
(void)data;
return RWebAudioWrite(buf, size);

View File

@ -137,7 +137,8 @@ static void *sdl_audio_init(const char *device,
return sdl;
}
static ssize_t sdl_audio_write(void *data, const void *buf, size_t size)
static ssize_t sdl_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
ssize_t ret = 0;
sdl_audio_t *sdl = (sdl_audio_t*)data;

View File

@ -192,7 +192,8 @@ static bool ax_audio_start(void* data, bool is_shutdown)
return true;
}
static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
static ssize_t ax_audio_write(void* data, const void* buf, size_t size,
bool is_perfcnt_enable)
{
int i;
static struct retro_perf_counter ax_audio_write_perf = {0};
@ -206,7 +207,7 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
/* Measure copy performance from here */
performance_counter_init(ax_audio_write_perf, "ax_audio_write");
performance_counter_start(ax_audio_write_perf);
performance_counter_start_plus(is_perfcnt_enable, ax_audio_write_perf);
if(count > AX_AUDIO_MAX_FREE)
count = AX_AUDIO_MAX_FREE;
@ -286,7 +287,7 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
ax_audio_start(ax, false);
/* Done copying new data */
performance_counter_stop(ax_audio_write_perf);
performance_counter_stop_plus(is_perfcnt_enable, ax_audio_write_perf);
/* return what was actually copied */
return (count << 2);

View File

@ -201,7 +201,8 @@ static size_t xaudio2_write_avail(xaudio2_t *handle)
return handle->bufsize * (MAX_BUFFERS - handle->buffers - 1);
}
static size_t xaudio2_write(xaudio2_t *handle, const void *buf, size_t bytes_)
static size_t xaudio2_write(xaudio2_t *handle, const void *buf, size_t bytes_,
bool is_perfcnt_enable)
{
unsigned bytes = bytes_;
const uint8_t *buffer = (const uint8_t*)buf;

View File

@ -57,7 +57,8 @@ static INLINE uint32_t bswap_32(uint32_t val)
((val >> 8) & 0xff00) | ((val << 8) & 0xff0000);
}
static ssize_t xenon360_audio_write(void *data, const void *buf, size_t size)
static ssize_t xenon360_audio_write(void *data, const void *buf, size_t size,
bool is_perfcnt_enable)
{
size_t written = 0, i;
const uint32_t *in_buf = buf;