summaryrefslogtreecommitdiff
path: root/src/lib/audio_processor.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-07-06 23:23:26 +0200
committercah <cth@carlh.net>2025-07-10 22:49:00 +0200
commit4e244c8a4b34268445123b7d6df54ff303561fa5 (patch)
tree54b92d242ea518ee0e9d55c20265d5ab963fc7a0 /src/lib/audio_processor.h
parenta564301f86068484d98d329971f59b10c7de892e (diff)
Allow audio processors to pass through HI/VI/DBox etc (#3020).
Previously you couldn't map these things if you were using a processor.
Diffstat (limited to 'src/lib/audio_processor.h')
-rw-r--r--src/lib/audio_processor.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/audio_processor.h b/src/lib/audio_processor.h
index 2c3df3add..f469f07c0 100644
--- a/src/lib/audio_processor.h
+++ b/src/lib/audio_processor.h
@@ -29,6 +29,7 @@
#include "named_channel.h"
+#include <dcp/types.h>
#include <memory>
#include <string>
#include <vector>
@@ -58,7 +59,7 @@ public:
/** @return A clone of this AudioProcessor for operation at the specified sampling rate */
virtual std::shared_ptr<AudioProcessor> clone(int sampling_rate) const = 0;
/** Process some data, returning the processed result truncated or padded to `channels' */
- virtual std::shared_ptr<AudioBuffers> run(std::shared_ptr<const AudioBuffers>, int channels) = 0;
+ std::shared_ptr<AudioBuffers> run(std::shared_ptr<const AudioBuffers>, int channels);
virtual void flush() {}
/** Make the supplied audio mapping into a sensible default for this processor */
virtual void make_audio_mapping_default(AudioMapping& mapping) const = 0;
@@ -69,6 +70,10 @@ public:
static std::vector<AudioProcessor const *> visible();
static void setup_audio_processors();
static AudioProcessor const * from_id(std::string);
+ static std::vector<dcp::Channel> pass_through();
+
+protected:
+ virtual std::shared_ptr<AudioBuffers> do_run(std::shared_ptr<const AudioBuffers>, int channels) = 0;
private:
static std::vector<std::unique_ptr<const AudioProcessor>> _experimental;