Olive
media.h
1 #ifndef MEDIA_H
2 #define MEDIA_H
3 
4 #include <QList>
5 #include <QVariant>
6 
7 #include "project/marker.h"
8 
9 enum MediaType {
10  MEDIA_TYPE_FOOTAGE,
11  MEDIA_TYPE_SEQUENCE,
12  MEDIA_TYPE_FOLDER
13 };
14 
15 struct Footage;
16 class MediaThrobber;
17 struct Sequence;
18 #include <QIcon>
19 
20 class Media
21 {
22 public:
23  Media(Media* iparent);
24  ~Media();
25  Footage *to_footage();
26  Sequence* to_sequence();
27  void set_footage(Footage* f);
28  void set_sequence(Sequence* s);
29  void set_folder();
30  void set_icon(const QIcon &ico);
31  void set_parent(Media* p);
32  void update_tooltip(const QString& error = 0);
33  void *to_object();
34  int get_type();
35  const QString& get_name();
36  void set_name(const QString& n);
37  MediaThrobber* throbber;
38 
39  double get_frame_rate(int stream = -1);
40  int get_sampling_rate(int stream = -1);
41 
42  // item functions
43  void appendChild(Media *child);
44  bool setData(int col, const QVariant &value);
45  Media *child(int row);
46  int childCount() const;
47  int columnCount() const;
48  QVariant data(int column, int role);
49  int row() const;
50  Media *parentItem();
51  void removeChild(int i);
52 
53  // get markers from internal object
54  QVector<Marker>& get_markers();
55 
56  bool root;
57  int temp_id;
58  int temp_id2;
59 private:
60  int type;
61  void* object;
62 
63  // item functions
64  QList<Media*> children;
65  Media* parent;
66  QString folder_name;
67  QString tooltip;
68  QIcon icon;
69 };
70 
71 #endif // MEDIA_H
Definition: sequence.h:13
Definition: media.h:20
Definition: project.h:111
Definition: footage.h:46