]> git.sesse.net Git - casparcg/commitdiff
Modifications of audio config xml.
authorHelge Norberg <helge.norberg@gmail.com>
Tue, 28 May 2013 12:39:04 +0000 (14:39 +0200)
committerHelge Norberg <helge.norberg@gmail.com>
Tue, 28 May 2013 12:39:04 +0000 (14:39 +0200)
core/mixer/audio/audio_util.cpp
shell/casparcg.config
shell/server.cpp

index 74d44e506861c9ca001cdfbad8741c085a636bcf..36fb4fe844aafa2d2be77eb8762faeb703d6be5b 100644 (file)
@@ -170,7 +170,7 @@ void parse_channel_layouts(
        BOOST_FOREACH(auto& layout, layouts_element)
        {
                repository.register_layout(create_layout_from_string(
-                               layout.first,
+                               layout.second.get<std::wstring>(L"name"),
                                layout.second.get<std::wstring>(L"type"),
                                layout.second.get<int>(L"num-channels"),
                                layout.second.get<std::wstring>(L"channels")));
index a7c808f735fb051be04a811533f84af26bff010a..4b607187348ecda6f482dbf821fbf40c3e86f2d3 100644 (file)
     <predefined-clients>\r
     </predefined-clients>\r
   </osc>\r
-  <audio>\r
-    <channel-layouts>\r
-    </channel-layouts>\r
-    <mix-configs>\r
-    </mix-configs>\r
-  </audio>\r
 </configuration>\r
 \r
 <!--\r
 </osc>\r
 <audio>\r
   <channel-layouts>\r
-    <mono>\r
+    <channel-layout>\r
+      <name>mono</name>\r
       <type>1.0</type>\r
       <num-channels>1</num-channels>\r
       <channels>C</channels>\r
-    </mono>\r
-    <stereo>\r
+    </channel-layout>\r
+    <channel-layout>\r
+      <name>stereo</name>\r
       <type>2.0</type>\r
       <num-channels>2</num-channels>\r
       <channels>L R</channels>\r
-    </stereo>\r
-    <dts>\r
+    </channel-layout>\r
+    <channel-layout>\r
+      <name>dts</name>\r
       <type>5.1</type>\r
       <num-channels>6</num-channels>\r
       <channels>C L R Ls Rs LFE</channels>\r
-    </dts>\r
-    <dolbye>\r
+    </channel-layout>\r
+    <channel-layout>\r
+      <name>dolbye</name>\r
       <type>5.1+stereomix</type>\r
       <num-channels>8</num-channels>\r
       <channels>L R C LFE Ls Rs Lmix Rmix</channels>\r
-    </dolbye>\r
-    <dolbydigital>\r
+    </channel-layout>\r
+    <channel-layout>\r
+      <name>dolbydigital</name>\r
       <type>5.1</type>\r
       <num-channels>6</num-channels>\r
       <channels>L C R Ls Rs LFE</channels>\r
-    </dolbydigital>\r
-    <smpte>\r
+    </channel-layout>\r
+    <channel-layout>\r
+      <name>smpte</name>\r
       <type>5.1</type>\r
       <num-channels>6</num-channels>\r
       <channels>L R C LFE Ls Rs</channels>\r
-    </smpte>\r
-    <passthru>\r
+    </channel-layout>\r
+    <channel-layout>\r
+      <name>passthru</name>\r
       <type>16ch</type>\r
       <num-channels>16</num-channels>\r
       <channels />\r
-    </passthru>\r
+    </channel-layout>\r
   </channel-layouts>\r
   <mix-configs>\r
     <mix-config>\r
index 633b0c45729d146e6b16a744ad20ebc9561a0731..3629aae8dff2bdc50f0d8c0dc027f3f19d4019e2 100644 (file)
@@ -136,12 +136,19 @@ struct server::implementation : boost::noncopyable
        {\r
                register_default_channel_layouts(default_channel_layout_repository());\r
                register_default_mix_configs(default_mix_config_repository());\r
-               parse_channel_layouts(\r
-                               default_channel_layout_repository(),\r
-                               pt.get_child(L"configuration.audio.channel-layouts"));\r
-               parse_mix_configs(\r
-                               default_mix_config_repository(),\r
-                               pt.get_child(L"configuration.audio.mix-configs"));\r
+\r
+               auto channel_layouts =\r
+                       pt.get_child_optional(L"configuration.audio.channel-layouts");\r
+               auto mix_configs =\r
+                       pt.get_child_optional(L"configuration.audio.mix-configs");\r
+\r
+               if (channel_layouts)\r
+                       parse_channel_layouts(\r
+                                       default_channel_layout_repository(), *channel_layouts);\r
+\r
+               if (mix_configs)\r
+                       parse_mix_configs(\r
+                                       default_mix_config_repository(), *mix_configs);\r
        }\r
                                \r
        void setup_channels(const boost::property_tree::wptree& pt)\r