diff options
author | Max Kellermann <max@duempel.org> | 2015-01-07 19:11:04 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2015-01-07 19:11:04 +0100 |
commit | fe0c4ff3c26c64aea46b8fa49456e8b40ef8dc05 (patch) | |
tree | c8deff6bcf4c2d8f107d0f93190ae3ed6dda67d5 /src/output | |
parent | 7a2af0fbf4a0261a47a05b7587d6352ca8d35c7d (diff) | |
download | mpd-fe0c4ff3c26c64aea46b8fa49456e8b40ef8dc05.tar.gz mpd-fe0c4ff3c26c64aea46b8fa49456e8b40ef8dc05.tar.xz mpd-fe0c4ff3c26c64aea46b8fa49456e8b40ef8dc05.zip |
output/recorder: move code to method Commit()
Diffstat (limited to 'src/output')
-rw-r--r-- | src/output/plugins/RecorderOutputPlugin.cxx | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/output/plugins/RecorderOutputPlugin.cxx b/src/output/plugins/RecorderOutputPlugin.cxx index 52fdb229f..f83a2edbd 100644 --- a/src/output/plugins/RecorderOutputPlugin.cxx +++ b/src/output/plugins/RecorderOutputPlugin.cxx @@ -86,6 +86,12 @@ struct RecorderOutput { void SendTag(const Tag &tag); size_t Play(const void *chunk, size_t size, Error &error); + +private: + /** + * Finish the encoder and commit the file. + */ + bool Commit(Error &error); }; static constexpr Domain recorder_output_domain("recorder_output"); @@ -223,19 +229,27 @@ RecorderOutput::Open(AudioFormat &audio_format, Error &error) return true; } -inline void -RecorderOutput::Close() +inline bool +RecorderOutput::Commit(Error &error) { /* flush the encoder and write the rest to the file */ - if (encoder_end(encoder, IgnoreError())) - EncoderToFile(IgnoreError()); + bool success = encoder_end(encoder, error) && + EncoderToFile(error); /* now really close everything */ encoder_close(encoder); close(fd); + + return success; +} + +inline void +RecorderOutput::Close() +{ + Commit(IgnoreError()); } inline void |