]> git.sesse.net Git - casparcg/blobdiff - modules/image/producer/image_scroll_producer.cpp
2.0. Updated namespaces.
[casparcg] / modules / image / producer / image_scroll_producer.cpp
index fc9439d32efcccabb04329c3c5c9a32432720d6c..4a7b8d195a0b38ebf3c729d1bfdc89820e7eb58b 100644 (file)
@@ -17,6 +17,9 @@
 *    along with CasparCG.  If not, see <http://www.gnu.org/licenses/>.\r
 *\r
 */\r
+// TODO: Refactor.\r
+// TODO: Looping.\r
+\r
 #include "image_scroll_producer.h"\r
 \r
 #include "../util/image_loader.h"\r
@@ -24,7 +27,8 @@
 #include <core/video_format.h>\r
 \r
 #include <core/producer/frame/basic_frame.h>\r
-#include <core/producer/frame/image_transform.h>\r
+#include <core/producer/frame/frame_factory.h>\r
+#include <core/producer/frame/frame_transform.h>\r
 #include <core/mixer/write_frame.h>\r
 \r
 #include <common/env.h>\r
 #include <boost/assign.hpp>\r
 #include <boost/filesystem.hpp>\r
 #include <boost/foreach.hpp>\r
+#include <boost/lexical_cast.hpp>\r
 \r
 #include <algorithm>\r
+#include <array>\r
 \r
 using namespace boost::assign;\r
 \r
-namespace caspar {\r
+namespace caspar { namespace image {\r
                \r
 struct image_scroll_producer : public core::frame_producer\r
 {      \r
@@ -159,7 +165,10 @@ struct image_scroll_producer : public core::frame_producer
                                return core::basic_frame::eof();\r
 \r
                        for(size_t n = 0; n < frames_.size(); ++n)\r
-                               frames_[n]->get_image_transform().set_fill_translation(start_offset_[0], start_offset_[1] -0.5*(n+1) + delta_ * 0.5/static_cast<double>(format_desc_.height));\r
+                       {\r
+                               frames_[n]->get_frame_transform().fill_translation[0] = start_offset_[0];\r
+                               frames_[n]->get_frame_transform().fill_translation[1] = start_offset_[1] - (n+1) + delta_ * 0.5/static_cast<double>(format_desc_.height);\r
+                       }\r
                }\r
                else\r
                {\r
@@ -167,7 +176,10 @@ struct image_scroll_producer : public core::frame_producer
                                return core::basic_frame::eof();\r
 \r
                        for(size_t n = 0; n < frames_.size(); ++n)\r
-                               frames_[n]->get_image_transform().set_fill_translation(start_offset_[0] -0.5*(n+1) + delta_ * 0.5/static_cast<double>(format_desc_.height), start_offset_[1]);\r
+                       {\r
+                               frames_[n]->get_frame_transform().fill_translation[0] = start_offset_[0] - (n+1) + delta_ * 0.5/static_cast<double>(format_desc_.width);                                \r
+                               frames_[n]->get_frame_transform().fill_translation[1] = start_offset_[1];\r
+                       }\r
                }\r
 \r
                return last_frame_ = core::basic_frame(frames_);\r
@@ -188,18 +200,18 @@ struct image_scroll_producer : public core::frame_producer
                if(height_ > format_desc_.height)\r
                {\r
                        auto length = (height_ - format_desc_.height);\r
-                       return (length/std::abs(speed_) + length % std::abs(delta_));\r
+                       return length/std::abs(speed_);// + length % std::abs(delta_));\r
                }\r
                else\r
                {\r
                        auto length = (width_ - format_desc_.width);\r
-                       auto result = (length/std::abs(speed_) + length % std::abs(delta_));\r
+                       auto result = length/std::abs(speed_);// + length % std::abs(delta_));\r
                        return result;\r
                }\r
        }\r
 };\r
 \r
-safe_ptr<core::frame_producer> create_image_scroll_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_scroll_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
 {\r
        static const std::vector<std::wstring> extensions = list_of(L"png")(L"tga")(L"bmp")(L"jpg")(L"jpeg")(L"gif")(L"tiff")(L"tif")(L"jp2")(L"jpx")(L"j2k")(L"j2c");\r
        std::wstring filename = env::media_folder() + L"\\" + params[0];\r
@@ -226,5 +238,4 @@ safe_ptr<core::frame_producer> create_image_scroll_producer(const safe_ptr<core:
        return make_safe<image_scroll_producer>(frame_factory, filename + L"." + *ext, speed);\r
 }\r
 \r
-\r
-}
\ No newline at end of file
+}}
\ No newline at end of file