});\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
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
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
}\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
}\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
<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