Olive
project
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
{
32
MEDIA_TYPE_FOOTAGE
,
33
MEDIA_TYPE_SEQUENCE
,
34
MEDIA_TYPE_FOLDER
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
();
47
FootagePtr
to_footage
();
48
SequencePtr
to_sequence
();
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);
55
VoidPtr
to_object
();
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
;
82
VoidPtr
object
;
83
84
// item functions
85
QList<Media*>
children
;
86
Media
*
parent
;
87
QString
folder_name
;
88
QString
tooltip
;
89
QIcon
icon
;
90
};
91
92
#endif // MEDIA_H
Media::children
QList< Media * > children
Definition:
media.h:85
Media::row
int row() const
Definition:
media.cpp:339
Media::root
bool root
Definition:
media.h:77
Media::set_name
void set_name(const QString &n)
Definition:
media.cpp:221
VoidPtr
std::shared_ptr< void > VoidPtr
Definition:
clipboard.h:31
Media::tooltip
QString tooltip
Definition:
media.h:88
Sequence
Definition:
sequence.h:31
Media::set_sequence
void set_sequence(SequencePtr s)
Definition:
media.cpp:88
Media::setData
bool setData(int col, const QVariant &value)
Definition:
media.cpp:260
Media::removeChild
void removeChild(int i)
Definition:
media.cpp:350
Media::set_folder
void set_folder()
Definition:
media.cpp:95
Media::get_name
const QString & get_name()
Definition:
media.cpp:213
Media::parentItem
Media * parentItem()
Definition:
media.cpp:346
FootagePtr
std::shared_ptr< Footage > FootagePtr
Definition:
footage.h:103
Media::get_type
int get_type()
Definition:
media.cpp:209
Media
Definition:
media.h:42
Media::update_tooltip
void update_tooltip(const QString &error=0)
Definition:
media.cpp:110
Media::to_sequence
SequencePtr to_sequence()
Definition:
media.cpp:79
Media::parent
Media * parent
Definition:
media.h:86
Media::folder_name
QString folder_name
Definition:
media.h:87
Media::get_markers
QVector< Marker > & get_markers()
Definition:
media.cpp:354
Media::type
int type
Definition:
media.h:81
footage.h
Media::childCount
int childCount() const
Definition:
media.cpp:275
Media::to_object
VoidPtr to_object()
Definition:
media.cpp:205
Media::Media
Media(Media *iparent)
Definition:
media.cpp:63
Media::temp_id
int temp_id
Definition:
media.h:78
Media::set_parent
void set_parent(Media *p)
Definition:
media.cpp:106
Media::to_footage
FootagePtr to_footage()
Definition:
media.cpp:75
Media::temp_id2
int temp_id2
Definition:
media.h:79
MediaType
MediaType
Definition:
media.h:31
Media::get_sampling_rate
int get_sampling_rate(int stream=-1)
Definition:
media.cpp:242
Media::child
Media * child(int row)
Definition:
media.cpp:271
SequencePtr
std::shared_ptr< Sequence > SequencePtr
Definition:
clip.h:48
Media::columnCount
int columnCount() const
Definition:
media.cpp:279
MEDIA_TYPE_SEQUENCE
Definition:
media.h:33
Media::set_icon
void set_icon(const QIcon &ico)
Definition:
media.cpp:102
MEDIA_TYPE_FOLDER
Definition:
media.h:34
Media::appendChild
void appendChild(Media *child)
Definition:
media.cpp:255
MEDIA_TYPE_FOOTAGE
Definition:
media.h:32
Media::get_frame_rate
double get_frame_rate(int stream=-1)
Definition:
media.cpp:229
marker.h
Media::object
VoidPtr object
Definition:
media.h:82
Media::data
QVariant data(int column, int role)
Definition:
media.cpp:283
Media::~Media
~Media()
Definition:
media.cpp:69
Media::set_footage
void set_footage(FootagePtr f)
Definition:
media.cpp:83
Media::icon
QIcon icon
Definition:
media.h:89
Generated by
1.8.15