aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-09-24 07:20:37 +0200
committerMax Kellermann <max@duempel.org>2008-09-24 07:20:37 +0200
commit63fb1efb5cd6665b73ced155ba89a5c7f094d9ab (patch)
tree041dc886425590f7700c0c9de69eaacc82c1de85
parent3be5db04308d2fb233b33a82089cd9afacf68cc9 (diff)
downloadmpd-63fb1efb5cd6665b73ced155ba89a5c7f094d9ab.tar.gz
mpd-63fb1efb5cd6665b73ced155ba89a5c7f094d9ab.tar.xz
mpd-63fb1efb5cd6665b73ced155ba89a5c7f094d9ab.zip
output: added audio_output_closed()
The JACK output plugin needs to reset its "opened" flag when the JACK server fails. To prevent it from accessing the audio_output struct directly introduce the API function audio_output_closed().
-rw-r--r--src/audioOutputs/audioOutput_jack.c2
-rw-r--r--src/output_api.c8
-rw-r--r--src/output_api.h2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c
index 46b879f64..14b1e92e4 100644
--- a/src/audioOutputs/audioOutput_jack.c
+++ b/src/audioOutputs/audioOutput_jack.c
@@ -398,7 +398,7 @@ static int jack_playAudio(struct audio_output *audioOutput,
if ( jd->shutdown ) {
ERROR("Refusing to play, because there is no client thread.\n");
freeJackClient(jd);
- audioOutput->open = 0;
+ audio_output_closed(audioOutput);
return 0;
}
diff --git a/src/output_api.c b/src/output_api.c
index e9ac1be06..eabc0bb80 100644
--- a/src/output_api.c
+++ b/src/output_api.c
@@ -22,3 +22,11 @@ const char *audio_output_get_name(const struct audio_output *ao)
{
return ao->name;
}
+
+void audio_output_closed(struct audio_output *ao)
+{
+ assert(ao->open);
+
+ ao->open = 0;
+}
+
diff --git a/src/output_api.h b/src/output_api.h
index b76da5cde..c8869c47b 100644
--- a/src/output_api.h
+++ b/src/output_api.h
@@ -101,4 +101,6 @@ extern struct notify audio_output_client_notify;
const char *audio_output_get_name(const struct audio_output *ao);
+void audio_output_closed(struct audio_output *ao);
+
#endif