Olive
media.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 MEDIA_H
22 #define MEDIA_H
23 
24 #include <QList>
25 #include <QVariant>
26 #include <QIcon>
27 
28 #include "project/marker.h"
29 #include "project/footage.h"
30 
31 enum MediaType {
35 };
36 
37 class Sequence;
38 using SequencePtr = std::shared_ptr<Sequence>;
39 
40 using VoidPtr = std::shared_ptr<void>;
41 
42 class Media
43 {
44 public:
45  Media(Media* iparent);
46  ~Media();
49  void set_footage(FootagePtr f);
50  void set_sequence(SequencePtr s);
51  void set_folder();
52  void set_icon(const QIcon &ico);
53  void set_parent(Media* p);
54  void update_tooltip(const QString& error = 0);
56  int get_type();
57  const QString& get_name();
58  void set_name(const QString& n);
59 
60  double get_frame_rate(int stream = -1);
61  int get_sampling_rate(int stream = -1);
62 
63  // item functions
64  void appendChild(Media *child);
65  bool setData(int col, const QVariant &value);
66  Media *child(int row);
67  int childCount() const;
68  int columnCount() const;
69  QVariant data(int column, int role);
70  int row() const;
71  Media *parentItem();
72  void removeChild(int i);
73 
74  // get markers from internal object
75  QVector<Marker>& get_markers();
76 
77  bool root;
78  int temp_id;
79  int temp_id2;
80 private:
81  int type;
83 
84  // item functions
85  QList<Media*> children;
87  QString folder_name;
88  QString tooltip;
89  QIcon icon;
90 };
91 
92 #endif // MEDIA_H
QList< Media * > children
Definition: media.h:85
int row() const
Definition: media.cpp:339
bool root
Definition: media.h:77
void set_name(const QString &n)
Definition: media.cpp:221
std::shared_ptr< void > VoidPtr
Definition: clipboard.h:31
QString tooltip
Definition: media.h:88
Definition: sequence.h:31
void set_sequence(SequencePtr s)
Definition: media.cpp:88
bool setData(int col, const QVariant &value)
Definition: media.cpp:260
void removeChild(int i)
Definition: media.cpp:350
void set_folder()
Definition: media.cpp:95
const QString & get_name()
Definition: media.cpp:213
Media * parentItem()
Definition: media.cpp:346
std::shared_ptr< Footage > FootagePtr
Definition: footage.h:103
int get_type()
Definition: media.cpp:209
Definition: media.h:42
void update_tooltip(const QString &error=0)
Definition: media.cpp:110
SequencePtr to_sequence()
Definition: media.cpp:79
Media * parent
Definition: media.h:86
QString folder_name
Definition: media.h:87
QVector< Marker > & get_markers()
Definition: media.cpp:354
int type
Definition: media.h:81
int childCount() const
Definition: media.cpp:275
VoidPtr to_object()
Definition: media.cpp:205
Media(Media *iparent)
Definition: media.cpp:63
int temp_id
Definition: media.h:78
void set_parent(Media *p)
Definition: media.cpp:106
FootagePtr to_footage()
Definition: media.cpp:75
int temp_id2
Definition: media.h:79
MediaType
Definition: media.h:31
int get_sampling_rate(int stream=-1)
Definition: media.cpp:242
Media * child(int row)
Definition: media.cpp:271
std::shared_ptr< Sequence > SequencePtr
Definition: clip.h:48
int columnCount() const
Definition: media.cpp:279
Definition: media.h:33
void set_icon(const QIcon &ico)
Definition: media.cpp:102
Definition: media.h:34
void appendChild(Media *child)
Definition: media.cpp:255
Definition: media.h:32
double get_frame_rate(int stream=-1)
Definition: media.cpp:229
VoidPtr object
Definition: media.h:82
QVariant data(int column, int role)
Definition: media.cpp:283
~Media()
Definition: media.cpp:69
void set_footage(FootagePtr f)
Definition: media.cpp:83
QIcon icon
Definition: media.h:89