summaryrefslogtreecommitdiff
path: root/src/lib/sndfile_content.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-05-26 01:26:21 +0100
committerCarl Hetherington <cth@carlh.net>2013-05-26 01:26:21 +0100
commit951a81dbb75db9850ee0226f74a575af7335a576 (patch)
treed24f9012b41edfb1315ddb51a15250578f62dbb9 /src/lib/sndfile_content.cc
parentecbfa72a19756eab3fb1e3b0a9c5cab1c0b2ed39 (diff)
Improve audio mapping handling a bit.
Diffstat (limited to 'src/lib/sndfile_content.cc')
-rw-r--r--src/lib/sndfile_content.cc19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/sndfile_content.cc b/src/lib/sndfile_content.cc
index a80c7dbe5..8eede89f4 100644
--- a/src/lib/sndfile_content.cc
+++ b/src/lib/sndfile_content.cc
@@ -1,5 +1,3 @@
-/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
-
/*
Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
@@ -50,6 +48,7 @@ SndfileContent::SndfileContent (shared_ptr<const Film> f, shared_ptr<const cxml:
_audio_channels = node->number_child<int> ("AudioChannels");
_audio_length = node->number_child<ContentAudioFrame> ("AudioLength");
_audio_frame_rate = node->number_child<int> ("AudioFrameRate");
+ _audio_mapping = AudioMapping (node->node_child ("AudioMapping"));
}
string
@@ -113,6 +112,10 @@ SndfileContent::examine (shared_ptr<Job> job)
signal_changed (AudioContentProperty::AUDIO_CHANNELS);
signal_changed (AudioContentProperty::AUDIO_LENGTH);
signal_changed (AudioContentProperty::AUDIO_FRAME_RATE);
+
+ /* XXX: do this in signal_changed...? */
+ _audio_mapping = AudioMapping (_audio_channels);
+ signal_changed (AudioContentProperty::AUDIO_MAPPING);
}
void
@@ -124,6 +127,7 @@ SndfileContent::as_xml (xmlpp::Node* node) const
node->add_child("AudioChannels")->add_child_text (lexical_cast<string> (_audio_channels));
node->add_child("AudioLength")->add_child_text (lexical_cast<string> (_audio_length));
node->add_child("AudioFrameRate")->add_child_text (lexical_cast<string> (_audio_frame_rate));
+ _audio_mapping.as_xml (node->add_child("AudioMapping"));
}
Time
@@ -143,3 +147,14 @@ SndfileContent::output_audio_frame_rate () const
return film->dcp_audio_frame_rate ();
}
+
+void
+SndfileContent::set_audio_mapping (AudioMapping m)
+{
+ {
+ boost::mutex::scoped_lock lm (_mutex);
+ _audio_mapping = m;
+ }
+
+ signal_changed (AudioContentProperty::AUDIO_MAPPING);
+}