mirror of
https://github.com/libretro/RetroArch
synced 2025-02-21 18:40:09 +00:00
Cleanups
This commit is contained in:
parent
be333837e9
commit
37ca5b0605
@ -718,18 +718,19 @@ static bool wasapi_flush_buffer(wasapi_t * w, size_t size)
|
|||||||
static ssize_t wasapi_write_sh(wasapi_t *w, const void * data, size_t size)
|
static ssize_t wasapi_write_sh(wasapi_t *w, const void * data, size_t size)
|
||||||
{
|
{
|
||||||
DWORD ir;
|
DWORD ir;
|
||||||
size_t read_avail;
|
|
||||||
size_t write_avail;
|
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
bool br;
|
size_t write_avail = 0;
|
||||||
ssize_t writen = -1;
|
bool br = false;
|
||||||
UINT32 padding = 0;
|
ssize_t written = -1;
|
||||||
|
UINT32 padding = 0;
|
||||||
|
|
||||||
if (w->buffer)
|
if (w->buffer)
|
||||||
{
|
{
|
||||||
write_avail = fifo_write_avail(w->buffer);
|
write_avail = fifo_write_avail(w->buffer);
|
||||||
if (!write_avail)
|
if (!write_avail)
|
||||||
{
|
{
|
||||||
|
size_t read_avail = 0;
|
||||||
|
|
||||||
if (w->blocking)
|
if (w->blocking)
|
||||||
{
|
{
|
||||||
ir = WaitForSingleObject(w->write_event, INFINITE);
|
ir = WaitForSingleObject(w->write_event, INFINITE);
|
||||||
@ -739,21 +740,21 @@ static ssize_t wasapi_write_sh(wasapi_t *w, const void * data, size_t size)
|
|||||||
hr = _IAudioClient_GetCurrentPadding(w->client, &padding);
|
hr = _IAudioClient_GetCurrentPadding(w->client, &padding);
|
||||||
WASAPI_HR_CHECK(hr, "IAudioClient::GetCurrentPadding", return -1);
|
WASAPI_HR_CHECK(hr, "IAudioClient::GetCurrentPadding", return -1);
|
||||||
|
|
||||||
read_avail = fifo_read_avail(w->buffer);
|
read_avail = fifo_read_avail(w->buffer);
|
||||||
write_avail = w->engine_buffer_size - padding * w->frame_size;
|
write_avail = w->engine_buffer_size - padding * w->frame_size;
|
||||||
writen = read_avail < write_avail ? read_avail : write_avail;
|
written = read_avail < write_avail ? read_avail : write_avail;
|
||||||
if (writen)
|
if (written)
|
||||||
{
|
{
|
||||||
br = wasapi_flush_buffer(w, writen);
|
br = wasapi_flush_buffer(w, written);
|
||||||
if (!br)
|
if (!br)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
write_avail = fifo_write_avail(w->buffer);
|
write_avail = fifo_write_avail(w->buffer);
|
||||||
writen = size < write_avail ? size : write_avail;
|
written = size < write_avail ? size : write_avail;
|
||||||
if (writen)
|
if (written)
|
||||||
fifo_write(w->buffer, data, writen);
|
fifo_write(w->buffer, data, written);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -770,28 +771,28 @@ static ssize_t wasapi_write_sh(wasapi_t *w, const void * data, size_t size)
|
|||||||
if (!write_avail)
|
if (!write_avail)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
writen = size < write_avail ? size : write_avail;
|
written = size < write_avail ? size : write_avail;
|
||||||
if (writen)
|
if (written)
|
||||||
{
|
{
|
||||||
br = wasapi_flush(w, data, writen);
|
br = wasapi_flush(w, data, written);
|
||||||
if (!br)
|
if (!br)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return writen;
|
return written;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t wasapi_write_ex(wasapi_t *w, const void * data, size_t size)
|
static ssize_t wasapi_write_ex(wasapi_t *w, const void * data, size_t size)
|
||||||
{
|
{
|
||||||
DWORD ir;
|
|
||||||
bool br = false;
|
bool br = false;
|
||||||
ssize_t writen = 0;
|
ssize_t writen = 0;
|
||||||
size_t write_avail = fifo_write_avail(w->buffer);
|
size_t write_avail = fifo_write_avail(w->buffer);
|
||||||
|
|
||||||
if (!write_avail)
|
if (!write_avail)
|
||||||
{
|
{
|
||||||
ir = WaitForSingleObject(w->write_event, w->blocking ? INFINITE : 0);
|
DWORD ir = WaitForSingleObject(
|
||||||
|
w->write_event, w->blocking ? INFINITE : 0);
|
||||||
if (ir != WAIT_OBJECT_0 && w->blocking)
|
if (ir != WAIT_OBJECT_0 && w->blocking)
|
||||||
{
|
{
|
||||||
RARCH_ERR("[WASAPI]: WaitForSingleObject failed with error %d.\n", GetLastError());
|
RARCH_ERR("[WASAPI]: WaitForSingleObject failed with error %d.\n", GetLastError());
|
||||||
@ -815,28 +816,28 @@ static ssize_t wasapi_write_ex(wasapi_t *w, const void * data, size_t size)
|
|||||||
|
|
||||||
static ssize_t wasapi_write(void *wh, const void *data, size_t size)
|
static ssize_t wasapi_write(void *wh, const void *data, size_t size)
|
||||||
{
|
{
|
||||||
size_t writen;
|
size_t written;
|
||||||
ssize_t ir;
|
|
||||||
wasapi_t *w = (wasapi_t*)wh;
|
wasapi_t *w = (wasapi_t*)wh;
|
||||||
|
|
||||||
if (w->blocking)
|
if (w->blocking)
|
||||||
{
|
{
|
||||||
for (writen = 0, ir = -1; writen < size; writen += ir)
|
ssize_t ir;
|
||||||
|
for (written = 0, ir = -1; written < size; written += ir)
|
||||||
{
|
{
|
||||||
if (w->exclusive)
|
if (w->exclusive)
|
||||||
ir = wasapi_write_ex(w, (char*)data + writen, size - writen);
|
ir = wasapi_write_ex(w, (char*)data + written, size - written);
|
||||||
else
|
else
|
||||||
ir = wasapi_write_sh(w, (char*)data + writen, size - writen);
|
ir = wasapi_write_sh(w, (char*)data + written, size - written);
|
||||||
if (ir == -1)
|
if (ir == -1)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (w->exclusive)
|
else if (w->exclusive)
|
||||||
writen = wasapi_write_ex(w, data, size);
|
written = wasapi_write_ex(w, data, size);
|
||||||
else
|
else
|
||||||
writen = wasapi_write_sh(w, data, size);
|
written = wasapi_write_sh(w, data, size);
|
||||||
|
|
||||||
return writen;
|
return written;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool wasapi_stop(void *wh)
|
static bool wasapi_stop(void *wh)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user