From d3409a65b57b232ff4f703ae7acdd2e75545c54c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 25 Feb 2009 21:57:02 +0100 Subject: [PATCH] mvp: check for reopen errors When the MVP device has been closed in the cancel() method, and the play() method attempts to reopen it, check for errors. --- NEWS | 1 + src/output/mvp_plugin.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 629b29826..324a8e4b8 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,7 @@ ver 0.15 - (200?/??/??) - null: allow disabling synchronization - mvp: fall back to stereo - mvp: fall back to 16 bit audio samples + - mvp: check for reopen errors * commands: - "playlistinfo" supports a range now - added "sticker database", command "sticker", which allows clients diff --git a/src/output/mvp_plugin.c b/src/output/mvp_plugin.c index 2bf79afad..65df5a2aa 100644 --- a/src/output/mvp_plugin.c +++ b/src/output/mvp_plugin.c @@ -272,8 +272,13 @@ mvp_output_play(void *data, const void *chunk, size_t size) ssize_t ret; /* reopen the device since it was closed by dropBufferedAudio */ - if (md->fd < 0) - mvp_output_open(md, &md->audio_format); + if (md->fd < 0) { + bool success; + + success = mvp_output_open(md, &md->audio_format); + if (!success) + return 0; + } while (true) { ret = write(md->fd, chunk, size);