]> git.sesse.net Git - casparcg/commitdiff
2.0. amcp: Added MIXER CLEAR command.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 20 Jun 2011 13:10:58 +0000 (13:10 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 20 Jun 2011 13:10:58 +0000 (13:10 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@924 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/mixer/mixer.cpp
core/mixer/mixer.h
protocol/amcp/AMCPCommandsImpl.cpp
protocol/amcp/AMCPCommandsImpl.h
shell/main.cpp
shell/resource.h
shell/shell.rc
shell/shell.vcxproj.filters

index 4d2e50693f7a09e84c4e93f71a77ae85fefba78d..f56f98f25c11024386e30d193f52c319c5a0b2d7 100644 (file)
@@ -131,6 +131,18 @@ public:
        {               \r
                return image_mixer_.create_frame(tag, desc);\r
        }\r
+\r
+       void reset_transforms()\r
+       {\r
+               channel_.execution().invoke([&]\r
+               {\r
+                       set_transform(image_transform(), 0, L"none");\r
+                       set_transform(audio_transform(), 0, L"none");\r
+\r
+                       boost::fusion::at_key<image_transform>(transforms_).clear();\r
+                       boost::fusion::at_key<audio_transform>(transforms_).clear();\r
+               });\r
+       }\r
                        \r
        template<typename T>    \r
        void set_transform(const T& transform, unsigned int mix_duration, const std::wstring& tween)\r
@@ -256,6 +268,7 @@ safe_ptr<core::write_frame> mixer::create_frame(void* tag, size_t width, size_t
        desc.planes.push_back( core::pixel_format_desc::plane(width, height, 4));\r
        return create_frame(tag, desc);\r
 }\r
+void mixer::reset_transforms(){impl_->reset_transforms();}\r
 void mixer::set_image_transform(const core::image_transform& transform, unsigned int mix_duration, const std::wstring& tween){impl_->set_transform<core::image_transform>(transform, mix_duration, tween);}\r
 void mixer::set_image_transform(int index, const core::image_transform& transform, unsigned int mix_duration, const std::wstring& tween){impl_->set_transform<core::image_transform>(index, transform, mix_duration, tween);}\r
 void mixer::set_audio_transform(const core::audio_transform& transform, unsigned int mix_duration, const std::wstring& tween){impl_->set_transform<core::audio_transform>(transform, mix_duration, tween);}\r
index ce0670bdc3de5591028dc820c87a5962eb2f60b6..317a6f17e70d476f9a12b92ac41dfddefdb11dfc 100644 (file)
@@ -51,6 +51,8 @@ public:
        \r
        core::video_format_desc get_video_format_desc() const; // nothrow\r
 \r
+       void reset_transforms();\r
+\r
        void set_image_transform(const core::image_transform& transform, unsigned int mix_duration = 0, const std::wstring& tween = L"linear");\r
        void set_image_transform(int index, const core::image_transform& transform, unsigned int mix_duration = 0, const std::wstring& tween = L"linear");\r
 \r
index e705123b59c0528dac183212b375dda0b3d399e3..72be70888887aae9bf7e8abafdc4d5d448134aa5 100644 (file)
@@ -378,6 +378,10 @@ bool MixerCommand::DoExecute()
                        GetChannel()->mixer()->set_image_transform(image_transform(), duration, tween);\r
                        GetChannel()->mixer()->set_audio_transform(audio_transform(), duration, tween);\r
                }\r
+               else if(_parameters[0] == L"CLEAR")\r
+               {\r
+                       GetChannel()->mixer()->reset_transforms();\r
+               }\r
        \r
                SetReplyString(TEXT("202 MIXER OK\r\n"));\r
 \r
index 4e12c6257499833144952c60b6269217a582ba84..341c6a63ee5a0c48c0ae2aed8ce78c061d5b99b2 100644 (file)
@@ -36,7 +36,7 @@ class ParamCommand : public AMCPCommandBase<true, AddToQueue, 2>
        bool DoExecute();\r
 };\r
 \r
-class MixerCommand : public AMCPCommandBase<true, AddToQueue, 2>\r
+class MixerCommand : public AMCPCommandBase<true, AddToQueue, 1>\r
 {\r
        std::wstring print() const { return L"MixerCommand";}\r
        bool DoExecute();\r
index cfdd86cacd62f5b37f61c1600ca8fa7ecc878fee..1f95ebb663ac3c39b58e18b10c15120e7f7bdd28 100644 (file)
 CComModule _AtlModule;\r
 extern __declspec(selectany) CAtlModule* _pAtlModule = &_AtlModule;\r
 \r
+void change_icon( const HICON hNewIcon )\r
+{\r
+   auto hMod = ::LoadLibrary(L"Kernel32.dll"); \r
+   typedef DWORD(__stdcall *SCI)(HICON);\r
+   auto pfnSetConsoleIcon = reinterpret_cast<SCI>(::GetProcAddress(hMod, "SetConsoleIcon")); \r
+   pfnSetConsoleIcon(hNewIcon); \r
+   ::FreeLibrary(hMod);\r
+}\r
+\r
 void setup_console_window()\r
 {       \r
        auto hOut = GetStdHandle(STD_OUTPUT_HANDLE);\r
@@ -82,7 +91,9 @@ void setup_console_window()
        DisplayArea.Right = coord.X-1;\r
        DisplayArea.Bottom = (coord.Y-1)/2;\r
        SetConsoleWindowInfo(hOut, TRUE, &DisplayArea);\r
-               \r
+                \r
+       change_icon(::LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(101)));\r
+\r
        // Set console title.\r
        std::wstringstream str;\r
        str << "CasparCG Server " << caspar::env::version();\r
index 9486e8ee537d866def4c9f5b09b26783c725355c..a5fb456e41a07f5ab601ddfb36d88cb6743d2085 100644 (file)
Binary files a/shell/resource.h and b/shell/resource.h differ
index 8e8fb93f896d572865f1b02295861290b1dc88e2..eaadb19a01713c4581c5b57938a869a10502aa86 100644 (file)
Binary files a/shell/shell.rc and b/shell/shell.rc differ
index 83fd9b47673bdbc7848a0d1057dc38ae1ea77fcf..d31f67e1fabcb520945d36bd28810740a8dbd102 100644 (file)
@@ -9,8 +9,8 @@
     </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <None Include="CasparCG.ico" />\r
     <None Include="casparcg.config" />\r
+    <None Include="CasparCG.ico" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="server.h">\r