Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
audio_file_writer.h
1// SPDX-FileCopyrightText: © 2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "utils/types.h"
7#include "utils/units.h"
8
9#include <QPromise>
10
11#include <juce_wrapper.h>
12
13namespace zrythm::utils
14{
15
17{
18public:
20 {
21 juce::AudioFormatWriterOptions writer_options_{};
22 units::sample_t block_length_ = units::samples (4096);
23 };
24
33 static QFuture<void> write_async (
34 WriteOptions options,
35 const fs::path &file_path,
36 juce::AudioSampleBuffer &&buffer);
37
38private:
47 static void write (
48 QPromise<void> &promise,
49 WriteOptions options,
50 const fs::path &file_path,
51 juce::AudioSampleBuffer &&buffer);
52};
53
54} // namespace zrythm::utils
static QFuture< void > write_async(WriteOptions options, const fs::path &file_path, juce::AudioSampleBuffer &&buffer)
Executes write() asynchronously and returns a QFuture to control the task.
String utilities.
Definition algorithms.h:12