diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-09-25 22:51:18 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-09-25 22:51:18 +0200 |
| commit | ba9fb85168d004d7643dc02f911fd173a136758b (patch) | |
| tree | 8beb9b26c9bf47dfe933c8e0ccaccb4e30a69286 /src/lib | |
| parent | d7cf091bdbbeae8187e887104d1135e93bcdf5da (diff) | |
Add NamedChannel and use it to hide the never-used channels
when mapping into a DCP.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/audio_content.cc | 11 | ||||
| -rw-r--r-- | src/lib/audio_content.h | 2 | ||||
| -rw-r--r-- | src/lib/audio_processor.h | 3 | ||||
| -rw-r--r-- | src/lib/film.cc | 8 | ||||
| -rw-r--r-- | src/lib/film.h | 2 | ||||
| -rw-r--r-- | src/lib/mid_side_decoder.cc | 10 | ||||
| -rw-r--r-- | src/lib/mid_side_decoder.h | 2 | ||||
| -rw-r--r-- | src/lib/types.cc | 7 | ||||
| -rw-r--r-- | src/lib/types.h | 16 | ||||
| -rw-r--r-- | src/lib/upmixer_a.cc | 8 | ||||
| -rw-r--r-- | src/lib/upmixer_a.h | 2 | ||||
| -rw-r--r-- | src/lib/upmixer_b.cc | 8 | ||||
| -rw-r--r-- | src/lib/upmixer_b.h | 2 | ||||
| -rw-r--r-- | src/lib/util.cc | 3 |
14 files changed, 53 insertions, 31 deletions
diff --git a/src/lib/audio_content.cc b/src/lib/audio_content.cc index 014221f2e..22521c9e9 100644 --- a/src/lib/audio_content.cc +++ b/src/lib/audio_content.cc @@ -265,17 +265,18 @@ AudioContent::processing_description (shared_ptr<const Film> film) const } /** @return User-visible names of each of our audio channels */ -vector<string> +vector<NamedChannel> AudioContent::channel_names () const { - vector<string> n; + vector<NamedChannel> n; - int t = 1; + int index = 0; + int stream = 1; BOOST_FOREACH (AudioStreamPtr i, streams ()) { for (int j = 0; j < i->channels(); ++j) { - n.push_back (String::compose ("%1:%2", t, j + 1)); + n.push_back (NamedChannel(String::compose ("%1:%2", stream, j + 1), index++)); } - ++t; + ++stream; } return n; diff --git a/src/lib/audio_content.h b/src/lib/audio_content.h index 504c2aecf..b109cc15e 100644 --- a/src/lib/audio_content.h +++ b/src/lib/audio_content.h @@ -53,7 +53,7 @@ public: AudioMapping mapping () const; void set_mapping (AudioMapping); int resampled_frame_rate (boost::shared_ptr<const Film> film) const; - std::vector<std::string> channel_names () const; + std::vector<NamedChannel> channel_names () const; void set_gain (double); void set_delay (int); diff --git a/src/lib/audio_processor.h b/src/lib/audio_processor.h index 78a3efb58..194c9bf0e 100644 --- a/src/lib/audio_processor.h +++ b/src/lib/audio_processor.h @@ -25,6 +25,7 @@ #ifndef DCPOMATIC_AUDIO_PROCESSOR_H #define DCPOMATIC_AUDIO_PROCESSOR_H +#include "types.h" #include <boost/shared_ptr.hpp> #include <list> #include <string> @@ -58,7 +59,7 @@ public: /** Make the supplied audio mapping into a sensible default for this processor */ virtual void make_audio_mapping_default (AudioMapping& mapping) const = 0; /** @return the user-visible (translated) names of each of our inputs, in order */ - virtual std::vector<std::string> input_names () const = 0; + virtual std::vector<NamedChannel> input_names () const = 0; static std::list<AudioProcessor const *> all (); static std::list<AudioProcessor const *> visible (); diff --git a/src/lib/film.cc b/src/lib/film.cc index ea0a2bdd7..e2e77cce2 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -1707,7 +1707,7 @@ Film::subtitle_language () const /** @return The names of the channels that audio contents' outputs are passed into; * this is either the DCP or a AudioProcessor. */ -vector<string> +vector<NamedChannel> Film::audio_output_names () const { if (audio_processor ()) { @@ -1716,10 +1716,12 @@ Film::audio_output_names () const DCPOMATIC_ASSERT (MAX_DCP_AUDIO_CHANNELS == 16); - vector<string> n; + vector<NamedChannel> n; for (int i = 0; i < audio_channels(); ++i) { - n.push_back (short_audio_channel_name (i)); + if (i != 8 && i != 9 && i != 15) { + n.push_back (NamedChannel(short_audio_channel_name(i), i)); + } } return n; diff --git a/src/lib/film.h b/src/lib/film.h index 66bcce806..887433bea 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -177,7 +177,7 @@ public: std::string subtitle_language () const; - std::vector<std::string> audio_output_names () const; + std::vector<NamedChannel> audio_output_names () const; void repeat_content (ContentList, int); diff --git a/src/lib/mid_side_decoder.cc b/src/lib/mid_side_decoder.cc index b9b8dd098..fd80937ed 100644 --- a/src/lib/mid_side_decoder.cc +++ b/src/lib/mid_side_decoder.cc @@ -90,13 +90,11 @@ MidSideDecoder::make_audio_mapping_default (AudioMapping& mapping) const } } -vector<string> +vector<NamedChannel> MidSideDecoder::input_names () const { - vector<string> n; - - n.push_back (_("Left")); - n.push_back (_("Right")); - + vector<NamedChannel> n; + n.push_back (NamedChannel(_("Left"), 0)); + n.push_back (NamedChannel(_("Right"), 1)); return n; } diff --git a/src/lib/mid_side_decoder.h b/src/lib/mid_side_decoder.h index a4c7e2263..e5c1e0a05 100644 --- a/src/lib/mid_side_decoder.h +++ b/src/lib/mid_side_decoder.h @@ -29,5 +29,5 @@ public: boost::shared_ptr<AudioProcessor> clone (int) const; boost::shared_ptr<AudioBuffers> run (boost::shared_ptr<const AudioBuffers>, int channels); void make_audio_mapping_default (AudioMapping& mapping) const; - std::vector<std::string> input_names () const; + std::vector<NamedChannel> input_names () const; }; diff --git a/src/lib/types.cc b/src/lib/types.cc index df57f2d47..e7acf6992 100644 --- a/src/lib/types.cc +++ b/src/lib/types.cc @@ -222,3 +222,10 @@ CPLSummary::CPLSummary (boost::filesystem::path p) last_write_time = boost::filesystem::last_write_time (p); } + + +bool operator== (NamedChannel const& a, NamedChannel const& b) +{ + return a.name == b.name && a.index == b.index; +} + diff --git a/src/lib/types.h b/src/lib/types.h index 50eed9aa1..2ba0408ad 100644 --- a/src/lib/types.h +++ b/src/lib/types.h @@ -259,4 +259,20 @@ enum EmailProtocol { EMAIL_PROTOCOL_SSL }; + +class NamedChannel +{ +public: + NamedChannel (std::string name_, int index_) + : name(name_) + , index(index_) + {} + + std::string name; + int index; +}; + + +bool operator== (NamedChannel const& a, NamedChannel const& b); + #endif diff --git a/src/lib/upmixer_a.cc b/src/lib/upmixer_a.cc index ca42cd386..fc92b081d 100644 --- a/src/lib/upmixer_a.cc +++ b/src/lib/upmixer_a.cc @@ -120,11 +120,11 @@ UpmixerA::make_audio_mapping_default (AudioMapping& mapping) const } } -vector<string> +vector<NamedChannel> UpmixerA::input_names () const { - vector<string> n; - n.push_back (_("Upmix L")); - n.push_back (_("Upmix R")); + vector<NamedChannel> n; + n.push_back (NamedChannel(_("Upmix L"), 0)); + n.push_back (NamedChannel(_("Upmix R"), 1)); return n; } diff --git a/src/lib/upmixer_a.h b/src/lib/upmixer_a.h index fe6a373ca..18569dcfa 100644 --- a/src/lib/upmixer_a.h +++ b/src/lib/upmixer_a.h @@ -40,7 +40,7 @@ public: boost::shared_ptr<AudioBuffers> run (boost::shared_ptr<const AudioBuffers>, int channels); void flush (); void make_audio_mapping_default (AudioMapping& mapping) const; - std::vector<std::string> input_names () const; + std::vector<NamedChannel> input_names () const; private: BandPassAudioFilter _left; diff --git a/src/lib/upmixer_b.cc b/src/lib/upmixer_b.cc index 2847da03b..dfc9d67d5 100644 --- a/src/lib/upmixer_b.cc +++ b/src/lib/upmixer_b.cc @@ -130,11 +130,11 @@ UpmixerB::make_audio_mapping_default (AudioMapping& mapping) const } } -vector<string> +vector<NamedChannel> UpmixerB::input_names () const { - vector<string> n; - n.push_back (_("Upmix L")); - n.push_back (_("Upmix R")); + vector<NamedChannel> n; + n.push_back (NamedChannel(_("Upmix L"), 0)); + n.push_back (NamedChannel(_("Upmix R"), 1)); return n; } diff --git a/src/lib/upmixer_b.h b/src/lib/upmixer_b.h index 47b4fadef..221be1615 100644 --- a/src/lib/upmixer_b.h +++ b/src/lib/upmixer_b.h @@ -38,7 +38,7 @@ public: boost::shared_ptr<AudioBuffers> run (boost::shared_ptr<const AudioBuffers>, int channels); void flush (); void make_audio_mapping_default (AudioMapping& mapping) const; - std::vector<std::string> input_names () const; + std::vector<NamedChannel> input_names () const; private: LowPassAudioFilter _lfe; diff --git a/src/lib/util.cc b/src/lib/util.cc index 32deac2e8..7c0d1dc4e 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -825,8 +825,6 @@ audio_channel_types (list<int> mapped, int channels) case dcp::CENTRE: case dcp::LS: case dcp::RS: - case dcp::LC: - case dcp::RC: case dcp::BSL: case dcp::BSR: ++non_lfe; @@ -836,7 +834,6 @@ audio_channel_types (list<int> mapped, int channels) case dcp::MOTION_DATA: case dcp::SYNC_SIGNAL: case dcp::SIGN_LANGUAGE: - case dcp::UNUSED: case dcp::CHANNEL_COUNT: break; } |
