mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 17:58:31 +02:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
105fe893a2
14
HISTORY
14
HISTORY
@ -478,3 +478,17 @@ Version 1.2.11 (buggy)
|
||||
Version 1.2.12
|
||||
- [pbiering] added token for recordings: isRecording
|
||||
- [pbiering] fix crash caused by cVeDmDetailheaderRec::Parse introduced in 1.2.10
|
||||
|
||||
Version 1.2.13
|
||||
- [kamel5] A bug with timeshift in connection with global timers has been fixed
|
||||
- [kamel5] Fixed a bug in timeshift mode that prevented the progress bar from updating in pause mode
|
||||
- [kamel5] Update Skin estuary4vdr
|
||||
- Token eCeMenuSchedulesIT::durationminutes added
|
||||
- Token eLeMenuDefaultIT::devstatus added
|
||||
- [kamel5] An error with the remaining time in the channel display has been fixed
|
||||
- [kamel5] Revision cViewReplay::SetTimeShiftValues
|
||||
- [kamel5] In timeshift mode, the title of the actual playback position is displayed
|
||||
- [kamel5] Add token recstart to displayreplay
|
||||
- [kamel5] Add tokens eventstart and eventstop to eDRRecTitleST
|
||||
- [kamel5] Disabled timeshift display for non timeshift recordings
|
||||
- [kamel5] Add element timeShiftTimes with tokens recstart, playbacktime and timeshiftrest to displayreplay
|
||||
|
@ -129,6 +129,7 @@ enum class eVeDisplayReplay {
|
||||
recinfo,
|
||||
currenttime,
|
||||
totaltime,
|
||||
timeshifttimes,
|
||||
endtime,
|
||||
progressbar,
|
||||
cutmarks,
|
||||
@ -433,6 +434,7 @@ enum class eDCProgressBarIT {
|
||||
remaining,
|
||||
permashift,
|
||||
livebuffer,
|
||||
currentremaining,
|
||||
count
|
||||
};
|
||||
|
||||
@ -813,6 +815,7 @@ enum class eLeMenuDefaultIT {
|
||||
remoteosd,
|
||||
filebrowser,
|
||||
epgsearch,
|
||||
devstatus,
|
||||
count
|
||||
};
|
||||
|
||||
@ -1489,6 +1492,13 @@ enum class eDRRecTitleST {
|
||||
recsubtitle,
|
||||
recdate,
|
||||
rectime,
|
||||
eventstart,
|
||||
eventstop,
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDRRecTitleIT {
|
||||
timeshift = 0,
|
||||
count
|
||||
};
|
||||
|
||||
@ -1513,6 +1523,11 @@ enum class eDRCurrentTimeST {
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDRCurrentTimeIT {
|
||||
timeshift = 0,
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDRTotalTimeST {
|
||||
rectotal = 0,
|
||||
timeshifttotal,
|
||||
@ -1524,11 +1539,28 @@ enum class eDRTotalTimeIT {
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDRTimeshiftTimesST {
|
||||
recstart = 0,
|
||||
playbacktime,
|
||||
timeshiftrest,
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDRTimeshiftTimesIT {
|
||||
timeshift = 0,
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDREndTimeST {
|
||||
recend = 0,
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDREndTimeIT {
|
||||
timeshift = 0,
|
||||
count
|
||||
};
|
||||
|
||||
enum class eDRProgressbarIT {
|
||||
current = 0,
|
||||
total,
|
||||
|
@ -304,6 +304,7 @@ void cLeMenuDefault::SetTokenContainer(void) {
|
||||
tokenContainer->DefineIntToken("{remoteosd}", (int)eLeMenuDefaultIT::remoteosd);
|
||||
tokenContainer->DefineIntToken("{filebrowser}", (int)eLeMenuDefaultIT::filebrowser);
|
||||
tokenContainer->DefineIntToken("{epgsearch}", (int)eLeMenuDefaultIT::epgsearch);
|
||||
tokenContainer->DefineIntToken("{devstatus}", (int)eLeMenuDefaultIT::devstatus);
|
||||
InheritTokenContainer();
|
||||
}
|
||||
|
||||
@ -430,6 +431,8 @@ void cLeMenuDefault::SetMenuCategory(void) {
|
||||
tokenContainer->AddIntToken((int)eLeMenuDefaultIT::filebrowser, 1);
|
||||
} else if (!strcmp(plugName, "epgsearch")) {
|
||||
tokenContainer->AddIntToken((int)eLeMenuDefaultIT::epgsearch, 1);
|
||||
} else if (!strcmp(plugName, "devstatus")) {
|
||||
tokenContainer->AddIntToken((int)eLeMenuDefaultIT::devstatus, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -968,6 +971,7 @@ bool cCeMenuSchedules::Parse(bool forced) {
|
||||
}
|
||||
tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::duration, event->Duration() / 60);
|
||||
tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::durationhours, event->Duration() / 3600);
|
||||
tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::durationminutes, (event->Duration() / 60) % 60);
|
||||
|
||||
if (timerMatch == tmFull || timerMatch == tmPartial) {
|
||||
cTimer_Detail_V1 data;
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
cViewReplay::cViewReplay(void) {
|
||||
veCustomTokens = NULL;
|
||||
veTimeshiftTimes = NULL;
|
||||
veEndTime = NULL;
|
||||
veMessage = NULL;
|
||||
veScraperContent = NULL;
|
||||
@ -45,6 +46,7 @@ void cViewReplay::SetViewElements(void) {
|
||||
viewElementNames.insert(pair<string, int>("rectitle", (int)eVeDisplayReplay::rectitle));
|
||||
viewElementNames.insert(pair<string, int>("recinfo", (int)eVeDisplayReplay::recinfo));
|
||||
viewElementNames.insert(pair<string, int>("currenttime", (int)eVeDisplayReplay::currenttime));
|
||||
viewElementNames.insert(pair<string, int>("timeshifttimes", (int)eVeDisplayReplay::timeshifttimes));
|
||||
viewElementNames.insert(pair<string, int>("endtime", (int)eVeDisplayReplay::endtime));
|
||||
viewElementNames.insert(pair<string, int>("totaltime", (int)eVeDisplayReplay::totaltime));
|
||||
viewElementNames.insert(pair<string, int>("progressbar", (int)eVeDisplayReplay::progressbar));
|
||||
@ -92,6 +94,10 @@ void cViewReplay::SetViewElementObjects(void) {
|
||||
{
|
||||
veTotalTime = dynamic_cast<cVeDrTotalTime*>(viewElements[i]);
|
||||
}
|
||||
else if (dynamic_cast<cVeDrTimeshiftTimes*>(viewElements[i]))
|
||||
{
|
||||
veTimeshiftTimes = dynamic_cast<cVeDrTimeshiftTimes*>(viewElements[i]);
|
||||
}
|
||||
else if (dynamic_cast<cVeDrEndTime*>(viewElements[i]))
|
||||
{
|
||||
veEndTime = dynamic_cast<cVeDrEndTime*>(viewElements[i]);
|
||||
@ -142,17 +148,21 @@ void cViewReplay::PreCache(void) {
|
||||
|
||||
void cViewReplay::ClearVariables(void) {
|
||||
cView::ClearVariables();
|
||||
recording = NULL;
|
||||
lastEvent = NULL;
|
||||
modeOnly = false;
|
||||
lastFlush = 0;
|
||||
lastFlushModeOnly = 0;
|
||||
message = false;
|
||||
reclength = -1;
|
||||
timeShiftActive = false;
|
||||
timeShiftFramesTotal = -1;
|
||||
timeShiftLength = -1;
|
||||
timeShiftDuration = "";
|
||||
timeshiftrest = "";
|
||||
if (veCustomTokens)
|
||||
veCustomTokens->Reset();
|
||||
if (veTimeshiftTimes)
|
||||
veTimeshiftTimes->Set(cString(""), cString(""), cString(""));
|
||||
if (veEndTime)
|
||||
veEndTime->Set(cString(""));
|
||||
if (veCutMarks)
|
||||
@ -161,16 +171,73 @@ void cViewReplay::ClearVariables(void) {
|
||||
globalTimers.ClearTimers();
|
||||
}
|
||||
|
||||
void cViewReplay::SetTimeShift(int framesTotal, int timeShiftLength) {
|
||||
timeShiftActive = true;
|
||||
timeShiftFramesTotal = framesTotal;
|
||||
this->timeShiftLength = timeShiftLength;
|
||||
void cViewReplay::GetGlobalTimers(void) {
|
||||
if (!timersLoaded) {
|
||||
timersLoaded = true;
|
||||
globalTimers.LoadTimers();
|
||||
}
|
||||
}
|
||||
|
||||
void cViewReplay::SetTimeShiftValues(int current, int total) {
|
||||
if (!recording)
|
||||
return;
|
||||
const char *recName = recording->Name();
|
||||
if (recName && *recName != '@')
|
||||
return;
|
||||
timeShiftActive = false;
|
||||
#if APIVERSNUM >= 20101
|
||||
int usage = recording->IsInUse();
|
||||
if (usage & ruTimer)
|
||||
timeShiftActive = true;
|
||||
else {
|
||||
GetGlobalTimers();
|
||||
if (globalTimers.IsRecording(recording))
|
||||
timeShiftActive = true;
|
||||
}
|
||||
#endif
|
||||
if (!timeShiftActive)
|
||||
return;
|
||||
const cRecordingInfo *recInfo = recording->Info();
|
||||
if (!recInfo)
|
||||
return;
|
||||
const cSchedule *Schedule = NULL;
|
||||
{
|
||||
LOCK_SCHEDULES_READ;
|
||||
Schedule = Schedules->GetSchedule(recInfo->ChannelID());
|
||||
}
|
||||
if (!Schedule)
|
||||
return;
|
||||
// Get event at actual recording position
|
||||
const cEvent *eventEnde = Schedule->GetEventAround(time(0));
|
||||
if (!eventEnde)
|
||||
return;
|
||||
// End of live program
|
||||
time_t liveEventStop = eventEnde->EndTime();
|
||||
// Begin of timeshift recording
|
||||
time_t recordingStart = time(0) - recording->LengthInSeconds();
|
||||
// actual timeshiftlength in sec
|
||||
timeShiftLength = liveEventStop - recordingStart;
|
||||
// timeshiftlength until end of live program
|
||||
timeShiftFramesTotal = total * ((double)timeShiftLength / (double)recording->LengthInSeconds());
|
||||
// Get event at actual replay position (add 30sec for a better match)
|
||||
int timeShiftSecondsAfter = (int)(recording->LengthInSeconds() * (1.0 - (double)current / (double)total)) + 30;
|
||||
const cEvent *eventReplay = Schedule->GetEventAround(time(0) - timeShiftSecondsAfter);
|
||||
// Display title at replay position
|
||||
if (eventReplay && eventReplay != lastEvent && veRecTitle) {
|
||||
veRecTitle->Set(recording, eventReplay, true);
|
||||
veRecTitle->Parse();
|
||||
lastEvent = eventReplay;
|
||||
}
|
||||
int mins = (timeShiftLength / 60) % 60;
|
||||
int hours = (timeShiftLength / 3600) % 24;
|
||||
timeShiftDuration = cString::sprintf("%d:%02d", hours, mins);
|
||||
mins = (timeShiftSecondsAfter / 60) % 60;
|
||||
hours = (timeShiftSecondsAfter / 3600) % 24;
|
||||
timeshiftrest = cString::sprintf("%d:%02d", hours, mins);
|
||||
}
|
||||
|
||||
void cViewReplay::SetRecording(const cRecording *recording) {
|
||||
this->recording = recording;
|
||||
if (veRecTitle) {
|
||||
veRecTitle->Set(recording);
|
||||
}
|
||||
@ -182,46 +249,6 @@ void cViewReplay::SetRecording(const cRecording *recording) {
|
||||
}
|
||||
}
|
||||
|
||||
void cViewReplay::GetTimers(void) {
|
||||
if (!timersLoaded) {
|
||||
timersLoaded = true;
|
||||
globalTimers.LoadTimers();
|
||||
}
|
||||
}
|
||||
|
||||
void cViewReplay::SetTimeShiftValues(const cRecording *recording) {
|
||||
//check for instant recording
|
||||
if (!recording)
|
||||
return;
|
||||
const char *recName = recording->Name();
|
||||
if (recName && *recName == '@')
|
||||
return;
|
||||
bool isTimeShift = false;
|
||||
#if APIVERSNUM >= 20101
|
||||
int usage = recording->IsInUse();
|
||||
if (usage & ruTimer)
|
||||
isTimeShift = true;
|
||||
else {
|
||||
if (globalTimers.IsRecording(recording))
|
||||
isTimeShift = true;
|
||||
}
|
||||
#endif
|
||||
if (!isTimeShift)
|
||||
return;
|
||||
const cRecordingInfo *recInfo = recording->Info();
|
||||
if (!recInfo)
|
||||
return;
|
||||
const cEvent *event = recInfo->GetEvent();
|
||||
if (!event)
|
||||
return;
|
||||
double fps = recording->FramesPerSecond();
|
||||
time_t liveEventStop = event->EndTime();
|
||||
time_t recordingStart = time(0) - recording->LengthInSeconds();
|
||||
int framesTotal = (liveEventStop - recordingStart)*fps;
|
||||
int recLength = liveEventStop - recordingStart;
|
||||
SetTimeShift(framesTotal, recLength);
|
||||
}
|
||||
|
||||
void cViewReplay::SetTitle(const char *title) {
|
||||
if (veRecTitle) {
|
||||
veRecTitle->Set(title);
|
||||
@ -236,32 +263,47 @@ void cViewReplay::SetTitle(const char *title) {
|
||||
|
||||
void cViewReplay::SetCurrent(const char *current) {
|
||||
if (veCurrentTime)
|
||||
veCurrentTime->Set(current);
|
||||
veCurrentTime->Set(current, timeShiftActive);
|
||||
Render((int)eVeDisplayReplay::currenttime);
|
||||
}
|
||||
|
||||
void cViewReplay::SetTotal(const char *total) {
|
||||
if (veTotalTime)
|
||||
veTotalTime->Set(total, timeShiftActive, *timeShiftDuration);
|
||||
veTotalTime->Set(total, *timeShiftDuration, timeShiftActive);
|
||||
Render((int)eVeDisplayReplay::totaltime);
|
||||
}
|
||||
|
||||
void cViewReplay::SetTimeshiftTimes(int current, int total) {
|
||||
if (!veTimeshiftTimes || !recording)
|
||||
return;
|
||||
time_t recordingStart = 0;
|
||||
time_t playbackTime = 0;
|
||||
if (timeShiftActive) {
|
||||
recordingStart = time(0) - recording->LengthInSeconds();
|
||||
playbackTime = time(0) - (int)(recording->LengthInSeconds() * (1.0 - (double)current / (double)total));
|
||||
} else
|
||||
recordingStart = recording->Start();
|
||||
veTimeshiftTimes->Set(TimeString(recordingStart), TimeString(playbackTime), timeshiftrest, timeShiftActive);
|
||||
Render((int)eVeDisplayReplay::timeshifttimes);
|
||||
}
|
||||
|
||||
void cViewReplay::SetEndTime(int current, int total) {
|
||||
if (!veEndTime || reclength == 0)
|
||||
if (!veEndTime || !recording)
|
||||
return;
|
||||
int totalLength = total;
|
||||
int recordingLength = reclength;
|
||||
int recordingLength = recording->LengthInSeconds();
|
||||
if (timeShiftActive && timeShiftFramesTotal > 0) {
|
||||
totalLength = timeShiftFramesTotal;
|
||||
recordingLength = timeShiftLength;
|
||||
}
|
||||
double rest = (double)(totalLength - current) / (double)totalLength;
|
||||
time_t end = time(0) + rest * recordingLength;
|
||||
veEndTime->Set(TimeString(end));
|
||||
veEndTime->Set(TimeString(end), timeShiftActive);
|
||||
Render((int)eVeDisplayReplay::endtime);
|
||||
}
|
||||
|
||||
void cViewReplay::SetProgressbar(int current, int total) {
|
||||
SetTimeShiftValues(current, total);
|
||||
if (veProgressbar)
|
||||
veProgressbar->Set(current, total, timeShiftActive, timeShiftFramesTotal);
|
||||
Render((int)eVeDisplayReplay::progressbar);
|
||||
|
@ -12,6 +12,7 @@ private:
|
||||
cVeDrScraperContent *veScraperContent;
|
||||
cVeDrCurrentTime *veCurrentTime;
|
||||
cVeDrTotalTime *veTotalTime;
|
||||
cVeDrTimeshiftTimes *veTimeshiftTimes;
|
||||
cVeDrEndTime *veEndTime;
|
||||
cVeDrProgressBar *veProgressbar;
|
||||
cVeDrCutMarks *veCutMarks;
|
||||
@ -21,6 +22,8 @@ private:
|
||||
cVeDrJump *veJump;
|
||||
cVeDrOnPause *veOnPause;
|
||||
cVeDrOnPause *veOnPauseModeOnly;
|
||||
const cRecording *recording;
|
||||
const cEvent *lastEvent;
|
||||
bool modeOnly;
|
||||
time_t lastFlush;
|
||||
time_t lastFlushModeOnly;
|
||||
@ -29,9 +32,11 @@ private:
|
||||
bool timeShiftActive;
|
||||
int timeShiftFramesTotal;
|
||||
int timeShiftLength;
|
||||
cString timeshiftrest;
|
||||
cString timeShiftDuration;
|
||||
bool timersLoaded;
|
||||
cGlobalTimers globalTimers;
|
||||
void GetGlobalTimers(void);
|
||||
void SetViewElements(void);
|
||||
void ClearVariables(void);
|
||||
void SetViewElementObjects(void);
|
||||
@ -41,14 +46,12 @@ public:
|
||||
virtual ~cViewReplay(void);
|
||||
void PreCache(void);
|
||||
void SetModeOnly(bool modeOnly) { this->modeOnly = modeOnly; };
|
||||
void SetRecordingLength(int length) { reclength = length; };
|
||||
void SetTimeShift(int framesTotal, int timeShiftLength);
|
||||
void SetRecording(const cRecording *recording);
|
||||
void SetTimeShiftValues(int current, int total);
|
||||
void SetTitle(const char *title);
|
||||
void GetTimers(void);
|
||||
void SetTimeShiftValues(const cRecording *recording);
|
||||
void SetCurrent(const char *current);
|
||||
void SetTotal(const char *total);
|
||||
void SetTimeshiftTimes(int current, int total);
|
||||
void SetEndTime(int current, int total);
|
||||
void SetProgressbar(int current, int total);
|
||||
void SetMarks(const cMarks *marks, int current, int total);
|
||||
|
@ -169,6 +169,8 @@ cViewElement *cViewElement::CreateViewElement(const char *name, const char *view
|
||||
e = new cVeDrCurrentTime();
|
||||
else if (!strcmp(name, "totaltime"))
|
||||
e = new cVeDrTotalTime();
|
||||
else if (!strcmp(name, "timeshifttimes"))
|
||||
e = new cVeDrTimeshiftTimes();
|
||||
else if (!strcmp(name, "endtime"))
|
||||
e = new cVeDrEndTime();
|
||||
else if (!strcmp(name, "progressbar") && !strcmp(viewname, "displayreplay"))
|
||||
|
@ -216,16 +216,19 @@ void cVeDcProgressBar::SetTokenContainer(void) {
|
||||
tokenContainer->DefineIntToken("{remaining}", (int)eDCProgressBarIT::remaining);
|
||||
tokenContainer->DefineIntToken("{permashift}", (int)eDCProgressBarIT::permashift);
|
||||
tokenContainer->DefineIntToken("{livebuffer}", (int)eDCProgressBarIT::livebuffer);
|
||||
tokenContainer->DefineIntToken("{currentremaining}", (int)eDCProgressBarIT::currentremaining);
|
||||
InheritTokenContainer();
|
||||
}
|
||||
|
||||
void cVeDcProgressBar::Set(const cEvent *p) {
|
||||
if (!p) {
|
||||
startTime = -1;
|
||||
endTime = -1;
|
||||
duration = -1;
|
||||
return;
|
||||
}
|
||||
startTime = p->StartTime();
|
||||
endTime = p-> EndTime();
|
||||
duration = p->Duration();
|
||||
|
||||
int current = 0;
|
||||
@ -249,18 +252,24 @@ void cVeDcProgressBar::Set(const cEvent *p) {
|
||||
} else {
|
||||
tokenContainer->AddIntToken((int)eDCProgressBarIT::permashift, 0);
|
||||
}
|
||||
tokenContainer->AddIntToken((int)eDCProgressBarIT::currentremaining, (int)round((endTime - t) / 60));
|
||||
}
|
||||
|
||||
bool cVeDcProgressBar::Parse(bool force) {
|
||||
if (!cViewElement::Parse(force))
|
||||
return false;
|
||||
|
||||
int current = 0;
|
||||
time_t t = time(NULL);
|
||||
if (t > startTime)
|
||||
current = t - startTime;
|
||||
|
||||
if (!(current > currentLast + 3) && !force && !Dirty())
|
||||
return false;
|
||||
|
||||
currentLast = current;
|
||||
SetDirty();
|
||||
|
||||
if (duration <= 0) {
|
||||
tokenContainer->AddIntToken((int)eDCProgressBarIT::duration, 0);
|
||||
tokenContainer->AddIntToken((int)eDCProgressBarIT::elapsed, 0);
|
||||
@ -276,6 +285,7 @@ bool cVeDcProgressBar::Parse(bool force) {
|
||||
} else {
|
||||
tokenContainer->AddIntToken((int)eDCProgressBarIT::permashift, 0);
|
||||
}
|
||||
tokenContainer->AddIntToken((int)eDCProgressBarIT::currentremaining, (int)round((endTime - t) / 60));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -51,6 +51,7 @@ class cVeDcProgressBar : public cViewElement {
|
||||
private:
|
||||
int currentLast;
|
||||
int startTime;
|
||||
int endTime;
|
||||
int duration;
|
||||
int GetLiveBuffer(void);
|
||||
public:
|
||||
@ -199,4 +200,4 @@ public:
|
||||
cVeDcGroupChannelListDetail(void) {};
|
||||
virtual ~cVeDcGroupChannelListDetail(void) {};
|
||||
};
|
||||
#endif //__VIEWELEMENTSDC_H
|
||||
#endif //__VIEWELEMENTSDC_H
|
||||
|
@ -8,7 +8,9 @@
|
||||
******************************************************************/
|
||||
cVeDrRecTitle::cVeDrRecTitle(void) {
|
||||
recording = NULL;
|
||||
event = NULL;
|
||||
title = NULL;
|
||||
timeshiftActive = false;
|
||||
}
|
||||
|
||||
cVeDrRecTitle::~cVeDrRecTitle(void) {
|
||||
@ -21,19 +23,27 @@ 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) {
|
||||
void cVeDrRecTitle::Set(const cRecording *recording, const cEvent *event, bool timeshiftActive) {
|
||||
this->timeshiftActive = timeshiftActive;
|
||||
if (this->title) {
|
||||
free(this->title);
|
||||
this->title = NULL;
|
||||
}
|
||||
if (this->recording)
|
||||
this->recording = NULL;
|
||||
if (this->event)
|
||||
this->event = NULL;
|
||||
if (!recording)
|
||||
return;
|
||||
this->recording = recording;
|
||||
if (event)
|
||||
this->event = event;
|
||||
}
|
||||
|
||||
void cVeDrRecTitle::Set(const char *title) {
|
||||
@ -43,6 +53,8 @@ void cVeDrRecTitle::Set(const char *title) {
|
||||
}
|
||||
if (this->recording)
|
||||
this->recording = NULL;
|
||||
if (this->event)
|
||||
this->event = NULL;
|
||||
if (!title)
|
||||
return;
|
||||
free(this->title);
|
||||
@ -58,15 +70,29 @@ bool cVeDrRecTitle::Parse(bool force) {
|
||||
tokenContainer->Clear();
|
||||
if (recording) {
|
||||
const char *recName = NULL;
|
||||
const char *recShortText = NULL;
|
||||
const cRecordingInfo *recInfo = recording->Info();
|
||||
if (recInfo)
|
||||
if (event) {
|
||||
recName = event->Title();
|
||||
recShortText = event->ShortText();
|
||||
} else if (recInfo) {
|
||||
recName = recInfo->Title();
|
||||
if (!recName)
|
||||
recShortText = recInfo->ShortText();
|
||||
}
|
||||
if (!recName) {
|
||||
recName = recording->Name();
|
||||
recShortText = "";
|
||||
}
|
||||
|
||||
tokenContainer->AddStringToken((int)eDRRecTitleST::rectitle, recName);
|
||||
tokenContainer->AddStringToken((int)eDRRecTitleST::recsubtitle, recInfo ? recInfo->ShortText() : "");
|
||||
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);
|
||||
}
|
||||
@ -138,6 +164,7 @@ bool cVeDrRecInfo::Parse(bool force) {
|
||||
cVeDrCurrentTime::cVeDrCurrentTime(void) {
|
||||
changed = true;
|
||||
current = NULL;
|
||||
timeshiftActive = false;
|
||||
}
|
||||
|
||||
cVeDrCurrentTime::~cVeDrCurrentTime(void) {
|
||||
@ -147,14 +174,16 @@ cVeDrCurrentTime::~cVeDrCurrentTime(void) {
|
||||
void cVeDrCurrentTime::SetTokenContainer(void) {
|
||||
tokenContainer = new skindesignerapi::cTokenContainer();
|
||||
tokenContainer->DefineStringToken("{reccurrent}", (int)eDRCurrentTimeST::reccurrent);
|
||||
tokenContainer->DefineIntToken("{timeshift}", (int)eDRCurrentTimeIT::timeshift);
|
||||
InheritTokenContainer();
|
||||
}
|
||||
|
||||
void cVeDrCurrentTime::Set(const char *current) {
|
||||
void cVeDrCurrentTime::Set(const char *current, bool timeshiftActive) {
|
||||
if (!current)
|
||||
return;
|
||||
free(this->current);
|
||||
this->current = strdup(current);
|
||||
this->timeshiftActive = timeshiftActive;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
@ -163,6 +192,7 @@ bool cVeDrCurrentTime::Parse(bool force) {
|
||||
return false;
|
||||
tokenContainer->Clear();
|
||||
tokenContainer->AddStringToken((int)eDRCurrentTimeST::reccurrent, current);
|
||||
tokenContainer->AddIntToken((int)eDRCurrentTimeIT::timeshift, timeshiftActive);
|
||||
SetDirty();
|
||||
changed = false;
|
||||
return true;
|
||||
@ -174,8 +204,8 @@ bool cVeDrCurrentTime::Parse(bool force) {
|
||||
cVeDrTotalTime::cVeDrTotalTime(void) {
|
||||
changed = true;
|
||||
total = NULL;
|
||||
timeshiftActive = false;
|
||||
timeshiftDuration = NULL;
|
||||
timeshiftActive = false;
|
||||
}
|
||||
|
||||
cVeDrTotalTime::~cVeDrTotalTime(void) {
|
||||
@ -191,7 +221,7 @@ void cVeDrTotalTime::SetTokenContainer(void) {
|
||||
InheritTokenContainer();
|
||||
}
|
||||
|
||||
void cVeDrTotalTime::Set(const char *total, bool timeshiftActive, const char *timeshiftDuration) {
|
||||
void cVeDrTotalTime::Set(const char *total, const char *timeshiftDuration, bool timeshiftActive) {
|
||||
if (!total)
|
||||
return;
|
||||
free(this->total);
|
||||
@ -216,11 +246,59 @@ bool cVeDrTotalTime::Parse(bool force) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/******************************************************************
|
||||
* cVeDrTimeshiftTimes
|
||||
******************************************************************/
|
||||
cVeDrTimeshiftTimes::cVeDrTimeshiftTimes(void) {
|
||||
changed = true;
|
||||
start = "";
|
||||
playbacktime = "";
|
||||
timeshiftrest = "";
|
||||
timeshiftActive = false;
|
||||
}
|
||||
|
||||
cVeDrTimeshiftTimes::~cVeDrTimeshiftTimes(void) {
|
||||
}
|
||||
|
||||
void cVeDrTimeshiftTimes::SetTokenContainer(void) {
|
||||
tokenContainer = new skindesignerapi::cTokenContainer();
|
||||
tokenContainer->DefineStringToken("{recstart}", (int)eDRTimeshiftTimesST::recstart);
|
||||
tokenContainer->DefineStringToken("{playbacktime}", (int)eDRTimeshiftTimesST::playbacktime);
|
||||
tokenContainer->DefineStringToken("{timeshiftrest}", (int)eDRTimeshiftTimesST::timeshiftrest);
|
||||
tokenContainer->DefineIntToken("{timeshift}", (int)eDRTimeshiftTimesIT::timeshift);
|
||||
InheritTokenContainer();
|
||||
}
|
||||
|
||||
void cVeDrTimeshiftTimes::Set(cString start, cString playbacktime, cString timeshiftrest, bool timeshiftActive) {
|
||||
this->timeshiftActive = timeshiftActive;
|
||||
if (strcmp(*this->start, *start) || strcmp(*this->playbacktime, *playbacktime) || strcmp(*this->timeshiftrest, *timeshiftrest)) {
|
||||
this->start = start;
|
||||
this->playbacktime = playbacktime;
|
||||
this->timeshiftrest = timeshiftrest;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool cVeDrTimeshiftTimes::Parse(bool force) {
|
||||
if (!cViewElement::Parse(force) || !changed)
|
||||
return false;
|
||||
tokenContainer->Clear();
|
||||
tokenContainer->AddStringToken((int)eDRTimeshiftTimesST::recstart, *start);
|
||||
tokenContainer->AddStringToken((int)eDRTimeshiftTimesST::playbacktime, *playbacktime);
|
||||
tokenContainer->AddStringToken((int)eDRTimeshiftTimesST::timeshiftrest, *timeshiftrest);
|
||||
tokenContainer->AddIntToken((int)eDRTimeshiftTimesIT::timeshift, timeshiftActive);
|
||||
SetDirty();
|
||||
changed = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/******************************************************************
|
||||
* cVeDrEndTime
|
||||
******************************************************************/
|
||||
cVeDrEndTime::cVeDrEndTime(void) {
|
||||
changed = true;
|
||||
end = "";
|
||||
timeshiftActive = false;
|
||||
}
|
||||
|
||||
cVeDrEndTime::~cVeDrEndTime(void) {
|
||||
@ -229,10 +307,12 @@ cVeDrEndTime::~cVeDrEndTime(void) {
|
||||
void cVeDrEndTime::SetTokenContainer(void) {
|
||||
tokenContainer = new skindesignerapi::cTokenContainer();
|
||||
tokenContainer->DefineStringToken("{recend}", (int)eDREndTimeST::recend);
|
||||
tokenContainer->DefineIntToken("{timeshift}", (int)eDREndTimeIT::timeshift);
|
||||
InheritTokenContainer();
|
||||
}
|
||||
|
||||
void cVeDrEndTime::Set(cString end) {
|
||||
void cVeDrEndTime::Set(cString end, bool timeshiftActive) {
|
||||
this->timeshiftActive = timeshiftActive;
|
||||
if (strcmp(*this->end, *end)) {
|
||||
this->end = end;
|
||||
changed = true;
|
||||
@ -244,6 +324,7 @@ bool cVeDrEndTime::Parse(bool force) {
|
||||
return false;
|
||||
tokenContainer->Clear();
|
||||
tokenContainer->AddStringToken((int)eDREndTimeST::recend, *end);
|
||||
tokenContainer->AddIntToken((int)eDREndTimeIT::timeshift, timeshiftActive);
|
||||
SetDirty();
|
||||
changed = false;
|
||||
return true;
|
||||
@ -255,8 +336,8 @@ bool cVeDrEndTime::Parse(bool force) {
|
||||
cVeDrProgressBar::cVeDrProgressBar(void) {
|
||||
current = -1;
|
||||
total = -1;
|
||||
timeshiftActive = false;
|
||||
timeshiftTotal = -1;
|
||||
timeshiftActive = false;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
@ -273,12 +354,13 @@ void cVeDrProgressBar::SetTokenContainer(void) {
|
||||
}
|
||||
|
||||
void cVeDrProgressBar::Set(int current, int total, bool timeshiftActive, int timeshiftTotal) {
|
||||
if (this->current == current)
|
||||
if (!(this->current != current || this->total != total))
|
||||
return;
|
||||
this->current = current;
|
||||
this->total = total;
|
||||
this->timeshiftActive = timeshiftActive;
|
||||
this->timeshiftTotal = timeshiftTotal;
|
||||
|
||||
changed = true;
|
||||
}
|
||||
|
||||
@ -302,6 +384,7 @@ bool cVeDrProgressBar::Parse(bool force) {
|
||||
cVeDrCutMarks::cVeDrCutMarks(void) {
|
||||
cutmarksIndex = -1;
|
||||
lastMarks = NULL;
|
||||
timeshiftActive = false;
|
||||
Reset();
|
||||
}
|
||||
|
||||
@ -595,7 +678,7 @@ void cVeDrProgressModeonly::SetTokenContainer(void) {
|
||||
}
|
||||
|
||||
void cVeDrProgressModeonly::Set(double fps, int current, int total) {
|
||||
if (this->current == current)
|
||||
if (!(this->current != current || this->total != total))
|
||||
return;
|
||||
this->fps = fps;
|
||||
this->current = current;
|
||||
|
@ -10,13 +10,15 @@
|
||||
class cVeDrRecTitle : public cViewElement {
|
||||
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);
|
||||
void Set(const char *title);
|
||||
void Set(const cRecording *recording = NULL, const cEvent *event = NULL, bool timeshiftActive = false);
|
||||
void Set(const char *title = NULL);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
@ -41,11 +43,12 @@ class cVeDrCurrentTime : public cViewElement {
|
||||
private:
|
||||
bool changed;
|
||||
char *current;
|
||||
bool timeshiftActive;
|
||||
public:
|
||||
cVeDrCurrentTime(void);
|
||||
virtual ~cVeDrCurrentTime(void);
|
||||
void SetTokenContainer(void);
|
||||
void Set(const char *current);
|
||||
void Set(const char *current, bool timeshiftActive = false);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
@ -62,7 +65,25 @@ public:
|
||||
cVeDrTotalTime(void);
|
||||
virtual ~cVeDrTotalTime(void);
|
||||
void SetTokenContainer(void);
|
||||
void Set(const char *total, bool timeshiftActive, const char *timeshiftDuration);
|
||||
void Set(const char *total, const char *timeshiftDuration = NULL, bool timeshiftActive = false);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
/******************************************************************
|
||||
* cVeDrTimeshiftTimes
|
||||
******************************************************************/
|
||||
class cVeDrTimeshiftTimes : public cViewElement {
|
||||
private:
|
||||
cString start;
|
||||
cString playbacktime;
|
||||
cString timeshiftrest;
|
||||
bool changed;
|
||||
bool timeshiftActive;
|
||||
public:
|
||||
cVeDrTimeshiftTimes(void);
|
||||
virtual ~cVeDrTimeshiftTimes(void);
|
||||
void SetTokenContainer(void);
|
||||
void Set(cString start, cString playbacktime, cString timeshiftrest, bool timeshiftActive = false);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
@ -72,12 +93,13 @@ public:
|
||||
class cVeDrEndTime : public cViewElement {
|
||||
private:
|
||||
cString end;
|
||||
bool timeshiftActive;
|
||||
bool changed;
|
||||
public:
|
||||
cVeDrEndTime(void);
|
||||
virtual ~cVeDrEndTime(void);
|
||||
void SetTokenContainer(void);
|
||||
void Set(cString end);
|
||||
void Set(cString end, bool timeshiftActive = false);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
@ -95,7 +117,7 @@ public:
|
||||
cVeDrProgressBar(void);
|
||||
virtual ~cVeDrProgressBar(void);
|
||||
void SetTokenContainer(void);
|
||||
void Set(int current, int total, bool timeshiftActive, int timeshiftTotal);
|
||||
void Set(int current, int total, bool timeshiftActive = false, int timeshiftTotal = 0);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
@ -119,7 +141,7 @@ public:
|
||||
cVeDrCutMarks(void);
|
||||
virtual ~cVeDrCutMarks(void);
|
||||
void SetTokenContainer(void);
|
||||
void Set(const cMarks *marks, int current, int total, bool timeshiftActive, int timeshiftTotal);
|
||||
void Set(const cMarks *marks, int current, int total, bool timeshiftActive = false, int timeshiftTotal = 0);
|
||||
void Reset(void);
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
@ -207,4 +229,4 @@ public:
|
||||
bool Parse(bool forced = false);
|
||||
};
|
||||
|
||||
#endif //__VIEWELEMENTSDR_H
|
||||
#endif //__VIEWELEMENTSDR_H
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include "displayreplay.h"
|
||||
|
||||
cSDDisplayReplay::cSDDisplayReplay(cViewReplay *replayView, bool ModeOnly) {
|
||||
init = true;
|
||||
view = replayView;
|
||||
ok = view->Init();
|
||||
if (!ok)
|
||||
@ -16,11 +15,6 @@ cSDDisplayReplay::~cSDDisplayReplay() {
|
||||
void cSDDisplayReplay::SetRecording(const cRecording *Recording) {
|
||||
if (ok) {
|
||||
view->SetRecording(Recording);
|
||||
if (init) {
|
||||
view->SetRecordingLength(Recording->LengthInSeconds());
|
||||
view->SetTimeShiftValues(Recording);
|
||||
init = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,11 +22,6 @@ void cSDDisplayReplay::SetTitle(const char *Title) {
|
||||
if (!ok)
|
||||
return;
|
||||
view->SetTitle(Title);
|
||||
if (init) {
|
||||
view->SetRecordingLength(0);
|
||||
view->SetTimeShiftValues(NULL);
|
||||
init = false;
|
||||
}
|
||||
}
|
||||
|
||||
void cSDDisplayReplay::SetMode(bool Play, bool Forward, int Speed) {
|
||||
@ -57,6 +46,7 @@ void cSDDisplayReplay::SetProgress(int Current, int Total) {
|
||||
if (ok) {
|
||||
view->SetProgressbar(Current, Total);
|
||||
view->SetMarks(marks, Current, Total);
|
||||
view->SetTimeshiftTimes(Current, Total);
|
||||
view->SetEndTime(Current, Total);
|
||||
view->DelayOnPause();
|
||||
}
|
||||
@ -85,6 +75,5 @@ void cSDDisplayReplay::SetMessage(eMessageType Type, const char *Text) {
|
||||
void cSDDisplayReplay::Flush(void) {
|
||||
if (!ok)
|
||||
return;
|
||||
view->GetTimers();
|
||||
view->Flush();
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
class cSDDisplayReplay : public cSkinDisplayReplay {
|
||||
private:
|
||||
bool ok;
|
||||
bool init;
|
||||
cViewReplay *view;
|
||||
public:
|
||||
cSDDisplayReplay(cViewReplay *replayView, bool ModeOnly);
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<!ELEMENT displayreplay (background | backgroundmodeonly |datetime | time |
|
||||
scrapercontent | currentweather | rectitle | recinfo | currenttime |
|
||||
totaltime | endtime | progressbar | cutmarks | controlicons |
|
||||
totaltime | timeshifttimes | endtime | progressbar | cutmarks | controlicons |
|
||||
controliconsmodeonly | progressmodeonly | jump | message | onpause |
|
||||
onpausemodeonly | customtokens)*>
|
||||
<!ATTLIST displayreplay
|
||||
@ -153,6 +153,19 @@
|
||||
condition CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT timeshifttimes (areacontainer|area|areascroll)*>
|
||||
<!ATTLIST timeshifttimes
|
||||
delay CDATA #IMPLIED
|
||||
fadetime CDATA #IMPLIED
|
||||
shifttime CDATA #IMPLIED
|
||||
shifttype CDATA #IMPLIED
|
||||
shiftmode CDATA #IMPLIED
|
||||
startx CDATA #IMPLIED
|
||||
starty CDATA #IMPLIED
|
||||
debug CDATA #IMPLIED
|
||||
condition CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT endtime (areacontainer|area|areascroll)*>
|
||||
<!ATTLIST endtime
|
||||
delay CDATA #IMPLIED
|
||||
@ -289,4 +302,4 @@
|
||||
condition CDATA #IMPLIED
|
||||
>
|
||||
|
||||
%functions;
|
||||
%functions;
|
||||
|
@ -21,7 +21,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
static const char *VERSION = "1.2.11";
|
||||
static const char *VERSION = "1.2.13";
|
||||
static const char *DESCRIPTION = trNOOP("Skin Designer");
|
||||
|
||||
class cPluginSkinDesigner : public cPlugin, public skindesignerapi::SkindesignerAPI {
|
||||
|
@ -242,6 +242,27 @@
|
||||
<trans lang="hu_HU">Időzítő kereső</trans>
|
||||
<trans lang="it_IT">Cerca timer</trans>
|
||||
</token>
|
||||
<token name="tr(start)">
|
||||
<trans lang="en_EN">start</trans>
|
||||
<trans lang="de_DE">Beginn</trans>
|
||||
<trans lang="fi_FI">Alkaa</trans>
|
||||
<trans lang="hu_HU">Rajt</trans>
|
||||
<trans lang="it_IT">Inizio</trans>
|
||||
</token>
|
||||
<token name="tr(rest)">
|
||||
<trans lang="en_EN">rest</trans>
|
||||
<trans lang="de_DE">Rest</trans>
|
||||
<trans lang="fi_FI">Loput</trans>
|
||||
<trans lang="hu_HU">Maradék</trans>
|
||||
<trans lang="it_IT">Riposo</trans>
|
||||
</token>
|
||||
<token name="tr(playback)">
|
||||
<trans lang="en_EN">playback</trans>
|
||||
<trans lang="de_DE">Wiedergabe</trans>
|
||||
<trans lang="fi_FI">Toisto</trans>
|
||||
<trans lang="hu_HU">Lejátszás</trans>
|
||||
<trans lang="it_IT">Riproduzione</trans>
|
||||
</token>
|
||||
<token name="tr(end)">
|
||||
<trans lang="en_EN">end</trans>
|
||||
<trans lang="de_DE">Ende</trans>
|
||||
|
82
skins/estuary4vdr/icons/ico_timer_is_active.svg
Normal file
82
skins/estuary4vdr/icons/ico_timer_is_active.svg
Normal file
@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="512px"
|
||||
height="512px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="ico_timer_isactive.svg"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1304"
|
||||
inkscape:window-height="848"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.4609375"
|
||||
inkscape:cx="-394.84746"
|
||||
inkscape:cy="256"
|
||||
inkscape:window-x="302"
|
||||
inkscape:window-y="113"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1"
|
||||
inkscape:document-rotation="0" /><g
|
||||
id="g3"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1"><path
|
||||
d="M256,0C114.609,0,0,114.609,0,256c0,141.391,114.609,256,256,256c141.391,0,256-114.609,256-256 C512,114.609,397.391,0,256,0z M256,472c-119.297,0-216-96.703-216-216S136.703,40,256,40s216,96.703,216,216S375.297,472,256,472z "
|
||||
id="path5"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1" /><path
|
||||
d="M336,256c0,44.188-35.812,80-80,80c-44.188,0-80-35.812-80-80c0-44.188,35.812-80,80-80C300.188,176,336,211.812,336,256z"
|
||||
id="path7"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1" /></g><g
|
||||
id="g9" /><g
|
||||
id="g11" /><g
|
||||
id="g13" /><g
|
||||
id="g15" /><g
|
||||
id="g17" /><g
|
||||
id="g19" /><g
|
||||
id="g21" /><g
|
||||
id="g23" /><g
|
||||
id="g25" /><g
|
||||
id="g27" /><g
|
||||
id="g29" /><g
|
||||
id="g31" /><g
|
||||
id="g33" /><g
|
||||
id="g35" /><g
|
||||
id="g37" /><path
|
||||
style="fill:#00ff00;stroke-width:2.16949"
|
||||
d="M 215.72807,507.53308 C 162.71961,498.62211 115.11053,474.12463 76.893336,436.09498 39.36807,398.75387 14.112943,351.03911 5.386094,300.99567 c -4.1222903,-23.63898 -4.1222903,-66.35236 0,-89.99133 C 14.008253,161.56122 39.263887,113.48953 75.833077,76.915237 113.15643,39.586666 154.06344,17.595366 209.35593,5.1343523 217.69335,3.2553845 235.24157,2.2725166 258.16949,2.4003239 289.26436,2.5736565 296.6974,3.3268912 314.76087,8.1350626 390.2236,28.221883 445.8588,71.540834 481.2437,137.76271 500.63865,174.05982 509.83051,212.07808 509.83051,256 c 0,53.98027 -12.71674,96.03922 -42.96516,142.10169 -14.45842,22.01739 -45.63955,53.62066 -66.63035,67.53244 -56.44714,37.41066 -122.27803,52.35994 -184.50693,41.89895 z m 79.32278,-38.26109 c 66.69474,-11.18388 124.35288,-54.9441 155.23134,-117.81436 16.81999,-34.24642 21.42302,-54.7568 21.42302,-95.45763 0,-40.70084 -4.60303,-61.2112 -21.42302,-95.45763 C 416.54007,91.841508 351.24449,46.646652 276.63579,40.351623 183.74995,32.514478 102.19857,78.121277 61.717797,160.54237 44.897813,194.7888 40.29479,215.29916 40.29479,256 c 0,40.70083 4.603023,61.21121 21.423007,95.45763 43.386713,88.33777 134.566653,134.37628 233.333053,117.81436 z"
|
||||
id="path96" /><path
|
||||
style="fill:#008000;stroke-width:2.16949"
|
||||
d="m 236.3213,332.35775 c -21.769,-6.17206 -40.50373,-21.79987 -51.22581,-42.73063 -5.50062,-10.73785 -6.11244,-14.10376 -6.11244,-33.62712 0,-19.6807 0.58931,-22.85864 6.3474,-34.22928 7.84645,-15.49455 23.47217,-30.4091 39.82358,-38.01108 10.36368,-4.81822 15.44018,-5.76739 30.84597,-5.76739 15.40578,0 20.48229,0.94917 30.84597,5.76739 16.35141,7.60198 31.97713,22.51653 39.82357,38.01108 5.7581,11.37064 6.34741,14.54858 6.34741,34.22928 0,19.6807 -0.58931,22.85864 -6.34741,34.22928 -7.77464,15.35277 -23.49443,30.4473 -39.19346,37.63455 -14.31303,6.55273 -36.89604,8.53663 -51.15478,4.49392 z"
|
||||
id="path98" /><path
|
||||
style="fill:#ffff00;stroke-width:2.16949"
|
||||
d="M 206.10169,504.49124 C 127.20566,487.59493 62.205776,436.20317 27.173029,363.02238 21.843258,351.88888 14.804192,333.99322 11.530661,323.25424 5.8131936,304.49781 5.578785,301.84906 5.578785,256 c 0,-45.84906 0.2344086,-48.4978 5.951876,-67.25424 C 32.549044,119.79392 80.874604,60.902059 141.75428,30.048987 162.90057,19.332308 198.31759,7.9640136 219.39566,5.1273468 248.93064,1.1525593 296.54254,3.8115829 320,10.745884 c 72.79019,21.517644 127.55914,65.552215 160.24491,128.837896 20.42019,39.53725 27.5415,69.6386 27.5415,116.41622 0,45.37717 -6.91577,75.78975 -25.65361,112.81356 -44.0919,87.12047 -131.07015,140.2941 -228.64308,139.77956 -19.26328,-0.10158 -35.11652,-1.47383 -47.38803,-4.10188 z M 310.59295,466.68002 C 373.25941,450.78337 423.80264,408.85996 452.57467,348.9124 468.66334,315.39107 471.4995,301.46686 471.4995,256 c 0,-45.46685 -2.83616,-59.39108 -18.92483,-92.91239 C 405.84324,65.720986 300.90058,18.252796 195.48196,46.798152 137.02428,62.627376 88.47007,103.99464 59.922035,162.29263 43.457751,195.91436 40.500501,210.18286 40.500501,256 c 0,43.90222 2.572306,57.57609 16.612895,88.31095 32.071417,70.20436 94.044494,116.96666 169.055394,127.56216 22.18618,3.13387 61.01346,0.74552 84.42416,-5.19309 z"
|
||||
id="path100" /><path
|
||||
style="fill:#800000;stroke-width:2.16949"
|
||||
d="m 231.62056,329.87503 c -19.432,-7.47847 -37.58534,-24.44505 -46.3932,-43.36027 -4.18771,-8.99327 -5.12103,-14.57144 -5.13837,-30.71062 -0.019,-17.67761 0.66622,-21.09692 6.61232,-32.99612 7.49464,-14.9981 22.76182,-29.97136 38.42543,-37.68566 8.56481,-4.21817 13.67353,-5.05456 30.87326,-5.05456 17.19972,0 22.30844,0.83639 30.87326,5.05456 15.66361,7.7143 30.93078,22.68756 38.42542,37.68566 5.95268,11.91235 6.63352,15.31908 6.63352,33.19198 0,17.8729 -0.68084,21.27963 -6.63352,33.19198 -7.46529,14.93937 -22.8392,30.05422 -38.06767,37.42619 -12.70572,6.15074 -43.41742,7.94939 -55.61045,3.25686 z"
|
||||
id="path120" /><path
|
||||
style="fill:#800000;stroke-width:2.16949"
|
||||
d="M 206.32865,503.22148 C 158.10069,492.75939 111.99781,467.4798 78.101693,432.91084 50.677575,404.94234 30.547679,372.08509 14.90829,329.76271 L 7.6930601,310.23729 7.6431391,257.08475 C 7.5934779,204.20898 7.6256812,203.83618 13.827422,185.49153 44.840309,93.7559 112.14814,31.18172 203.02701,9.5980336 c 21.63974,-5.1394252 69.64126,-6.079541 96.35674,-1.8871583 33.36001,5.2350907 78.134,25.1103657 109.1443,48.4493957 41.18678,30.998062 74.69251,79.915619 89.32754,130.415999 11.175,38.56104 11.13977,100.34395 -0.0794,139.05859 -26.26219,90.62535 -105.25138,161.57427 -197.86537,177.72481 -23.1306,4.03363 -74.7021,3.95748 -93.58227,-0.13819 z M 309.79013,467.66631 C 375.70909,451.32822 430.02995,404.43826 457.83235,339.87573 469.90119,311.84957 471.81579,300.36534 471.81579,256 c 0,-44.36534 -1.9146,-55.84957 -13.98344,-83.87572 C 430.3918,108.40199 377.49031,62.322634 311.27148,44.463759 286.98023,37.912535 244.2084,36.308376 217.61088,40.951016 143.11647,53.954133 84.368657,101.71226 53.152017,174.64529 41.988799,200.72649 40.1504,212.39437 40.162805,257.08475 c 0.01237,44.84798 1.467919,53.42624 14.047115,82.79098 28.54943,66.64548 86.63006,114.9025 157.3155,130.70755 21.33213,4.7698 73.49908,3.22124 98.26471,-2.91697 z"
|
||||
id="path878" /></svg>
|
After Width: | Height: | Size: 7.5 KiB |
76
skins/estuary4vdr/icons/ico_timer_is_inactive.svg
Normal file
76
skins/estuary4vdr/icons/ico_timer_is_inactive.svg
Normal file
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="512px"
|
||||
height="512px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="ico_rec_inactive.svg"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1304"
|
||||
inkscape:window-height="848"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.4609375"
|
||||
inkscape:cx="-394.84746"
|
||||
inkscape:cy="256"
|
||||
inkscape:window-x="233"
|
||||
inkscape:window-y="123"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1"
|
||||
inkscape:document-rotation="0" /><g
|
||||
id="g3"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1"><path
|
||||
d="M256,0C114.609,0,0,114.609,0,256c0,141.391,114.609,256,256,256c141.391,0,256-114.609,256-256 C512,114.609,397.391,0,256,0z M256,472c-119.297,0-216-96.703-216-216S136.703,40,256,40s216,96.703,216,216S375.297,472,256,472z "
|
||||
id="path5"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1" /><path
|
||||
d="M336,256c0,44.188-35.812,80-80,80c-44.188,0-80-35.812-80-80c0-44.188,35.812-80,80-80C300.188,176,336,211.812,336,256z"
|
||||
id="path7"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1" /></g><g
|
||||
id="g9" /><g
|
||||
id="g11" /><g
|
||||
id="g13" /><g
|
||||
id="g15" /><g
|
||||
id="g17" /><g
|
||||
id="g19" /><g
|
||||
id="g21" /><g
|
||||
id="g23" /><g
|
||||
id="g25" /><g
|
||||
id="g27" /><g
|
||||
id="g29" /><g
|
||||
id="g31" /><g
|
||||
id="g33" /><g
|
||||
id="g35" /><g
|
||||
id="g37" /><path
|
||||
style="fill:#00ff00;stroke-width:2.16949"
|
||||
d="M 215.72807,507.53308 C 162.71961,498.62211 115.11053,474.12463 76.893336,436.09498 39.36807,398.75387 14.112943,351.03911 5.386094,300.99567 c -4.1222903,-23.63898 -4.1222903,-66.35236 0,-89.99133 C 14.008253,161.56122 39.263887,113.48953 75.833077,76.915237 113.15643,39.586666 154.06344,17.595366 209.35593,5.1343523 217.69335,3.2553845 235.24157,2.2725166 258.16949,2.4003239 289.26436,2.5736565 296.6974,3.3268912 314.76087,8.1350626 390.2236,28.221883 445.8588,71.540834 481.2437,137.76271 500.63865,174.05982 509.83051,212.07808 509.83051,256 c 0,53.98027 -12.71674,96.03922 -42.96516,142.10169 -14.45842,22.01739 -45.63955,53.62066 -66.63035,67.53244 -56.44714,37.41066 -122.27803,52.35994 -184.50693,41.89895 z m 79.32278,-38.26109 c 66.69474,-11.18388 124.35288,-54.9441 155.23134,-117.81436 16.81999,-34.24642 21.42302,-54.7568 21.42302,-95.45763 0,-40.70084 -4.60303,-61.2112 -21.42302,-95.45763 C 416.54007,91.841508 351.24449,46.646652 276.63579,40.351623 183.74995,32.514478 102.19857,78.121277 61.717797,160.54237 44.897813,194.7888 40.29479,215.29916 40.29479,256 c 0,40.70083 4.603023,61.21121 21.423007,95.45763 43.386713,88.33777 134.566653,134.37628 233.333053,117.81436 z"
|
||||
id="path96" /><path
|
||||
style="fill:#008000;stroke-width:2.16949"
|
||||
d="m 236.3213,332.35775 c -21.769,-6.17206 -40.50373,-21.79987 -51.22581,-42.73063 -5.50062,-10.73785 -6.11244,-14.10376 -6.11244,-33.62712 0,-19.6807 0.58931,-22.85864 6.3474,-34.22928 7.84645,-15.49455 23.47217,-30.4091 39.82358,-38.01108 10.36368,-4.81822 15.44018,-5.76739 30.84597,-5.76739 15.40578,0 20.48229,0.94917 30.84597,5.76739 16.35141,7.60198 31.97713,22.51653 39.82357,38.01108 5.7581,11.37064 6.34741,14.54858 6.34741,34.22928 0,19.6807 -0.58931,22.85864 -6.34741,34.22928 -7.77464,15.35277 -23.49443,30.4473 -39.19346,37.63455 -14.31303,6.55273 -36.89604,8.53663 -51.15478,4.49392 z"
|
||||
id="path98" /><path
|
||||
style="fill:#008000;stroke-width:2.16949"
|
||||
d="M 206.10169,504.49124 C 127.20566,487.59493 62.205776,436.20317 27.173029,363.02238 21.843258,351.88888 14.804192,333.99322 11.530661,323.25424 5.8131936,304.49781 5.578785,301.84906 5.578785,256 c 0,-45.84906 0.2344086,-48.4978 5.951876,-67.25424 C 32.549044,119.79392 80.874604,60.902059 141.75428,30.048987 162.90057,19.332308 198.31759,7.9640136 219.39566,5.1273468 248.93064,1.1525593 296.54254,3.8115829 320,10.745884 c 72.79019,21.517644 127.55914,65.552215 160.24491,128.837896 20.42019,39.53725 27.5415,69.6386 27.5415,116.41622 0,45.37717 -6.91577,75.78975 -25.65361,112.81356 -44.0919,87.12047 -131.07015,140.2941 -228.64308,139.77956 -19.26328,-0.10158 -35.11652,-1.47383 -47.38803,-4.10188 z M 310.59295,466.68002 C 373.25941,450.78337 423.80264,408.85996 452.57467,348.9124 468.66334,315.39107 471.4995,301.46686 471.4995,256 c 0,-45.46685 -2.83616,-59.39108 -18.92483,-92.91239 C 405.84324,65.720986 300.90058,18.252796 195.48196,46.798152 137.02428,62.627376 88.47007,103.99464 59.922035,162.29263 43.457751,195.91436 40.500501,210.18286 40.500501,256 c 0,43.90222 2.572306,57.57609 16.612895,88.31095 32.071417,70.20436 94.044494,116.96666 169.055394,127.56216 22.18618,3.13387 61.01346,0.74552 84.42416,-5.19309 z"
|
||||
id="path100" /></svg>
|
After Width: | Height: | Size: 5.6 KiB |
79
skins/estuary4vdr/icons/ico_timer_is_switchtimer.svg
Normal file
79
skins/estuary4vdr/icons/ico_timer_is_switchtimer.svg
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="512px"
|
||||
height="512px"
|
||||
viewBox="0 0 512 512"
|
||||
style="enable-background:new 0 0 512 512;"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
sodipodi:docname="ico_rec_switch.svg"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1304"
|
||||
inkscape:window-height="848"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.4609375"
|
||||
inkscape:cx="-394.84746"
|
||||
inkscape:cy="256"
|
||||
inkscape:window-x="233"
|
||||
inkscape:window-y="123"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1"
|
||||
inkscape:document-rotation="0" /><g
|
||||
id="g3"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1"><path
|
||||
d="M256,0C114.609,0,0,114.609,0,256c0,141.391,114.609,256,256,256c141.391,0,256-114.609,256-256 C512,114.609,397.391,0,256,0z M256,472c-119.297,0-216-96.703-216-216S136.703,40,256,40s216,96.703,216,216S375.297,472,256,472z "
|
||||
id="path5"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1" /><path
|
||||
d="M336,256c0,44.188-35.812,80-80,80c-44.188,0-80-35.812-80-80c0-44.188,35.812-80,80-80C300.188,176,336,211.812,336,256z"
|
||||
id="path7"
|
||||
style="fill:#{sdcol(iconactive)};fill-opacity:1" /></g><g
|
||||
id="g9" /><g
|
||||
id="g11" /><g
|
||||
id="g13" /><g
|
||||
id="g15" /><g
|
||||
id="g17" /><g
|
||||
id="g19" /><g
|
||||
id="g21" /><g
|
||||
id="g23" /><g
|
||||
id="g25" /><g
|
||||
id="g27" /><g
|
||||
id="g29" /><g
|
||||
id="g31" /><g
|
||||
id="g33" /><g
|
||||
id="g35" /><g
|
||||
id="g37" /><path
|
||||
style="fill:#00ff00;stroke-width:2.16949"
|
||||
d="M 215.72807,507.53308 C 162.71961,498.62211 115.11053,474.12463 76.893336,436.09498 39.36807,398.75387 14.112943,351.03911 5.386094,300.99567 c -4.1222903,-23.63898 -4.1222903,-66.35236 0,-89.99133 C 14.008253,161.56122 39.263887,113.48953 75.833077,76.915237 113.15643,39.586666 154.06344,17.595366 209.35593,5.1343523 217.69335,3.2553845 235.24157,2.2725166 258.16949,2.4003239 289.26436,2.5736565 296.6974,3.3268912 314.76087,8.1350626 390.2236,28.221883 445.8588,71.540834 481.2437,137.76271 500.63865,174.05982 509.83051,212.07808 509.83051,256 c 0,53.98027 -12.71674,96.03922 -42.96516,142.10169 -14.45842,22.01739 -45.63955,53.62066 -66.63035,67.53244 -56.44714,37.41066 -122.27803,52.35994 -184.50693,41.89895 z m 79.32278,-38.26109 c 66.69474,-11.18388 124.35288,-54.9441 155.23134,-117.81436 16.81999,-34.24642 21.42302,-54.7568 21.42302,-95.45763 0,-40.70084 -4.60303,-61.2112 -21.42302,-95.45763 C 416.54007,91.841508 351.24449,46.646652 276.63579,40.351623 183.74995,32.514478 102.19857,78.121277 61.717797,160.54237 44.897813,194.7888 40.29479,215.29916 40.29479,256 c 0,40.70083 4.603023,61.21121 21.423007,95.45763 43.386713,88.33777 134.566653,134.37628 233.333053,117.81436 z"
|
||||
id="path96" /><path
|
||||
style="fill:#008000;stroke-width:2.16949"
|
||||
d="m 236.3213,332.35775 c -21.769,-6.17206 -40.50373,-21.79987 -51.22581,-42.73063 -5.50062,-10.73785 -6.11244,-14.10376 -6.11244,-33.62712 0,-19.6807 0.58931,-22.85864 6.3474,-34.22928 7.84645,-15.49455 23.47217,-30.4091 39.82358,-38.01108 10.36368,-4.81822 15.44018,-5.76739 30.84597,-5.76739 15.40578,0 20.48229,0.94917 30.84597,5.76739 16.35141,7.60198 31.97713,22.51653 39.82357,38.01108 5.7581,11.37064 6.34741,14.54858 6.34741,34.22928 0,19.6807 -0.58931,22.85864 -6.34741,34.22928 -7.77464,15.35277 -23.49443,30.4473 -39.19346,37.63455 -14.31303,6.55273 -36.89604,8.53663 -51.15478,4.49392 z"
|
||||
id="path98" /><path
|
||||
style="fill:#ffff00;stroke-width:2.16949"
|
||||
d="M 206.10169,504.49124 C 127.20566,487.59493 62.205776,436.20317 27.173029,363.02238 21.843258,351.88888 14.804192,333.99322 11.530661,323.25424 5.8131936,304.49781 5.578785,301.84906 5.578785,256 c 0,-45.84906 0.2344086,-48.4978 5.951876,-67.25424 C 32.549044,119.79392 80.874604,60.902059 141.75428,30.048987 162.90057,19.332308 198.31759,7.9640136 219.39566,5.1273468 248.93064,1.1525593 296.54254,3.8115829 320,10.745884 c 72.79019,21.517644 127.55914,65.552215 160.24491,128.837896 20.42019,39.53725 27.5415,69.6386 27.5415,116.41622 0,45.37717 -6.91577,75.78975 -25.65361,112.81356 -44.0919,87.12047 -131.07015,140.2941 -228.64308,139.77956 -19.26328,-0.10158 -35.11652,-1.47383 -47.38803,-4.10188 z M 310.59295,466.68002 C 373.25941,450.78337 423.80264,408.85996 452.57467,348.9124 468.66334,315.39107 471.4995,301.46686 471.4995,256 c 0,-45.46685 -2.83616,-59.39108 -18.92483,-92.91239 C 405.84324,65.720986 300.90058,18.252796 195.48196,46.798152 137.02428,62.627376 88.47007,103.99464 59.922035,162.29263 43.457751,195.91436 40.500501,210.18286 40.500501,256 c 0,43.90222 2.572306,57.57609 16.612895,88.31095 32.071417,70.20436 94.044494,116.96666 169.055394,127.56216 22.18618,3.13387 61.01346,0.74552 84.42416,-5.19309 z"
|
||||
id="path100" /><path
|
||||
style="fill:#ffff00;stroke-width:2.16949"
|
||||
d="m 231.62056,329.87503 c -19.432,-7.47847 -37.58534,-24.44505 -46.3932,-43.36027 -4.18771,-8.99327 -5.12103,-14.57144 -5.13837,-30.71062 -0.019,-17.67761 0.66622,-21.09692 6.61232,-32.99612 7.49464,-14.9981 22.76182,-29.97136 38.42543,-37.68566 8.56481,-4.21817 13.67353,-5.05456 30.87326,-5.05456 17.19972,0 22.30844,0.83639 30.87326,5.05456 15.66361,7.7143 30.93078,22.68756 38.42542,37.68566 5.95268,11.91235 6.63352,15.31908 6.63352,33.19198 0,17.8729 -0.68084,21.27963 -6.63352,33.19198 -7.46529,14.93937 -22.8392,30.05422 -38.06767,37.42619 -12.70572,6.15074 -43.41742,7.94939 -55.61045,3.25686 z"
|
||||
id="path120" /></svg>
|
After Width: | Height: | Size: 6.3 KiB |
@ -19,7 +19,7 @@
|
||||
<color name="fontmenuactive">FF111111</color>
|
||||
<color name="progressbarback">FF222222</color>
|
||||
<color name="progressbar">FF99D235</color>
|
||||
<color name="progressbartimeshift">FF666666</color>
|
||||
<color name="progressbartimeshift">FF99EE33</color>
|
||||
<color name="cutmark">FF666666</color>
|
||||
<color name="icontextactive">FFFFFFFF</color>
|
||||
<color name="icontextinactive">FF333333</color>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<color name="fontmenuactive">FFFFFFFF</color>
|
||||
<color name="progressbarback">FF222222</color>
|
||||
<color name="progressbar">FF550000</color>
|
||||
<color name="progressbartimeshift">FF666666</color>
|
||||
<color name="progressbartimeshift">FF992222</color>
|
||||
<color name="cutmark">FF666666</color>
|
||||
<color name="icontextactive">FFFFFFFF</color>
|
||||
<color name="icontextinactive">FFCCCCCC</color>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<color name="fontmenuactive">FF333333</color>
|
||||
<color name="progressbarback">FF222222</color>
|
||||
<color name="progressbar">FF12B2E7</color>
|
||||
<color name="progressbartimeshift">FF666666</color>
|
||||
<color name="progressbartimeshift">FF126696</color>
|
||||
<color name="cutmark">FF666666</color>
|
||||
<color name="icontextactive">FFFFFFFF</color>
|
||||
<color name="icontextinactive">FF333333</color>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<color name="fontmenuactive">FF333333</color>
|
||||
<color name="progressbarback">FF222222</color>
|
||||
<color name="progressbar">FFAF3B00</color>
|
||||
<color name="progressbartimeshift">FF666666</color>
|
||||
<color name="progressbartimeshift">FFEE6633</color>
|
||||
<color name="cutmark">FF666666</color>
|
||||
<color name="icontextactive">FFFFFFFF</color>
|
||||
<color name="icontextinactive">FF333333</color>
|
||||
|
@ -9,6 +9,19 @@
|
||||
</area>
|
||||
</background>
|
||||
|
||||
<datetime>
|
||||
<area x="80%" y="76%" width="17%" height="6%" layer="2">
|
||||
<drawtext align="right" valign="center" fontsize="{areaheight}*{replaydatetimesize}/100" font="{regular}" color="{fontdefault}" text="{daynameshort} {day}.{monthnameshort}" />
|
||||
</area>
|
||||
</datetime>
|
||||
|
||||
<time>
|
||||
<area x="80%" y="80%" width="19%" height="15%" layer="2">
|
||||
<drawtext name="clock" x="20%" valign="center" fontsize="60%" font="{digital}" color="{fontdefault}" text="{hour}:{printf('%02d', min)}" />
|
||||
<drawtext name="clocksec" x="{posx(clock)} + {width(clock)}" y="{areaheight}/2 - {height(clocksec)}/2 + {height(clock)}/2 - {height(clocksec)}/2 - 5" fontsize="45%" font="{digital}" color="{fontdefault}" text=":{printf('%02d', sec)}" />
|
||||
</area>
|
||||
</time>
|
||||
|
||||
<channelinfo>
|
||||
<area x="0" y="80%" width="20%" height="20%" layer="2">
|
||||
<drawimage cache="true" condition="{channellogoexists}" imagetype="channellogo" path="{channelid}" width="80%" height="80%" align="center" valign="center" />
|
||||
@ -37,9 +50,6 @@
|
||||
<drawtext condition="isset{currentsubtitle}" x="0" y="{areaheight}*{epgsubtextposy}/100" fontsize="{areaheight}*{epgsubtextfontsize}/100" width="{areawidth} - {width(startstop)} - 10" font="{regular}" color="{fontdefault}" text="{currentsubtitle}" />
|
||||
<drawtext condition="empty{currentsubtitle}" x="0" valign="center" fontsize="{areaheight}*{epgtextfontsizelarge}/100" width="{areawidth} - {width(startstop)} - 10" font="{regular}" color="{fontdefault}" text="{currenttitle}" />
|
||||
</area>
|
||||
<area x="70%" y="83%" width="10%" height="3%" layer="2">
|
||||
<drawtext align="right" y="0" fontsize="100%" font="{regular}" color="{fontactive}" text="+{currentremaining} min" />
|
||||
</area>
|
||||
<!-- next schedule -->
|
||||
<area x="20%" y="88%" width="60%" height="10%" layer="2">
|
||||
<drawtext name="startstop" align="right" valign="center" fontsize="{areaheight}*{startstopfontsize}/100" font="{bold}" color="{fontdefault}" text="{nextstart} - {nextstop}" />
|
||||
@ -54,8 +64,14 @@
|
||||
<fill color="{progressbarback}" />
|
||||
</area>
|
||||
<area x="20%" y="86%" width="60%" height="2%" layer="3">
|
||||
<drawrectangle x="0" y="0" width="{areawidth}*{elapsed}/{duration}" height="100%" color="{progressbar}" />
|
||||
<drawrectangle condition="not{permashift}" x="0" y="0" width="{areawidth}*{elapsed}/{duration}" height="100%" color="{progressbar}" />
|
||||
<drawrectangle condition="{permashift}" x="{elapsed}/{duration}*{areawidth} - {livebuffer}/{duration}*{areawidth}" y="0" width="{livebuffer}/{duration}*{areawidth}" height="100%" color="{progressbartimeshift}" />
|
||||
<drawrectangle condition="{permashift}" x="0" y="{areaheight}*0.2" width="{areawidth}*{elapsed}/{duration} - 1" height="{areaheight}*0.6" color="{progressbar}" />
|
||||
</area>
|
||||
<!-- time remaining -->
|
||||
<area x="70%" y="83%" width="10%" height="3%" layer="2">
|
||||
<drawtext align="right" y="0" fontsize="100%" font="{regular}" color="{fontactive}" text="+{currentremaining} min" />
|
||||
</area>
|
||||
</progressbar>
|
||||
|
||||
<statusinfo>
|
||||
@ -310,13 +326,6 @@
|
||||
</areascroll>
|
||||
</groupchannellistdetail>
|
||||
|
||||
<time>
|
||||
<area x="80%" y="80%" width="20%" height="15%" layer="2">
|
||||
<drawtext name="clock" x="11%" valign="center" fontsize="60%" font="{digital}" color="{fontdefault}" text="{hour}:{printf('%02d', min)}" />
|
||||
<drawtext name="clocksec" x="{posx(clock)} + {width(clock)}" y="{areaheight}/2 - {height(clocksec)}/2 + {height(clock)}/2 - {height(clocksec)}/2 - 5" fontsize="45%" font="{digital}" color="{fontdefault}" text=":{printf('%02d', sec)}" />
|
||||
</area>
|
||||
</time>
|
||||
|
||||
<message>
|
||||
<area x="10%" y="80%" width="80%" height="15%" layer="6">
|
||||
<fill color="{messageback}" />
|
||||
|
@ -16,15 +16,15 @@
|
||||
</backgroundmodeonly>
|
||||
|
||||
<datetime>
|
||||
<area x="75%" y="75%" width="13%" height="6%" layer="2">
|
||||
<area x="85%" y="75%" width="14%" height="6%" layer="2">
|
||||
<drawtext align="right" y="0" fontsize="{areaheight}*{replaydatetimesize}/100" font="{regular}" color="{fontdefault}" text="{daynameshort} {day}.{monthnameshort}" />
|
||||
</area>
|
||||
</datetime>
|
||||
|
||||
<time>
|
||||
<area x="89%" y="75%" width="11%" height="6%" layer="2">
|
||||
<drawtext name="clock" x="0" y="0" fontsize="{areaheight}*{replaydatetimesize}/100" font="{regular}" color="{fontdefault}" text="{hour}:{printf('%02d', min)}" />
|
||||
<drawtext name="clocksec" x="{posx(clock)} + {width(clock)}" y="{height(clock)} - {height(clocksec)} - 1" fontsize="{areaheight}*{replaydatetimesize}*0.8/100" font="{regular}" color="{fontdefault}" text=":{printf('%02d', sec)}" />
|
||||
<area x="80%" y="80%" width="19%" height="5%" layer="2">
|
||||
<drawtext name="clocksec" align="right" y="{height(clock)} - {height(clocksec)} - 1" fontsize="{areaheight}*{replaydatetimesize}*0.8/100" font="{regular}" color="{fontdefault}" text=":{printf('%02d', sec)}" />
|
||||
<drawtext name="clock" x="{posx(clocksec)} - {width(clock)}" y="0" fontsize="{areaheight}*{replaydatetimesize}/100" font="{regular}" color="{fontdefault}" text="{hour}:{printf('%02d', min)}" />
|
||||
</area>
|
||||
</time>
|
||||
|
||||
@ -38,7 +38,12 @@
|
||||
</scrapercontent>
|
||||
|
||||
<rectitle>
|
||||
<area x="12%" y="75%" width="63%" height="6%" layer="2">
|
||||
<area condition="{timeshift}" x="12%" y="75%" width="73%" height="6%" layer="2">
|
||||
<drawtext name="eventtime" align="right" y="0" fontsize="{areaheight}*{replaytitlesize}/100" font="{bold}" color="{fontactive}" text= "{eventstart} - {eventstop}" />
|
||||
<drawtext name="title" x="0" y="0" width="{areawidth} - {width(eventtime)} - 2" fontsize="{areaheight}*{replaytitlesize}/100" font="{regular}" color="{fontdefault}" text="{rectitle}" />
|
||||
<drawtext condition="isset{title} ++ isset{recsubtitle}" x="{width(title)}" y="0" width="{areawidth} - {width(title)} - {width(eventtime)} - 2" fontsize="{areaheight}*{replaytitlesize}/100" font="{regular}" color="{fontdefault}" text=" - {recsubtitle}" />
|
||||
</area>
|
||||
<area condition="not{timeshift}" x="12%" y="75%" width="63%" height="6%" layer="2">
|
||||
<drawtext name="title" x="0" y="0" fontsize="{areaheight}*{replaytitlesize}/100" font="{regular}" color="{fontdefault}" text="{rectitle}" />
|
||||
<drawtext condition="isset{title} ++ isset{recsubtitle}" x="{width(title)}" y="0" fontsize="{areaheight}*{replaytitlesize}/100" font="{regular}" color="{fontdefault}" text=" - {recsubtitle}" />
|
||||
</area>
|
||||
@ -68,39 +73,54 @@
|
||||
</recinfo>
|
||||
|
||||
<currenttime>
|
||||
<area x="12%" y="86%" width="15%" height="5%" layer="2">
|
||||
<area condition="not{timeshift}" x="12%" y="87%" width="15%" height="5%" layer="2">
|
||||
<drawtext x="0" y="0" fontsize="{areaheight}*{replaycurrenttotaltimesize}/100" font="{regular}" color="{fontdefault}" text="{reccurrent}" />
|
||||
</area>
|
||||
<area condition="{timeshift}" x="12%" y="90%" width="15%" height="5%" layer="2">
|
||||
<drawtext x="0" y="0" fontsize="{areaheight}*{replaycurrenttotaltimesize}/100" font="{regular}" color="{fontdefault}" text="({reccurrent})" />
|
||||
</area>
|
||||
</currenttime>
|
||||
|
||||
<totaltime>
|
||||
<area x="80%" y="86%" width="19%" height="5%" layer="2">
|
||||
<drawtext condition="not{timeshift}" align="right" y="0" fontsize="{areaheight}*{replaycurrenttotaltimesize}/100" font="{regular}" color="{fontdefault}" text="{rectotal}" />
|
||||
<drawtext condition="{timeshift}" align="right" y="0" font="{regular}" fontsize="{areaheight}*{replaycurrenttotaltimesize}/100" color="{fontdefault}" text="{timeshifttotal} ({rectotal})" />
|
||||
<area condition="not{timeshift}" x="80%" y="87%" width="19%" height="5%" layer="2">
|
||||
<drawtext align="right" y="0" fontsize="{areaheight}*{replaycurrenttotaltimesize}/100" font="{regular}" color="{fontdefault}" text="{rectotal}" />
|
||||
</area>
|
||||
<area condition="{timeshift}" x="80%" y="90%" width="19%" height="5%" layer="2">
|
||||
<drawtext align="right" y="0" font="{regular}" fontsize="{areaheight}*{replaycurrenttotaltimesize}/100" color="{fontdefault}" text="{timeshifttotal} ({rectotal})" />
|
||||
</area>
|
||||
</totaltime>
|
||||
|
||||
<timeshifttimes>
|
||||
<area condition="{timeshift}" x="12%" y="81%" width="19%" height="5%" layer="2">
|
||||
<drawtext align="left" y="0" fontsize="{areaheight}*{replayendtimesize}/100" font="{regular}" color="{fontdefault}" text="{tr(start)}: {recstart}" />
|
||||
</area>
|
||||
<area condition="{timeshift}" x="40%" y="81%" width="20%" height="5%" layer="2">
|
||||
<drawtext name="rest" align="center" y="0" fontsize="{areaheight}*{replayendtimesize}/100" font="{regular}" color="{fontdefault}" text="TS {tr(rest)}: -{timeshiftrest}" />
|
||||
</area>
|
||||
<area condition="{timeshift}" x="12%" y="87%" width="19%" height="5%" layer="2">
|
||||
<drawtext align="left" y="0" fontsize="{areaheight}*{replayendtimesize}/100" font="{regular}" color="{fontdefault}" text="{tr(playback)}: {playbacktime}" />
|
||||
</area>
|
||||
</timeshifttimes>
|
||||
|
||||
<endtime>
|
||||
<area x="80%" y="90%" width="19%" height="5%" layer="2">
|
||||
<area condition="{timeshift}" x="80%" y="87%" width="19%" height="5%" layer="2">
|
||||
<drawtext align="right" y="0" fontsize="{areaheight}*{replayendtimesize}/100" font="{regular}" color="{fontdefault}" text="{tr(end)}: {recend}" />
|
||||
</area>
|
||||
</endtime>
|
||||
|
||||
<progressbar>
|
||||
<area background="true" x="12%" y="83%" width="87%" height="3%" layer="2">
|
||||
<area background="true" x="12%" y="84%" width="87%" height="3%" layer="2">
|
||||
<fill color="{progressbarback}" />
|
||||
</area>
|
||||
<area condition="not{timeshift}" x="12%" y="83%" width="87%" height="3%" layer="3">
|
||||
<drawrectangle x="0" y="0" width="{areawidth}*{current}/{total}" height="100%" color="{progressbar}" />
|
||||
</area>
|
||||
<area condition="{timeshift}" x="12%" y="83%" width="87%" height="3%" layer="3">
|
||||
<drawrectangle x="0" y="0" width="{total}/{timeshifttotal}*{areawidth}" height="{areaheight}" color="{progressbartimeshift}" />
|
||||
<drawrectangle x="0" y="0" width="{current}/{timeshifttotal}*{areawidth}" height="{areaheight}" color="{progressbar}" />
|
||||
<area x="12%" y="84%" width="87%" height="3%" layer="3">
|
||||
<drawrectangle condition="not{timeshift}" x="0" y="0" width="{areawidth}*{current}/{total}" height="100%" color="{progressbar}" />
|
||||
<drawrectangle condition="{timeshift}" x="0" y="{areaheight}*0.2" width="{total}/{timeshifttotal}*{areawidth}" height="{areaheight}*0.6" color="{progressbartimeshift}" />
|
||||
<drawrectangle condition="{timeshift}" x="0" y="0" width="{current}/{timeshifttotal}*{areawidth}" height="{areaheight}" color="{progressbar}" />
|
||||
</area>
|
||||
</progressbar>
|
||||
|
||||
<cutmarks>
|
||||
<area condition="not{timeshift}" x="12%" y="83%" width="87%" height="3%" layer="4">
|
||||
<area condition="not{timeshift}" x="12%" y="84%" width="87%" height="3%" layer="4">
|
||||
<loop name="marks" x="0" y="0" orientation="absolute">
|
||||
<!-- draw mark -->
|
||||
<drawrectangle x="{marks[position]}/{marks[total]}*{areawidth}-2" y="0" width="4" height="100%" color="{cutmark}" />
|
||||
@ -112,6 +132,18 @@
|
||||
<drawrectangle condition="{marks[startmark]}" x="{marks[position]}/{marks[total]}*{areawidth}" y="30%" width="{marks[endposition]}/{marks[total]}*{areawidth} - {marks[position]}/{marks[total]}*{areawidth}" height="40%" color="{cutmark}" />
|
||||
</loop>
|
||||
</area>
|
||||
<area condition="{timeshift}" x="12%" y="84%" width="87%" height="3%" layer="4">
|
||||
<loop name="marks" x="0" y="0" orientation="absolute">
|
||||
<!-- draw mark -->
|
||||
<drawrectangle x="{marks[position]}/{marks[timeshifttotal]}*{areawidth}-2" y="0" width="4" height="100%" color="{cutmark}" />
|
||||
<drawrectangle condition="{marks[startmark]}" x="{marks[position]}/{marks[timeshifttotal]}*{areawidth}" y="0" width="5" height="2" color="{cutmark}" />
|
||||
<drawrectangle condition="{marks[startmark]}" x="{marks[position]}/{marks[timeshifttotal]}*{areawidth}" y="{areaheight}-2" width="5" height="2" color="{cutmark}" />
|
||||
<drawrectangle condition="not{marks[startmark]}" x="{marks[position]}/{marks[timeshifttotal]}*{areawidth}-5" y="0" width="5" height="2" color="{cutmark}" />
|
||||
<drawrectangle condition="not{marks[startmark]}" x="{marks[position]}/{marks[timeshifttotal]}*{areawidth}-5" y="{areaheight}-2" width="5" height="2" color="{cutmark}" />
|
||||
<!-- draw bar to next mark if mark is startmark-->
|
||||
<drawrectangle condition="{marks[startmark]}" x="{marks[position]}/{marks[timeshifttotal]}*{areawidth}" y="30%" width="{marks[endposition]}/{marks[timeshifttotal]}*{areawidth} - {marks[position]}/{marks[timeshifttotal]}*{areawidth}" height="40%" color="{cutmark}" />
|
||||
</loop>
|
||||
</area>
|
||||
</cutmarks>
|
||||
|
||||
<controlicons>
|
||||
|
@ -314,8 +314,9 @@
|
||||
<drawrectangle x="0" y="0" width="2" height="100%" color="{menubackline}" />
|
||||
<drawrectangle x="0" y="{areaheight}-2" width="100%" height="2" color="{menubackline}" />
|
||||
<!--<drawrectangle x="{areawidth}-2" y="0" width="2" height="100%" color="{menubackline}" />-->
|
||||
<drawimage condition="{timer}++{timerisactive}" imagetype="icon" path="ico_timer_is_active" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<drawimage condition="{timer}++not{timerisactive}" imagetype="icon" path="ico_timer_is_inactive" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<drawimage condition="{timer}" imagetype="icon" path="ico_timer_is_active" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<!--<drawimage condition="{timer}++{timerisactive}" imagetype="icon" path="ico_timer_is_active" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<drawimage condition="{timer}++not{timerisactive}" imagetype="icon" path="ico_timer_is_inactive" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />-->
|
||||
</area>
|
||||
<!--EPG without time-->
|
||||
<area condition="not{tvgshowtime}" layer="4">
|
||||
@ -324,8 +325,9 @@
|
||||
<drawrectangle x="0" y="0" width="2" height="100%" color="{menubackline}" />
|
||||
<drawrectangle x="0" y="{areaheight}-2" width="100%" height="2" color="{menubackline}" />
|
||||
<!--<drawrectangle x="{areawidth}-2" y="0" width="2" height="100%" color="{menubackline}" />-->
|
||||
<drawimage condition="{timer}++{timerisactive}" imagetype="icon" path="ico_timer_is_active" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<drawimage condition="{timer}++not{timerisactive}" imagetype="icon" path="ico_timer_is_inactive" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<drawimage condition="{timer}" imagetype="icon" path="ico_timer_is_active" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<!--<drawimage condition="{timer}++{timerisactive}" imagetype="icon" path="ico_timer_is_active" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />
|
||||
<drawimage condition="{timer}++not{timerisactive}" imagetype="icon" path="ico_timer_is_inactive" x="{areawidth} - {areaheight}*0.4 - 5" y="5" width="0.4*{areaheight}" height="0.4*{areaheight}" />-->
|
||||
</area>
|
||||
</grid>
|
||||
|
||||
|
@ -28,7 +28,6 @@
|
||||
<area x="22%" y="80%" width="76%" height="7%" layer="2">
|
||||
<drawtext name="title" x="0" valign="center" font="{light}" fontsize="99%" color="{fontdefault}" text="{currenttitle}" width="{areawidth} - {width(startstop)}"/>
|
||||
<drawtext name="startstop" align="right" y="0" font="{light}" fontsize="60%" color="{fontdefault}" text="{currentstart} - {currentstop}" />
|
||||
<drawtext align="right" y="45%" font="{light}" fontsize="60%" color="{fontdefault}" text="+ {currentremaining} min" />
|
||||
</area>
|
||||
<area x="22%" y="87%" width="76%" height="7%" layer="2">
|
||||
<drawtext x="0" valign="center" font="{light}" fontsize="80%" color="{fontdefault}" text="{nexttitle}" width="{areawidth} - {width(startstop)}"/>
|
||||
@ -47,6 +46,9 @@
|
||||
<drawrectangle x="{elapsed}/{duration}*{areawidth} - {livebuffer}/{duration}*{areawidth}" y="0" width="{livebuffer}/{duration}*{areawidth}" height="5" color="{clrRed}" />
|
||||
<drawrectangle x="0" y="1" width="{elapsed}/{duration}*{areawidth}" height="3" color="{menuheader}" />
|
||||
</area>
|
||||
<area x="22%" y="80%" width="76%" height="7%" layer="2">
|
||||
<drawtext align="right" y="45%" font="{light}" fontsize="60%" color="{fontdefault}" text="+ {currentremaining} min" />
|
||||
</area>
|
||||
</progressbar>
|
||||
|
||||
<statusinfo>
|
||||
|
@ -25,7 +25,7 @@
|
||||
{currentdurationhours} Duration, full hours
|
||||
{currentdurationminutes} Duration, rest of minutes
|
||||
{currentelapsed} Elapsed time of current Schedule in min
|
||||
{currentremaining} Remaining time of current Schedule in min
|
||||
{currentremaining} Remaining time of current Schedule in min -> DEPRECATED, it doesn't work as expected
|
||||
{currentrecording} true if current Schedule is recorded
|
||||
{hasVPS} true if current Schedule has VPS
|
||||
{nexttitle} Title of next Schedule
|
||||
@ -48,6 +48,7 @@
|
||||
{remaining} Remaining time of current Schedule in seconds
|
||||
{permashift} true if permashift plugin is in use
|
||||
{livebuffer} current buffered data in seconds
|
||||
{currentremaining} Remaining time of current Schedule in min
|
||||
-->
|
||||
<progressbar>
|
||||
</progressbar>
|
||||
|
@ -56,6 +56,9 @@
|
||||
{recsubtitle} Subtitle of the Recording
|
||||
{recdate} Date Recording in dd.mm.yy
|
||||
{rectime} Time of Recording in hh:mm
|
||||
{eventstart} Starttime of coresponding event in timeshiftmode in hh:mm
|
||||
{eventstop} Endtime of coresponding event in timeshiftmode in hh:mm
|
||||
{timeshift} true if a timeshifted recording is displayed
|
||||
-->
|
||||
<rectitle>
|
||||
</rectitle>
|
||||
@ -73,7 +76,8 @@
|
||||
</recinfo>
|
||||
|
||||
<!-- Available Variables currenttime:
|
||||
{reccurrent} Current Time in hh:mm:ss
|
||||
{reccurrent} Current Time in hh:mm:ss
|
||||
{timeshift} true if a timeshifted recording is displayed
|
||||
-->
|
||||
<currenttime>
|
||||
</currenttime>
|
||||
@ -86,8 +90,18 @@
|
||||
<totaltime>
|
||||
</totaltime>
|
||||
|
||||
<!-- Available Variables timeshifttimes:
|
||||
{recstart} Start Time in hh:mm
|
||||
{playbacktime} actual replaying time in timeshift mode in hh:mm
|
||||
{timeshiftrest} Rest of unseen timeshift buffer in hh:mm
|
||||
{timeshift} true if a timeshifted recording is displayed
|
||||
-->
|
||||
<timeshifttimes>
|
||||
</timeshifttimes>
|
||||
|
||||
<!-- Available Variables endtime:
|
||||
{recend} End Time in hh:mm
|
||||
{timeshift} true if a timeshifted recording is displayed
|
||||
-->
|
||||
<endtime>
|
||||
</endtime>
|
||||
|
Loading…
Reference in New Issue
Block a user