summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-06-29 00:00:55 +0200
committerCarl Hetherington <cth@carlh.net>2022-07-01 00:02:52 +0200
commita876dc03d70b6d3971ba0fc6e28c59b412c5f0a3 (patch)
tree61e7f0d0bd74b3b37ffa21cabe3078680c2260d2 /src/lib
parent7588273929fa6fe48fa0cf04d33e14bd256cf3f7 (diff)
Advanced option to allow mapping to any audio channel (#2279).
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/config.cc4
-rw-r--r--src/lib/config.h9
-rw-r--r--src/lib/film.cc2
-rw-r--r--src/lib/util.cc6
4 files changed, 17 insertions, 4 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc
index caea995be..aacc71edf 100644
--- a/src/lib/config.cc
+++ b/src/lib/config.cc
@@ -101,6 +101,7 @@ Config::set_defaults ()
_allow_any_dcp_frame_rate = false;
_allow_any_container = false;
_allow_96khz_audio = false;
+ _use_all_audio_channels = false;
_show_experimental_audio_processors = false;
_language = optional<string> ();
_default_still_length = 10;
@@ -414,6 +415,7 @@ try
_allow_any_dcp_frame_rate = f.optional_bool_child ("AllowAnyDCPFrameRate").get_value_or (false);
_allow_any_container = f.optional_bool_child ("AllowAnyContainer").get_value_or (false);
_allow_96khz_audio = f.optional_bool_child("Allow96kHzAudio").get_value_or(false);
+ _use_all_audio_channels = f.optional_bool_child("UseAllAudioChannels").get_value_or(false);
_show_experimental_audio_processors = f.optional_bool_child ("ShowExperimentalAudioProcessors").get_value_or (false);
_log_types = f.optional_number_child<int> ("LogTypes").get_value_or (LogEntry::TYPE_GENERAL | LogEntry::TYPE_WARNING | LogEntry::TYPE_ERROR);
@@ -803,6 +805,8 @@ Config::write_config () const
root->add_child("AllowAnyContainer")->add_child_text (_allow_any_container ? "1" : "0");
/* [XML] Allow96kHzAudio 1 to allow users to make DCPs with 96kHz audio, 0 to always make 48kHz DCPs */
root->add_child("Allow96kHzAudio")->add_child_text(_allow_96khz_audio ? "1" : "0");
+ /* [XML] UseAllAudioChannels 1 to allow users to map audio to all 16 DCP channels, 0 to limit to the channels used in standard DCPs */
+ root->add_child("UseAllAudioChannels")->add_child_text(_use_all_audio_channels ? "1" : "0");
/* [XML] ShowExperimentalAudioProcessors 1 to offer users the (experimental) audio upmixer processors, 0 to hide them */
root->add_child("ShowExperimentalAudioProcessors")->add_child_text (_show_experimental_audio_processors ? "1" : "0");
/* [XML] LogTypes Types of logging to write; a bitfield where 1 is general notes, 2 warnings, 4 errors, 8 debug information related
diff --git a/src/lib/config.h b/src/lib/config.h
index 9c3650f8d..f53b8986e 100644
--- a/src/lib/config.h
+++ b/src/lib/config.h
@@ -174,6 +174,10 @@ public:
return _allow_96khz_audio;
}
+ bool use_all_audio_channels () const {
+ return _use_all_audio_channels;
+ }
+
bool show_experimental_audio_processors () const {
return _show_experimental_audio_processors;
}
@@ -669,6 +673,10 @@ public:
maybe_set (_allow_96khz_audio, a);
}
+ void set_use_all_audio_channels (bool a) {
+ maybe_set (_use_all_audio_channels, a);
+ }
+
void set_show_experimental_audio_processors (bool e) {
maybe_set (_show_experimental_audio_processors, e, SHOW_EXPERIMENTAL_AUDIO_PROCESSORS);
}
@@ -1230,6 +1238,7 @@ private:
*/
bool _allow_any_container;
bool _allow_96khz_audio;
+ bool _use_all_audio_channels;
/** Offer the upmixers in the audio processor settings */
bool _show_experimental_audio_processors;
boost::optional<std::string> _language;
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 4084ca59c..37720025b 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -1755,7 +1755,7 @@ Film::audio_output_names () const
vector<NamedChannel> n;
for (int i = 0; i < audio_channels(); ++i) {
- if (i != 8 && i != 9 && i != 15) {
+ if (Config::instance()->use_all_audio_channels() || (i != 8 && i != 9 && i != 15)) {
n.push_back (NamedChannel(short_audio_channel_name(i), i));
}
}
diff --git a/src/lib/util.cc b/src/lib/util.cc
index eab9408ce..2a21477fd 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -594,14 +594,14 @@ short_audio_channel_name (int c)
_("Rs"),
_("HI"),
_("VI"),
- _("Lc"),
- _("Rc"),
+ _("9"),
+ _("10"),
_("BsL"),
_("BsR"),
_("DBP"),
_("DBS"),
_("Sign"),
- ""
+ _("16")
};
return channels[c];