diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-06-03 13:17:37 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-06-03 13:17:37 +0100 |
| commit | fa61fc99549264810e17fcd35abffe9e8ddab5b2 (patch) | |
| tree | 855ce952ed8b416bbab33cd6debbd0f2b7379597 /src/lib/audio_content.cc | |
| parent | 3b67c79bf4534e72a7eceaa6e566e7b7c949e4f7 (diff) | |
Various work on audio mapping.
Fix everything up so that the audio mapping view in
the audio panel reflects the processor (or lack of).
Diffstat (limited to 'src/lib/audio_content.cc')
| -rw-r--r-- | src/lib/audio_content.cc | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/lib/audio_content.cc b/src/lib/audio_content.cc index 3ea31f673..b6749d20b 100644 --- a/src/lib/audio_content.cc +++ b/src/lib/audio_content.cc @@ -171,10 +171,10 @@ AudioContent::set_audio_mapping (AudioMapping mapping) { int c = 0; BOOST_FOREACH (AudioStreamPtr i, audio_streams ()) { - AudioMapping stream_mapping (i->channels ()); + AudioMapping stream_mapping (i->channels (), MAX_DCP_AUDIO_CHANNELS); for (int j = 0; j < i->channels(); ++j) { for (int k = 0; k < MAX_DCP_AUDIO_CHANNELS; ++k) { - stream_mapping.set (j, static_cast<dcp::Channel> (k), mapping.get (c, static_cast<dcp::Channel> (k))); + stream_mapping.set (j, k, mapping.get (c, k)); } ++c; } @@ -192,16 +192,15 @@ AudioContent::audio_mapping () const channels += i->channels (); } - AudioMapping merged (channels); + AudioMapping merged (channels, MAX_DCP_AUDIO_CHANNELS); int c = 0; int s = 0; BOOST_FOREACH (AudioStreamPtr i, audio_streams ()) { AudioMapping mapping = i->mapping (); - for (int j = 0; j < mapping.content_channels(); ++j) { - merged.set_name (c, String::compose ("%1:%2", s + 1, j + 1)); + for (int j = 0; j < mapping.input_channels(); ++j) { for (int k = 0; k < MAX_DCP_AUDIO_CHANNELS; ++k) { - merged.set (c, static_cast<dcp::Channel> (k), mapping.get (j, static_cast<dcp::Channel> (k))); + merged.set (c, k, mapping.get (j, k)); } ++c; } @@ -289,6 +288,7 @@ AudioContent::processing_description () const return ""; } +/** @return true if any stream in this content has a sampling rate of more than 48kHz */ bool AudioContent::has_rate_above_48k () const { @@ -300,3 +300,20 @@ AudioContent::has_rate_above_48k () const return false; } + +/** @return User-visible names of each of our audio channels */ +vector<string> +AudioContent::audio_channel_names () const +{ + vector<string> n; + + int t = 1; + BOOST_FOREACH (AudioStreamPtr i, audio_streams ()) { + for (int j = 0; j < i->channels(); ++j) { + n.push_back (String::compose ("%1:%2", t, j + 1)); + } + ++t; + } + + return n; +} |
