]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 18 Mar 2011 20:04:23 +0000 (20:04 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 18 Mar 2011 20:04:23 +0000 (20:04 +0000)
mixer/frame_mixer_device.cpp
mixer/frame_mixer_device.h
protocol/amcp/AMCPCommandsImpl.cpp
shell/caspar.config

index 84bb404b70e7e8c16e45631ea994f0b32f2d6248..3ee61027ac0494db89574119675e18d88702d03f 100644 (file)
@@ -245,6 +245,26 @@ public:
                });\r
        }\r
 \r
+       void reset_image_transform(int mix_duration)\r
+       {\r
+               executor_.invoke([&]\r
+               {\r
+                       BOOST_FOREACH(auto& t, image_transforms_)                       \r
+                                t.second = basic_animated_value<image_transform>(t.second.fetch(), image_transform(), mix_duration);                   \r
+                       root_image_transform_ = basic_animated_value<image_transform>(root_image_transform_.fetch(), image_transform(), mix_duration);\r
+               });\r
+       }\r
+\r
+       void reset_audio_transform(int mix_duration)\r
+       {\r
+               executor_.invoke([&]\r
+               {\r
+                       BOOST_FOREACH(auto& t, audio_transforms_)\r
+                               t.second = basic_animated_value<audio_transform>(t.second.fetch(), audio_transform(), mix_duration);\r
+                       root_audio_transform_ = basic_animated_value<audio_transform>(root_audio_transform_.fetch(), audio_transform(), mix_duration);\r
+               });\r
+       }\r
+\r
        std::wstring print() const\r
        {\r
                return (parent_printer_ ? parent_printer_() + L"/" : L"") + L"mixer";\r
@@ -282,5 +302,7 @@ void frame_mixer_device::apply_image_transform(const std::function<image_transfo
 void frame_mixer_device::apply_image_transform(int index, const std::function<image_transform(image_transform)>& transform, int mix_duration){impl_->apply_image_transform(index, transform, mix_duration);}\r
 void frame_mixer_device::apply_audio_transform(const std::function<audio_transform(audio_transform)>& transform, int mix_duration){impl_->apply_audio_transform(transform, mix_duration);}\r
 void frame_mixer_device::apply_audio_transform(int index, const std::function<audio_transform(audio_transform)>& transform, int mix_duration ){impl_->apply_audio_transform(index, transform, mix_duration);}\r
+void frame_mixer_device::reset_image_transform(int mix_duration){impl_->reset_image_transform(mix_duration);}\r
+void frame_mixer_device::reset_audio_transform(int mix_duration){impl_->reset_audio_transform(mix_duration);}\r
 \r
 }}
\ No newline at end of file
index 897773ca5ed5c8d8b7fb18a981c2931cee5752cc..68a7213b7d0a1763b17c52dd593ee97a64cf7c17 100644 (file)
@@ -68,6 +68,9 @@ public:
        void apply_audio_transform(const std::function<audio_transform(audio_transform)>& transform, int mix_duration = 0);\r
        void apply_audio_transform(int index, const std::function<audio_transform(audio_transform)>& transform, int mix_duration = 0);\r
 \r
+       void reset_image_transform(int mix_duration = 0);\r
+       void reset_audio_transform(int mix_duration = 0);\r
+\r
 private:\r
        struct implementation;\r
        safe_ptr<implementation> impl_;\r
index d2de761d6d54b6b11d710a973286848c5532fb42..525f8ddd99a979196c745b59242d572f44954ea0 100644 (file)
@@ -277,7 +277,8 @@ bool MixerCommand::DoExecute()
                        }\r
                        else if(_parameters[1] == L"RESET")\r
                        {\r
-                               GetChannel()->mixer().set_image_transform(GetLayerIndex(), image_transform());\r
+                               int duration = _parameters.size() > 1 ? lexical_cast_or_default(_parameters[2], 0) : 0;\r
+                               GetChannel()->mixer().reset_image_transform(duration);\r
                        }\r
                }\r
                else if(_parameters[0] == L"AUDIO")\r
@@ -301,13 +302,15 @@ bool MixerCommand::DoExecute()
                        }\r
                        else if(_parameters[1] == L"RESET")\r
                        {\r
-                               GetChannel()->mixer().set_audio_transform(GetLayerIndex(), audio_transform());\r
+                               int duration = _parameters.size() > 1 ? lexical_cast_or_default(_parameters[2], 0) : 0;\r
+                               GetChannel()->mixer().reset_audio_transform(duration);\r
                        }\r
                }\r
                else if(_parameters[0] == L"RESET")\r
                {\r
-                       GetChannel()->mixer().set_image_transform(GetLayerIndex(), image_transform());\r
-                       GetChannel()->mixer().set_audio_transform(GetLayerIndex(), audio_transform());\r
+                       int duration = _parameters.size() > 1 ? lexical_cast_or_default(_parameters[2], 0) : 0;\r
+                       GetChannel()->mixer().reset_image_transform(duration);\r
+                       GetChannel()->mixer().reset_audio_transform(duration);\r
                }\r
        \r
                SetReplyString(TEXT("202 MIXER OK\r\n"));\r
index c99fdedc4b18a83924a6e30dafb72892d05aecfd..f66871e147e2943b99a6937d7ccadec394bad9e6 100644 (file)
@@ -15,7 +15,7 @@
       <videomode>PAL</videomode>\r
       <consumers>\r
         <!--ogl>\r
-          <device>1</device>\r
+          <device>0</device>\r
           <stretch>uniform</stretch>\r
           <windowed>true</windowed>\r
         </ogl-->\r