]> git.vomp.tv Git - vompclient-marten.git/blob - vmedialist.h
Live radio prebuffering display - code upgrades for connection lost handling
[vompclient-marten.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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 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 "tbboxx.h"
29 #include "wselectlist.h"
30 #include "media.h"
31
32 class DirList;
33 class Message;
34 class BoxStack;
35
36 class VMediaList : public TBBoxx
37 {
38   public:
39     VMediaList();
40     ~VMediaList();
41
42     void setList(MediaList* chanList);
43     void highlightMedia(Media* media);
44     const char *getDirname() const;
45     void processMessage(Message* m);
46     int handleCommand(int command);
47     void draw();
48
49     //factory method
50     //return 0 on success
51     static int createList();
52
53     //move functions for getMedia
54     const static ULONG MV_NEXT=1;
55     const static ULONG MV_PREV=2;
56     const static ULONG MV_RND=3;
57     const static ULONG MV_NONE=0;
58
59     //move selection to the next matching media
60     //with the given move
61     //return NULL if none found
62     Media * getMedia(int type,ULONG move=MV_NONE);
63
64                 //get the number of media entries of particular types in this list
65                 //if lowerThen is set, only count entries lt this one
66                 int getNumEntries(int mediaType,int lowerThen=-1);
67
68   private:
69     /**
70       * fill the medialist basing on the current dirname
71       */
72     int load();
73     BoxStack*    boxstack;
74     MediaList    *mediaList;
75     WSelectList sl;
76     bool         loading;
77     void doShowingBar();
78                 int          sortOrder;
79                 //sort list defined by new order
80                 void         sortList(int order);
81                 static const int SORT_NONE=0;
82                 static const int SORT_NAME=1;
83                 static const int SORT_TIME=2;
84                 static const int SORT_RANDOM=3;
85                 void         clearMediaList();
86                 void         updateSelectList();
87                 void         updateSelectList(int current);
88                 DirList*    dirlist;
89
90 };
91
92 #endif