2019-07-11 12:06:18 +02:00
|
|
|
#ifndef __TVGUIDE_CHANNELEPG_H
|
|
|
|
#define __TVGUIDE_CHANNELEPG_H
|
2013-01-17 13:16:44 +01:00
|
|
|
|
2013-12-07 15:51:50 +01:00
|
|
|
#include <vdr/tools.h>
|
2019-07-11 15:11:26 +02:00
|
|
|
#include "gridelement.h"
|
2013-12-07 15:51:50 +01:00
|
|
|
#include "epggrid.h"
|
|
|
|
#include "headergrid.h"
|
|
|
|
#include "switchtimer.h"
|
|
|
|
|
2019-07-11 15:06:07 +02:00
|
|
|
class cGridElement;
|
2013-01-17 13:16:44 +01:00
|
|
|
class cEpgGrid;
|
2013-05-20 11:37:37 +02:00
|
|
|
class cHeaderGrid;
|
2013-12-07 15:51:50 +01:00
|
|
|
|
2019-07-11 12:06:18 +02:00
|
|
|
// --- cChannelEpg -------------------------------------------------------------
|
2013-01-17 13:16:44 +01:00
|
|
|
|
2019-07-11 12:06:18 +02:00
|
|
|
class cChannelEpg : public cListObject, public cStyledPixmap {
|
2013-01-17 13:16:44 +01:00
|
|
|
private:
|
2019-07-11 14:34:31 +02:00
|
|
|
cTimeManager *timeManager;
|
2013-05-26 11:38:05 +02:00
|
|
|
int num;
|
|
|
|
const cChannel *channel;
|
|
|
|
cHeaderGrid *header;
|
2019-07-11 15:06:07 +02:00
|
|
|
cList<cGridElement> grids;
|
2018-03-08 13:30:41 +01:00
|
|
|
#if VDRVERSNUM >= 20301
|
2018-03-08 13:02:38 +01:00
|
|
|
#else
|
2013-05-26 11:38:05 +02:00
|
|
|
cSchedulesLock *schedulesLock;
|
2018-03-08 13:02:38 +01:00
|
|
|
#endif
|
2013-05-26 11:38:05 +02:00
|
|
|
const cSchedules *schedules;
|
|
|
|
bool hasTimer;
|
2013-07-09 00:17:42 +02:00
|
|
|
bool hasSwitchTimer;
|
2019-07-11 15:06:07 +02:00
|
|
|
cGridElement *addEpgGrid(const cEvent *event, cGridElement *firstGrid, bool color);
|
|
|
|
cGridElement *addDummyGrid(time_t start, time_t end, cGridElement *firstGrid, bool color);
|
2013-01-17 13:16:44 +01:00
|
|
|
public:
|
2019-07-11 14:34:31 +02:00
|
|
|
cChannelEpg(int num, const cChannel *channel, cTimeManager *timeManager);
|
2019-07-11 12:06:18 +02:00
|
|
|
virtual ~cChannelEpg(void);
|
2013-05-26 11:38:05 +02:00
|
|
|
void createHeader();
|
|
|
|
void drawHeader();
|
|
|
|
bool readGrids();
|
|
|
|
void drawGrids();
|
|
|
|
int getX();
|
|
|
|
int getY();
|
2019-07-11 14:34:31 +02:00
|
|
|
int Start() { return timeManager->GetStart(); };
|
|
|
|
int Stop() { return timeManager->GetEnd(); };
|
2013-05-20 11:37:37 +02:00
|
|
|
const char* Name() { return channel->Name(); };
|
2019-07-11 15:06:07 +02:00
|
|
|
const cChannel *getChannel() {return channel;}
|
2019-11-03 11:30:41 +01:00
|
|
|
cGridElement *getActive(bool last = false);
|
2019-07-11 15:06:07 +02:00
|
|
|
cGridElement *getNext(cGridElement *activeGrid);
|
|
|
|
cGridElement *getPrev(cGridElement *activeGrid);
|
|
|
|
cGridElement *getNeighbor(cGridElement *activeGrid);
|
|
|
|
bool isFirst(cGridElement *grid);
|
2013-05-26 11:38:05 +02:00
|
|
|
void AddNewGridsAtStart();
|
|
|
|
void AddNewGridsAtEnd();
|
|
|
|
void ClearOutdatedStart();
|
|
|
|
void ClearOutdatedEnd();
|
|
|
|
int GetNum() {return num;};
|
|
|
|
void SetNum(int num) {this->num = num;};
|
2018-03-08 13:30:41 +01:00
|
|
|
#if VDRVERSNUM >= 20301
|
2018-03-08 13:02:38 +01:00
|
|
|
void setTimer();
|
|
|
|
#else
|
2013-07-09 00:17:42 +02:00
|
|
|
void setTimer() {hasTimer = channel->HasTimer();};
|
2018-03-08 13:02:38 +01:00
|
|
|
#endif
|
2013-05-20 11:37:37 +02:00
|
|
|
bool HasTimer() { return hasTimer; };
|
2013-07-09 00:17:42 +02:00
|
|
|
void setSwitchTimer() {hasSwitchTimer = SwitchTimers.ChannelInSwitchList(channel);};
|
|
|
|
bool HasSwitchTimer() { return hasSwitchTimer; };
|
|
|
|
void SetTimers();
|
2013-05-26 11:38:05 +02:00
|
|
|
void clearGrids();
|
|
|
|
void dumpGrids();
|
2013-01-17 13:16:44 +01:00
|
|
|
};
|
|
|
|
|
2019-07-11 12:06:18 +02:00
|
|
|
#endif //__TVGUIDE_CHANNELEPG_H
|