#include <core/consumer/output.h>\r
\r
#include <modules/flash/flash.h>\r
+#include <modules/flash/util/swf.h>\r
#include <modules/flash/producer/flash_producer.h>\r
#include <modules/flash/producer/cg_producer.h>\r
\r
\r
bool InfoCommand::DoExecute()\r
{\r
- try\r
- {\r
- std::wstringstream replyString;\r
- if(_parameters.size() >= 1)\r
+ if(_parameters.size() >= 1 && _parameters[0] == L"TEMPLATE")\r
+ { \r
+ try\r
{\r
- int channelIndex = _ttoi(_parameters.at(0).c_str())-1;\r
- replyString << TEXT("201 INFO OK\r\n");\r
- GenerateChannelInfo(channelIndex, channels_.at(channelIndex), replyString);\r
+ // Needs to be extended for any file, not just flash.\r
+\r
+ auto filename = flash::find_template(env::template_folder() + _parameters.at(1));\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
+ SetReplyString(ss.str());\r
+ return true;\r
}\r
- else\r
+ catch(...)\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
+ SetReplyString(TEXT("403 INFO ERROR\r\n"));\r
+ return false;\r
}\r
- SetReplyString(replyString.str());\r
}\r
- catch(...)\r
+ else // channel\r
{\r
- SetReplyString(TEXT("401 INFO ERROR\r\n"));\r
- return false;\r
+ try\r
+ {\r
+ std::wstringstream replyString;\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
+ }\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
+ }\r
+ SetReplyString(replyString.str());\r
+ return true;\r
+ }\r
+ catch(...)\r
+ {\r
+ SetReplyString(TEXT("403 INFO ERROR\r\n"));\r
+ return false;\r
+ }\r
}\r
-\r
- return true;\r
}\r
\r
bool ClsCommand::DoExecute()\r