|
@@ -28,7 +28,7 @@ WavWriter::WavWriter(int sample_rate, u16 num_channels, PcmSampleFormat sample_f
|
|
|
WavWriter::~WavWriter()
|
|
|
{
|
|
|
if (!m_finalized)
|
|
|
- finalize();
|
|
|
+ (void)finalize();
|
|
|
}
|
|
|
|
|
|
ErrorOr<void> WavWriter::set_file(StringView path)
|
|
@@ -39,7 +39,7 @@ ErrorOr<void> WavWriter::set_file(StringView path)
|
|
|
return {};
|
|
|
}
|
|
|
|
|
|
-ErrorOr<void> WavWriter::write_samples(Span<Sample> samples)
|
|
|
+ErrorOr<void> WavWriter::write_samples(ReadonlySpan<Sample> samples)
|
|
|
{
|
|
|
switch (m_sample_format) {
|
|
|
// FIXME: For non-float formats, we don't add good quantization noise, leading to possibly unpleasant quantization artifacts.
|
|
@@ -72,22 +72,18 @@ ErrorOr<void> WavWriter::write_samples(Span<Sample> samples)
|
|
|
return {};
|
|
|
}
|
|
|
|
|
|
-void WavWriter::finalize()
|
|
|
+ErrorOr<void> WavWriter::finalize()
|
|
|
{
|
|
|
VERIFY(!m_finalized);
|
|
|
m_finalized = true;
|
|
|
|
|
|
if (m_file && m_file->is_open()) {
|
|
|
- auto result = [&]() -> ErrorOr<void> {
|
|
|
- TRY(m_file->seek(0, SeekMode::SetPosition));
|
|
|
- return TRY(write_header());
|
|
|
- }();
|
|
|
-
|
|
|
- if (result.is_error())
|
|
|
- dbgln("Failed to finalize WavWriter: {}", result.error());
|
|
|
+ TRY(m_file->seek(0, SeekMode::SetPosition));
|
|
|
+ TRY(write_header());
|
|
|
m_file->close();
|
|
|
}
|
|
|
m_data_sz = 0;
|
|
|
+ return {};
|
|
|
}
|
|
|
|
|
|
ErrorOr<void> WavWriter::write_header()
|