Olive
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
sequence.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 SEQUENCE_H
22 #define SEQUENCE_H
23 
24 #include <memory>
25 #include <QVector>
26 
27 #include "clip.h"
28 #include "marker.h"
29 #include "selection.h"
30 
31 class Sequence {
32 public:
33  Sequence();
34  ~Sequence();
35  SequencePtr copy();
36  QString name;
37  void getTrackLimits(int* video_tracks, int* audio_tracks);
38  long getEndFrame();
39  int width;
40  int height;
41  double frame_rate;
44 
45  void RefreshClips(Media* m = nullptr);
46  QVector<Clip*> SelectedClips(bool containing = true);
47  QVector<int> SelectedClipIndexes();
48 
50 
51  bool IsClipSelected(int clip_index, bool containing = true);
52  bool IsClipSelected(Clip* clip, bool containing = true);
54 
55  QVector<Selection> selections;
56  long playhead;
57 
61 
63 
64  int save_id;
65 
66  QVector<Marker> markers;
67  QVector<ClipPtr> clips;
68 };
69 
70 using SequencePtr = std::shared_ptr<Sequence>;
71 
72 // static variable for the currently active sequence
73 namespace olive {
75 }
76 
77 #endif // SEQUENCE_H
QVector< int > SelectedClipIndexes()
Definition: sequence.cpp:104
QVector< Clip * > SelectedClips(bool containing=true)
Definition: sequence.cpp:90
double frame_rate
Definition: sequence.h:41
int audio_frequency
Definition: sequence.h:42
bool IsClipSelected(int clip_index, bool containing=true)
Definition: sequence.cpp:159
SequencePtr copy()
Definition: sequence.cpp:39
QVector< ClipPtr > clips
Definition: sequence.h:67
QVector< Marker > markers
Definition: sequence.h:66
void RefreshClips(Media *m=nullptr)
Definition: sequence.cpp:78
void getTrackLimits(int *video_tracks, int *audio_tracks)
Definition: sequence.cpp:218
bool IsTransitionSelected(Transition *t)
Definition: sequence.cpp:176
QVector< Selection > selections
Definition: sequence.h:55
bool wrapper_sequence
Definition: sequence.h:62
Definition: clip.h:56
bool using_workarea
Definition: sequence.h:58
int width
Definition: sequence.h:39
SequencePtr ActiveSequence
Definition: sequence.cpp:236
long workarea_out
Definition: sequence.h:60
Definition: media.h:45
QString name
Definition: sequence.h:36
Effect * GetSelectedGizmo()
Definition: sequence.cpp:118
long playhead
Definition: sequence.h:56
long workarea_in
Definition: sequence.h:59
Definition: transition.h:44
int height
Definition: sequence.h:40
long getEndFrame()
Definition: sequence.cpp:67
~Sequence()
Definition: sequence.cpp:37
Definition: sequence.h:31
int save_id
Definition: sequence.h:64
Sequence()
Definition: sequence.cpp:28
Definition: effect.h:136
std::shared_ptr< Sequence > SequencePtr
Definition: media.h:38
int audio_layout
Definition: sequence.h:43