]> git.sesse.net Git - casparcg/commitdiff
2.0.2: INFO: Improved formatting. Added INFO 1-1 F/B query.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 4 Dec 2011 14:28:42 +0000 (14:28 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 4 Dec 2011 14:28:42 +0000 (14:28 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.2@1781 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

protocol/amcp/AMCPCommandsImpl.cpp

index f7f99d02d6bf443e1531bf988379b9df8e432354..3d5c06ac3dee514e346cd2606690f5b39af640fd 100644 (file)
@@ -1329,7 +1329,8 @@ bool InfoCommand::DoExecute()
                {\r
                        std::wstringstream replyString;\r
                        replyString << TEXT("201 INFO OK\r\n");\r
-\r
+                       \r
+                       boost::property_tree::wptree info;\r
                        if(_parameters.size() >= 1)\r
                        {\r
                                std::vector<std::wstring> split;\r
@@ -1342,20 +1343,35 @@ bool InfoCommand::DoExecute()
                                        layer = boost::lexical_cast<int>(split[1]);\r
                                \r
                                if(layer == std::numeric_limits<int>::min())\r
-                                       boost::property_tree::xml_parser::write_xml(replyString, channels_.at(channel)->info(), boost::property_tree::xml_writer_settings<wchar_t>(' ', 3));\r
+                               {       \r
+                                       info.add_child(L"channel", channels_.at(channel)->info())\r
+                                                       .add(L"index", channel);\r
+                               }\r
                                else\r
-                                       boost::property_tree::xml_parser::write_xml(replyString, channels_.at(channel)->stage()->info(layer).get(), boost::property_tree::xml_writer_settings<wchar_t>(' ', 3));\r
+                               {\r
+                                       if(_parameters.size() >= 2)\r
+                                       {\r
+                                               if(_parameters[1] == L"B")\r
+                                                       info.add_child(L"producer", channels_.at(channel)->stage()->background(layer).get()->info());\r
+                                               else\r
+                                                       info.add_child(L"producer", channels_.at(channel)->stage()->foreground(layer).get()->info());\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               info.add_child(L"layer", channels_.at(channel)->stage()->info(layer).get())\r
+                                                       .add(L"index", layer);\r
+                                       }\r
+                               }\r
                        }\r
                        else\r
                        {\r
-                               boost::property_tree::wptree info;\r
                                int index = 0;\r
                                BOOST_FOREACH(auto channel, channels_)\r
                                        info.add_child(L"channels.channel", channel->info())\r
                                            .add(L"index", ++index);\r
-\r
-                               boost::property_tree::xml_parser::write_xml(replyString, info, boost::property_tree::xml_writer_settings<wchar_t>(' ', 3));\r
                        }\r
+\r
+                       boost::property_tree::xml_parser::write_xml(replyString, info, boost::property_tree::xml_writer_settings<wchar_t>(' ', 3));\r
                        replyString << TEXT("\r\n");\r
                        SetReplyString(replyString.str());\r
                        return true;\r