diff --git a/src/DSP/AudioFile.hpp b/src/DSP/AudioFile.hpp index 0e18da5..b923ee0 100644 --- a/src/DSP/AudioFile.hpp +++ b/src/DSP/AudioFile.hpp @@ -9,6 +9,9 @@ namespace ta template auto fileHasFormat(juce::AudioFormatManager& formatManager, juce::File const& file) -> bool { + static_assert(std::is_base_of::value, + "ExpectedFormat must be a subclass of AudioFormat"); + auto reader = std::unique_ptr(formatManager.createReaderFor(file)); if (reader == nullptr) { return false; } return dynamic_cast(reader.get()) != nullptr; diff --git a/src/DSP/AudioFileConverter.hpp b/src/DSP/AudioFileConverter.hpp index 6e0428d..ed28f28 100644 --- a/src/DSP/AudioFileConverter.hpp +++ b/src/DSP/AudioFileConverter.hpp @@ -49,7 +49,8 @@ inline auto AudioFileConverter::convert(Options const& options) -> Result auto writer = std::unique_ptr(format.createWriterFor(out.get(), sr, ch, bits, {}, 0)); if (writer == nullptr) { return Result{false, "Failed to convert to wav"}; } - out.release(); // writer took ownership + auto* p = out.release(); // writer took ownership + (void)p; // fixes nodiscard warning on release writer->writeFromAudioReader(*reader, 0, reader->lengthInSamples); writer->flush();