]> git.sesse.net Git - casparcg/blobdiff - shell/server.cpp
2.0.0.2: Added some warning on invalid consumer config.
[casparcg] / shell / server.cpp
index 0ca01eb6408b01fb06922d2693a4d0acd82de2de..b9521a9ff48ac3775fa95eacfe6d4ddef9f8afdb 100644 (file)
@@ -91,7 +91,7 @@ struct server::implementation : boost::noncopyable
                {               \r
                        auto format_desc = video_format_desc::get(widen(xml_channel.second.get("videomode", "PAL")));           \r
                        if(format_desc.format == video_format::invalid)\r
-                               BOOST_THROW_EXCEPTION(caspar_exception() << msg_info("Invalid videomode."));\r
+                               BOOST_THROW_EXCEPTION(caspar_exception() << msg_info("Invalid video-mode."));\r
                        \r
                        channels_.push_back(channel(channels_.size(), format_desc));\r
                        \r
@@ -100,40 +100,17 @@ struct server::implementation : boost::noncopyable
                        {\r
                                try\r
                                {\r
-                                       std::string name = xml_consumer.first;\r
+                                       const std::string name = xml_consumer.first;\r
                                        if(name == "ogl")\r
-                                       {                       \r
-                                               int device = xml_consumer.second.get("device", 0);\r
-                       \r
-                                               stretch stretch = stretch::fill;\r
-                                               std::string stretchStr = xml_consumer.second.get("stretch", "");\r
-                                               if(stretchStr == "none")\r
-                                                       stretch = stretch::none;\r
-                                               else if(stretchStr == "uniform")\r
-                                                       stretch = stretch::uniform;\r
-                                               else if(stretchStr == "uniformtofill")\r
-                                                       stretch = stretch::uniform_to_fill;\r
-\r
-                                               bool windowed = xml_consumer.second.get("windowed", false);\r
-                                               channels_.back()->consumer()->add(index++, ogl_consumer(device, stretch, windowed));\r
-                                       }\r
+                                               channels_.back()->consumer()->add(index++, create_ogl_consumer(xml_consumer.second));                                   \r
                                        else if(name == "bluefish")                                     \r
-                                               channels_.back()->consumer()->add(index++, bluefish_consumer(xml_consumer.second.get("device", 0), \r
-                                                                                                                                                                       xml_consumer.second.get("embedded-audio", true)));                                      \r
-                                       else if(name == "decklink")\r
-                                       {\r
-                                               auto key_str = xml_consumer.second.get("key", "default");\r
-                                               auto key = decklink_consumer::default_key;\r
-                                               if(key_str == "internal")\r
-                                                       key = decklink_consumer::internal_key;\r
-                                               else if(key_str == "external")\r
-                                                       key = decklink_consumer::external_key;\r
-                                               channels_.back()->consumer()->add(index++, decklink_consumer(xml_consumer.second.get("device", 0), \r
-                                                                                                                                                                       xml_consumer.second.get("embedded-audio", true), \r
-                                                                                                                                                                       key));\r
-                                       }\r
+                                               channels_.back()->consumer()->add(index++, create_bluefish_consumer(xml_consumer.second));                                      \r
+                                       else if(name == "decklink")                                     \r
+                                               channels_.back()->consumer()->add(index++, create_decklink_consumer(xml_consumer.second));                                      \r
                                        else if(name == "audio")\r
-                                               channels_.back()->consumer()->add(index++, oal_consumer());                     \r
+                                               channels_.back()->consumer()->add(index++, oal_consumer());             \r
+                               else\r
+                                       BOOST_THROW_EXCEPTION(caspar_exception() << arg_name_info(name) << msg_info("Invalid consumer."));      \r
                                }\r
                                catch(...)\r
                                {\r