diff options
author | Max Kellermann <max@duempel.org> | 2009-02-25 21:57:02 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-02-25 21:57:02 +0100 |
commit | d3409a65b57b232ff4f703ae7acdd2e75545c54c (patch) | |
tree | 7492cb3cbe5ea6c9edacaddedfcd98777191f52d /src | |
parent | 883e31d55b9265589e544c0b75a2367fd01c4d8b (diff) | |
download | mpd-d3409a65b57b232ff4f703ae7acdd2e75545c54c.tar.gz mpd-d3409a65b57b232ff4f703ae7acdd2e75545c54c.tar.xz mpd-d3409a65b57b232ff4f703ae7acdd2e75545c54c.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/output/mvp_plugin.c | 9 |
1 files changed, 7 insertions, 2 deletions
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); |