]> git.vomp.tv Git - vompclient.git/blob - vmedialist.h
Media Player From Andreas Vogel
[vompclient.git] / vmedialist.h
1 /*
2     Copyright 2004-2005 Chris Tallon, Andreas Vogel
3
4     This file is part of VOMP.
5
6     VOMP 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 2 of the License, or
9     (at your option) any later version.
10
11     VOMP 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 VOMP; if not, write to the Free Software
18     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21 #ifndef VMEDIALIST_H
22 #define VMEDIALIST_H
23
24 #include <stdio.h>
25 #include <string.h>
26 #include <vector>
27
28 #include "view.h"
29 #include "wselectlist.h"
30 #include "remote.h"
31 #include "wsymbol.h"
32 #include "viewman.h"
33 #include "vdr.h"
34 #include "media.h"
35 #include "vvideolive.h"
36 #include "colour.h"
37 #include "video.h"
38 #include "i18n.h"
39
40 class DirList;
41 class VMediaList : public View
42 {
43   public:
44     VMediaList();
45     ~VMediaList();
46
47     void setList(MediaList* chanList);
48     void highlightMedia(Media* media);
49     const char *getDirname() const;
50     void processMessage(Message* m);
51     int handleCommand(int command);
52     void draw();
53
54     //factory method
55     //return 0 on success
56     static int createList();
57
58     //move functions for getMedia
59     const static ULONG MV_NEXT=1;
60     const static ULONG MV_PREV=2;
61     const static ULONG MV_RND=3;
62     const static ULONG MV_NONE=0;
63
64     //move selection to the next matching media
65     //with the given move
66     //return NULL if none found
67     Media * getMedia(int type,ULONG move=MV_NONE);
68
69                 //get the number of media entries of particular types in this list
70                 //if lowerThen is set, only count entries lt this one
71                 int getNumEntries(int mediaType,int lowerThen=-1);
72
73   private:
74     /**
75       * fill the medialist basing on the current dirname
76       */
77     int load();
78     MediaList    *mediaList;
79     WSelectList sl;
80     bool         loading;
81     void doShowingBar();
82                 int          sortOrder;
83                 //sort list defined by new order
84                 void         sortList(int order);
85                 static const int SORT_NONE=0;
86                 static const int SORT_NAME=1;
87                 static const int SORT_TIME=2;
88                 static const int SORT_RANDOM=3;
89                 void         clearMediaList();
90                 void         updateSelectList();
91                 void         updateSelectList(int current);
92                 DirList*    dirlist;
93
94 };
95
96 #endif