aboutsummaryrefslogtreecommitdiffstats
path: root/src/audioOutputs/audioOutput_ao.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-09-01 20:08:55 -0700
committerEric Wong <normalperson@yhbt.net>2008-09-01 20:08:55 -0700
commit925843cfedcde221207ec1ab78f778dab22325f9 (patch)
tree2dcdd8497f7ca13af8a5f337b830f2dbe748c978 /src/audioOutputs/audioOutput_ao.c
parentbbe4560b180e8c432c7eb7f53664605390bf67ca (diff)
downloadmpd-925843cfedcde221207ec1ab78f778dab22325f9.tar.gz
mpd-925843cfedcde221207ec1ab78f778dab22325f9.tar.xz
mpd-925843cfedcde221207ec1ab78f778dab22325f9.zip
use deconst_ptr instead of duplicating deconst logic
Diffstat (limited to 'src/audioOutputs/audioOutput_ao.c')
-rw-r--r--src/audioOutputs/audioOutput_ao.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/src/audioOutputs/audioOutput_ao.c b/src/audioOutputs/audioOutput_ao.c
index e7e201add..ed8eaa796 100644
--- a/src/audioOutputs/audioOutput_ao.c
+++ b/src/audioOutputs/audioOutput_ao.c
@@ -199,23 +199,6 @@ static int audioOutputAo_openDevice(AudioOutput * audioOutput)
return 0;
}
-/**
- * For whatever reason, libao wants a non-const pointer. Let's hope
- * it does not write to the buffer, and use the union deconst hack to
- * work around this API misdesign.
- */
-static int ao_play_deconst(ao_device *device, const void *output_samples,
- uint_32 num_bytes)
-{
- union {
- const void *in;
- void *out;
- } u;
-
- u.in = output_samples;
- return ao_play(device, u.out, num_bytes);
-}
-
static int audioOutputAo_play(AudioOutput * audioOutput,
const char *playChunk, size_t size)
{
@@ -229,7 +212,9 @@ static int audioOutputAo_play(AudioOutput * audioOutput,
chunk_size = (size_t)ad->writeSize > size
? size : (size_t)ad->writeSize;
- if (ao_play_deconst(ad->device, playChunk, chunk_size) == 0) {
+ if (!ao_play(ad->device,
+ (char *)deconst_ptr(playChunk),
+ (uint_32)chunk_size)) {
audioOutputAo_error();
ERROR("closing audio device due to write error\n");
audioOutputAo_closeDevice(audioOutput);