* 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
\r
#include <core/producer/frame/basic_frame.h>\r
#include <core/producer/frame/frame_factory.h>\r
-#include <core/producer/frame/image_transform.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
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_ * static_cast<double>(format_desc_.height);\r
+ }\r
}\r
else\r
{\r
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_ * 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
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