Olive
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
transition.h
Go to the documentation of this file.
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef TRANSITION_H
22 #define TRANSITION_H
23 
24 #include "effect.h"
25 
30 };
31 
37  //TRANSITION_INTERNAL_CUBE,
39 };
40 
41 class Transition;
42 using TransitionPtr = std::shared_ptr<Transition>;
43 
44 class Transition : public Effect {
45  Q_OBJECT
46 public:
47  Transition(Clip* c, Clip* s, const EffectMeta* em);
48  virtual TransitionPtr copy(Clip* c, Clip* s);
50 
51  virtual void save(QXmlStreamWriter& stream) override;
52 
53  void set_length(int l);
54  int get_true_length();
55  int get_length();
56 
59 
60  static TransitionPtr Create(Clip* c, Clip* s, const EffectMeta* em, long length = 0);
61  static TransitionPtr CreateFromMeta(Clip *c, Clip *s, const EffectMeta* em);
62 
63 private:
65 
66 private slots:
67  void UpdateMaximumLength();
69 };
70 
71 #endif // TRANSITION_H
Clip * secondary_clip
Definition: transition.h:49
int get_length()
Definition: transition.cpp:76
Clip * get_closed_clip()
Definition: transition.cpp:92
Transition(Clip *c, Clip *s, const EffectMeta *em)
Definition: transition.cpp:44
The DoubleField class.
Definition: doublefield.h:13
static TransitionPtr CreateFromMeta(Clip *c, Clip *s, const EffectMeta *em)
Definition: transition.cpp:101
Definition: transition.h:27
void set_length(int l)
Definition: transition.cpp:68
static TransitionPtr Create(Clip *c, Clip *s, const EffectMeta *em, long length=0)
Definition: transition.cpp:160
long GetMaximumEmptySpaceOnClip(Clip *c)
Definition: transition.cpp:139
void UpdateMaximumLength()
Definition: transition.cpp:124
Definition: transition.h:28
Definition: clip.h:56
virtual void save(QXmlStreamWriter &stream) override
Definition: transition.cpp:63
TransitionType
Definition: transition.h:26
virtual TransitionPtr copy(Clip *c, Clip *s)
Definition: transition.cpp:59
Clip * get_opened_clip()
Definition: transition.cpp:83
Definition: effect.h:52
int get_true_length()
Definition: transition.cpp:72
TransitionInternal
Definition: transition.h:32
std::shared_ptr< Transition > TransitionPtr
Definition: transition.h:42
Definition: transition.h:29
Definition: transition.h:34
Definition: transition.h:35
Definition: transition.h:38
Definition: transition.h:44
Definition: transition.h:33
Definition: transition.h:36
DoubleField * length_field
Definition: transition.h:64
Definition: effect.h:136