Add tokens eventstart and eventstop to eDRRecTitleST

Tokens eventstart and eventstop can be used in displayreplay timshiftmode to
display the start and end time of the coresponding event
This commit is contained in:
kamel5
2021-02-12 15:20:34 +01:00
parent 808fba2367
commit 7a70ed13a7
6 changed files with 29 additions and 4 deletions

View File

@@ -1491,6 +1491,13 @@ enum class eDRRecTitleST {
recsubtitle,
recdate,
rectime,
eventstart,
eventstop,
count
};
enum class eDRRecTitleIT {
timeshift = 0,
count
};

View File

@@ -210,7 +210,7 @@ void cViewReplay::SetTimeShiftValues(int current, int total) {
const cEvent *eventReplay = Schedule->GetEventAround(time(NULL) - secondsafter);
// Display title at replay position
if (eventReplay && eventReplay != lastEvent && veRecTitle) {
veRecTitle->Set(recording, eventReplay);
veRecTitle->Set(recording, eventReplay, true);
veRecTitle->Parse();
lastEvent = eventReplay;
}

View File

@@ -22,10 +22,14 @@ void cVeDrRecTitle::SetTokenContainer(void) {
tokenContainer->DefineStringToken("{recsubtitle}", (int)eDRRecTitleST::recsubtitle);
tokenContainer->DefineStringToken("{recdate}", (int)eDRRecTitleST::recdate);
tokenContainer->DefineStringToken("{rectime}", (int)eDRRecTitleST::rectime);
tokenContainer->DefineStringToken("{eventstart}", (int)eDRRecTitleST::eventstart);
tokenContainer->DefineStringToken("{eventstop}", (int)eDRRecTitleST::eventstop);
tokenContainer->DefineIntToken("{timeshift}", (int)eDRRecTitleIT::timeshift);
InheritTokenContainer();
}
void cVeDrRecTitle::Set(const cRecording *recording, const cEvent *event) {
void cVeDrRecTitle::Set(const cRecording *recording, const cEvent *event, bool timeshiftActive) {
this->timeshiftActive = timeshiftActive;
if (this->title) {
free(this->title);
this->title = NULL;
@@ -83,6 +87,11 @@ bool cVeDrRecTitle::Parse(bool force) {
tokenContainer->AddStringToken((int)eDRRecTitleST::recsubtitle, recShortText);
tokenContainer->AddStringToken((int)eDRRecTitleST::recdate, *ShortDateString(recording->Start()));
tokenContainer->AddStringToken((int)eDRRecTitleST::rectime, *TimeString(recording->Start()));
tokenContainer->AddIntToken((int)eDRRecTitleIT::timeshift, timeshiftActive);
if (event) {
tokenContainer->AddStringToken((int)eDRRecTitleST::eventstart, *TimeString(event->StartTime()));
tokenContainer->AddStringToken((int)eDRRecTitleST::eventstop, *TimeString(event->EndTime()));
}
} else if (title) {
tokenContainer->AddStringToken((int)eDRRecTitleST::rectitle, title);
}

View File

@@ -12,11 +12,12 @@ private:
const cRecording *recording;
const cEvent *event;
char *title;
bool timeshiftActive;
public:
cVeDrRecTitle(void);
virtual ~cVeDrRecTitle(void);
void SetTokenContainer(void);
void Set(const cRecording *recording = NULL, const cEvent *event = NULL);
void Set(const cRecording *recording = NULL, const cEvent *event = NULL, bool timeshiftActive = false);
void Set(const char *title = NULL);
bool Parse(bool forced = false);
};