2 * copyright (c) 2010 Sveriges Television AB <info@casparcg.com>
\r
4 * This file is part of CasparCG.
\r
6 * CasparCG is free software: you can redistribute it and/or modify
\r
7 * it under the terms of the GNU General Public License as published by
\r
8 * the Free Software Foundation, either version 3 of the License, or
\r
9 * (at your option) any later version.
\r
11 * CasparCG is distributed in the hope that it will be useful,
\r
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
14 * GNU General Public License for more details.
\r
16 * You should have received a copy of the GNU General Public License
\r
17 * along with CasparCG. If not, see <http://www.gnu.org/licenses/>.
\r
22 #include "../frame_producer.h"
\r
24 #include <common/utility/tweener.h>
\r
29 namespace caspar { namespace core {
\r
43 static std::wstring print(type t)
\r
47 case transition::cut: return L"cut";
\r
48 case transition::mix: return L"mix";
\r
49 case transition::push: return L"push";
\r
50 case transition::slide: return L"slide";
\r
51 case transition::wipe: return L"wipe";
\r
52 default: return L"";
\r
57 struct transition_direction
\r
66 struct transition_info
\r
69 : type(transition::cut)
\r
71 , direction(transition_direction::from_left)
\r
72 , tweener(get_tweener(L"linear")){}
\r
75 transition_direction::type direction;
\r
76 transition::type type;
\r
80 safe_ptr<frame_producer> create_transition_producer(const video_format_desc& format_desc, const safe_ptr<frame_producer>& destination, const transition_info& info);
\r