]> git.sesse.net Git - casparcg/commitdiff
2.0.2: Added INFO TEMPLATE command, works for uncompressed templates.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 28 Nov 2011 09:24:08 +0000 (09:24 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 28 Nov 2011 09:24:08 +0000 (09:24 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.2@1694 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/flash/flash.vcxproj
modules/flash/flash.vcxproj.filters
modules/flash/producer/flash_producer.cpp
protocol/amcp/AMCPCommandsImpl.cpp
shell/casparcg.config

index 7489c88aab24db46c9a1b6248d92fd91b919018f..8cee6d31fd1592a542009504b73af8d813f605a1 100644 (file)
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
     </ClCompile>\r
+    <ClCompile Include="util\swf.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="flash.h" />\r
     <ClInclude Include="producer\FlashAxContainer.h" />\r
     <ClInclude Include="producer\flash_producer.h" />\r
     <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="util\swf.h" />\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index 3ae71c14eef02eee4a4805d354eae84d9ac05886..4d5c878807c72887a28947550a7322dae4818083 100644 (file)
@@ -10,6 +10,9 @@
     <Filter Include="source\interop">\r
       <UniqueIdentifier>{bd73f842-a8f5-4d98-92cf-81c623283dde}</UniqueIdentifier>\r
     </Filter>\r
+    <Filter Include="source\util">\r
+      <UniqueIdentifier>{74e59dfb-eba8-4169-ae40-4b6ac7bcbe3d}</UniqueIdentifier>\r
+    </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Midl Include="interop\Flash9e.IDL">\r
@@ -33,6 +36,9 @@
     <ClCompile Include="flash.cpp">\r
       <Filter>source</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="util\swf.cpp">\r
+      <Filter>source\util</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="interop\TimerHelper.h">\r
@@ -54,5 +60,8 @@
     <ClInclude Include="flash.h">\r
       <Filter>source</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="util\swf.h">\r
+      <Filter>source\util</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
index 2d2e5f9c4ade5fe456c7b717d7049b238cce56ff..8078464a893b13a88c9325bdf15fc15e817dd325 100644 (file)
@@ -453,6 +453,9 @@ std::wstring find_template(const std::wstring& template_name)
        \r
        if(boost::filesystem::exists(template_name + L".ct"))\r
                return template_name + L".ct";\r
+       \r
+       if(boost::filesystem::exists(template_name + L".swf"))\r
+               return template_name + L".swf";\r
 \r
        return L"";\r
 }\r
index 8ee4bf81f5996a5b3803189d5cf02d2793648925..e43b51b3ddcbe7ca7362f001ce1752dc6f402de3 100644 (file)
@@ -42,6 +42,7 @@
 #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
@@ -1316,31 +1317,54 @@ void GenerateChannelInfo(int index, const safe_ptr<core::video_channel>& pChanne
 \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 << flash::read_swf_meta_info(filename) << L"\r\n";\r
+                       ss << L"201 INFO OK\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
index 362a6c81dcf83941364c5d6ce9ce03fc24e19cb9..1418c4885e3c06432c05514cea8947a3d8f78626 100644 (file)
@@ -4,7 +4,7 @@
     <media-path>C:\casparmedia\_media\</media-path>\r
     <log-path>log\</log-path>\r
     <data-path>data\</data-path>\r
-    <template-path>templates\</template-path>\r
+    <template-path>C:\casparmedia\_templates\</template-path>\r
   </paths>\r
   <channels>\r
     <channel>\r