From 608ac668db2dfc4ca5e1b3c68d432086476dd074 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Wed, 20 Oct 2004 16:05:13 +0000 Subject: some work on the new audioOutput layer git-svn-id: https://svn.musicpd.org/mpd/trunk@2277 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/audioOutput.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src/audioOutput.c') diff --git a/src/audioOutput.c b/src/audioOutput.c index aedfda59f..ff0c614a2 100644 --- a/src/audioOutput.c +++ b/src/audioOutput.c @@ -28,16 +28,30 @@ AudioOutput * newAudioOutput(char * name) { if(findInList(audioOutputPluginList, name, &data)) { AudioOutputPlugin * plugin = (AudioOutputPlugin *) data; ret = malloc(sizeof(AudioOutput)); - ret->initConfigFunc = plugin->initConfigFunc; - ret->finishConfigFunc = plugin->finishConfigFunc; - ret->initDriverFunc = plugin->initDriverFunc; ret->finishDriverFunc = plugin->initDriverFunc; ret->openDeviceFunc = plugin->openDeviceFunc; ret->playFunc = plugin->playFunc; ret->closeDeviceFunc = plugin->closeDeviceFunc; + + plugin->initDriverFunc(ret); } return ret; } -void closeAudioOutput(AudioOutput * audioOutput); +int openAudioOutput(AudioOutput * audioOutput, AudioFormat * audioFormat) { + return audioOutput->openDeviceFunc(audioOutput, audioFormat); +} + +int playAudioOutput(AudioOutput * audioOutput, char * playChunk, int size) { + return audioOutput->playFunc(audioOutput, playChunk, size); +} + +void closeAudioOutput(AudioOutput * audioOutput) { + audioOutput->closeDeviceFunc(audioOutput); +} + +void finishAudioOutput(AudioOutput * audioOutput) { + audioOutput->finishDriverFunc(audioOutput); + free(audioOutput); +} -- cgit v1.2.3