00001 #ifndef VIDEOLIST_H_
00002 #define VIDEOLIST_H_
00003
00004
00005 enum TreeNodeType {
00006 kSubFolder = -1,
00007 kUpFolder = -2,
00008 kRootNode = -3,
00009 kNoFilesFound = -4,
00010 kDynamicSubFolder = -5,
00011 };
00012
00013
00014 enum TreeNodeAttributes {
00015 kNodeSort
00016 };
00017
00018 class MythGenericTree;
00019 class VideoFilterSettings;
00020 class VideoMetadataListManager;
00021 class ParentalLevel;
00022
00023 class VideoList
00024 {
00025 public:
00026 VideoList();
00027 ~VideoList();
00028
00029 MythGenericTree *buildVideoList(bool filebrowser, bool flatlist,
00030 int group_type,
00031 const ParentalLevel &parental_level,
00032 bool include_updirs);
00033
00034 void refreshList(bool filebrowser, const ParentalLevel &parental_level,
00035 bool flatlist, int group_type);
00036 bool refreshNode(MythGenericTree *node);
00037
00038 unsigned int count() const;
00039
00040 const VideoFilterSettings &getCurrentVideoFilter() const;
00041 void setCurrentVideoFilter(const VideoFilterSettings &filter);
00042
00043
00044 int TryFilter(const VideoFilterSettings &filter) const;
00045
00046 unsigned int getFilterChangedState();
00047
00048 bool Delete(int video_id);
00049
00050 const VideoMetadataListManager &getListCache() const;
00051
00052 MythGenericTree *GetTreeRoot();
00053
00054 void InvalidateCache();
00055
00056 private:
00057 class VideoListImp *m_imp;
00058 };
00059
00060 class VideoMetadata;
00061 class TreeNodeData
00062 {
00063 public:
00064 TreeNodeData();
00065 TreeNodeData(VideoMetadata *metadata);
00066 TreeNodeData(QString path, QString host, QString prefix);
00067
00068 TreeNodeData(const TreeNodeData &other);
00069 TreeNodeData &operator=(const TreeNodeData &rhs);
00070
00071 ~TreeNodeData();
00072
00073 VideoMetadata *GetMetadata();
00074 const VideoMetadata *GetMetadata() const;
00075 QString GetPath() const;
00076 QString GetHost() const;
00077 QString GetPrefix() const;
00078
00079 private:
00080 class TreeNodeDataPrivate *m_d;
00081 };
00082
00083 Q_DECLARE_METATYPE(TreeNodeData)
00084
00085 #endif // VIDEOLIST_H