#include <boost/algorithm/string.hpp>\r
#include <boost/filesystem.hpp>\r
#include <boost/regex.hpp>\r
+#include <boost/property_tree/xml_parser.hpp>\r
\r
/* Return codes\r
\r
//Perform loading of the clip\r
try\r
{\r
- GetChannel()->output()->add(create_consumer(_parameters));\r
+ auto consumer = create_consumer(_parameters);\r
+ GetChannel()->output()->add(GetLayerIndex(consumer->index()), consumer);\r
\r
CASPAR_LOG(info) << "Added " << _parameters[0] << TEXT(" successfully");\r
\r
SetReplyString(TEXT("404 CINF ERROR\r\n"));\r
return false;\r
}\r
- replyString << TEXT("200 INFO OK\r\n");\r
+ replyString << TEXT("200 CINF OK\r\n");\r
replyString << info << "\r\n";\r
}\r
catch(...)\r
\r
std::wstringstream ss;\r
ss << L"201 INFO OK\r\n";\r
- ss << flash::read_template_meta_info(filename) << L"\r\n";\r
+ \r
+ auto xml = flash::read_template_meta_info(filename);\r
+ ss << widen(xml);\r
+ ss << L"\r\n";\r
\r
SetReplyString(ss.str());\r
return true;\r
try\r
{\r
std::wstringstream replyString;\r
+ replyString << TEXT("201 INFO OK\r\n");\r
+\r
if(_parameters.size() >= 1)\r
{\r
- int channelIndex = boost::lexical_cast<int>(_parameters.at(0).c_str())-1;\r
- replyString << TEXT("201 INFO OK\r\n");\r
- GenerateChannelInfo(channelIndex, channels_.at(channelIndex), replyString);\r
+ int channelIndex = boost::lexical_cast<int>(_parameters.at(0).c_str())-1; \r
+ boost::property_tree::xml_parser::write_xml(replyString, channels_.at(channelIndex)->info(), boost::property_tree::xml_writer_settings<wchar_t>(' ', 3));\r
}\r
else\r
{\r
- replyString << TEXT("200 INFO OK\r\n");\r
- for(size_t n = 0; n < channels_.size(); ++n)\r
- GenerateChannelInfo(n, channels_[n], replyString);\r
- replyString << TEXT("\r\n");\r
+ boost::property_tree::wptree info;\r
+ auto& node = info.add(L"channels", L"");\r
+ int index = 0;\r
+ BOOST_FOREACH(auto channel, channels_)\r
+ {\r
+ BOOST_FOREACH(auto update, channel->info())\r
+ {\r
+ auto& channel = node.add_child(update.first, update.second);\r
+ channel.push_front(std::make_pair(L"index", boost::lexical_cast<std::wstring>(++index)));\r
+ }\r
+ }\r
+ boost::property_tree::xml_parser::write_xml(replyString, info, boost::property_tree::xml_writer_settings<wchar_t>(' ', 3));\r
}\r
+ replyString << TEXT("\r\n");\r
SetReplyString(replyString.str());\r
return true;\r
}\r