20 #ifndef MPD_FLAC_STREAM_DECODER
21 #define MPD_FLAC_STREAM_DECODER
25 #include <FLAC/stream_decoder.h>
36 FLAC__StreamDecoder *decoder;
40 :decoder(FLAC__stream_decoder_new()) {
41 if (decoder ==
nullptr)
42 throw std::runtime_error(
"FLAC__stream_decoder_new() failed");
46 :decoder(src.decoder) {
47 src.decoder =
nullptr;
51 if (decoder !=
nullptr)
52 FLAC__stream_decoder_delete(decoder);
56 std::swap(decoder, src.decoder);
60 operator bool()
const {
61 return decoder !=
nullptr;
64 FLAC__StreamDecoder *
get() {
65 assert(decoder !=
nullptr);
OO wrapper for a FLAC__StreamDecoder.
FlacStreamDecoder & operator=(FlacStreamDecoder &&src)
FlacStreamDecoder(FlacStreamDecoder &&src)