X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_processor.cc;h=1eb796b38ef7ce68e5e0169422a65e6ae81dc848;hb=9b9202c7f9fc26fcef0984189aaed366b7c6d726;hp=0d3f2b6d7ecc2b0a0259a8018e2964c1f19ae9fa;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05;p=dcpomatic.git diff --git a/src/lib/audio_processor.cc b/src/lib/audio_processor.cc index 0d3f2b6d7..1eb796b38 100644 --- a/src/lib/audio_processor.cc +++ b/src/lib/audio_processor.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,36 +18,58 @@ */ + #include "audio_processor.h" +#include "config.h" #include "mid_side_decoder.h" #include "upmixer_a.h" #include "upmixer_b.h" + using std::string; using std::list; + list AudioProcessor::_all; +list AudioProcessor::_non_experimental; + void AudioProcessor::setup_audio_processors () { - _all.push_back (new MidSideDecoder ()); - _all.push_back (new UpmixerA (48000)); - _all.push_back (new UpmixerB (48000)); + auto mid_side = new MidSideDecoder (); + _all.push_back (mid_side); + _non_experimental.push_back (mid_side); + + _all.push_back (new UpmixerA(48000)); + _all.push_back (new UpmixerB(48000)); } + AudioProcessor const * AudioProcessor::from_id (string id) { - for (list::const_iterator i = _all.begin(); i != _all.end(); ++i) { - if ((*i)->id() == id) { - return *i; + for (auto i: _all) { + if (i->id() == id) { + return i; } } - return 0; + return nullptr; +} + + +list +AudioProcessor::visible () +{ + if (Config::instance()->show_experimental_audio_processors()) { + return _all; + } + + return _non_experimental; } + list AudioProcessor::all () {