summaryrefslogtreecommitdiff
path: root/coreengine
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-04-25 11:14:40 +0200
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-04-25 11:14:40 +0200
commit0aeb15d03a617c1249ebada42f9caeffee88afc9 (patch)
tree8a5d14362a77a291f21bc05cacc7706268594349 /coreengine
parent22b24eb455220cec7261ab8dbc5e830819f48465 (diff)
parent4821574437de4fc2d98da94dff75001ea501cfc4 (diff)
downloadvdr-plugin-skindesigner-0aeb15d03a617c1249ebada42f9caeffee88afc9.tar.gz
vdr-plugin-skindesigner-0aeb15d03a617c1249ebada42f9caeffee88afc9.tar.bz2
Merge branch 'pbiering/code-optimization' into develop
Diffstat (limited to 'coreengine')
-rw-r--r--coreengine/listelements.c1616
1 files changed, 846 insertions, 770 deletions
diff --git a/coreengine/listelements.c b/coreengine/listelements.c
index 02b32d5..0bc6816 100644
--- a/coreengine/listelements.c
+++ b/coreengine/listelements.c
@@ -4,6 +4,373 @@
#include <sstream>
#include <algorithm>
+// eLeMenuDefaultIT, eLeMenuDefaultST
+#define TOKEN_LMD_IT eLeMenuDefaultIT
+#define TOKEN_LMD_ST eLeMenuDefaultST
+
+#define ADD_TOKEN_LMD_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LMD_IT::entry, value)
+#define ADD_TOKEN_LMD_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LMD_ST::entry, value)
+
+// eLeGroupListIT, eLeGroupListST
+#define TOKEN_LGL_IT eLeGroupListIT
+#define TOKEN_LGL_ST eLeGroupListST
+
+#define ADD_TOKEN_LGL_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LGL_IT::entry, value)
+#define ADD_TOKEN_LGL_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LGL_ST::entry, value)
+
+// eLeChannelListIT, eLeChannelListST
+#define TOKEN_LCL_IT eLeChannelListIT
+#define TOKEN_LCL_ST eLeChannelListST
+
+#define ADD_TOKEN_LCL_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LCL_IT::entry, value)
+#define ADD_TOKEN_LCL_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LCL_ST::entry, value)
+
+// eLeDisplayTracksIT, eLeDisplayTracksST
+#define TOKEN_LDT_IT eLeDisplayTracksIT
+#define TOKEN_LDT_ST eLeDisplayTracksST
+
+#define ADD_TOKEN_LDT_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LDT_IT::entry, value)
+#define ADD_TOKEN_LDT_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LDT_ST::entry, value)
+
+/*-------------------------------------------------------------------------------------------------------*/
+
+// eCeMenuTimersIT, eCeMenuTimersST
+#define TOKEN_CMT_IT eCeMenuTimersIT
+#define TOKEN_CMT_ST eCeMenuTimersST
+
+#define ADD_TOKEN_CMT_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_CMT_IT::entry, value)
+#define ADD_TOKEN_CMT_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_CMT_ST::entry, value)
+
+// eLeMenuTimersIT, eLeMenuTimersST
+#define TOKEN_LMT_IT eLeMenuTimersIT
+#define TOKEN_LMT_ST eLeMenuTimersST
+
+#define ADD_TOKEN_LMT_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LMT_IT::entry, value)
+#define ADD_TOKEN_LMT_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LMT_ST::entry, value)
+
+/*----------------------------------------------------------------------------------------------*/
+/* fill tokens common for eCeMenuTimersIT, eCeMenuTimersST, eLeMenuTimersIT and eLeMenuTimersST */
+/*----------------------------------------------------------------------------------------------*/
+#define DEF_TOK_CONT_MT(token_it, token_st) \
+ { \
+ /* fill tokens for eCeMenuTimersIT, eCeMenuTimersST, eLeMenuTimersIT and eLeMenuTimersST */ \
+ tokenContainer->DefineStringToken("{title}", (int)token_st::title); \
+ tokenContainer->DefineStringToken("{timerstart}", (int)token_st::timerstart); \
+ tokenContainer->DefineStringToken("{timerstop}", (int)token_st::timerstop); \
+ tokenContainer->DefineStringToken("{day}", (int)token_st::day); \
+ tokenContainer->DefineStringToken("{dayname}", (int)token_st::dayname); \
+ tokenContainer->DefineStringToken("{monthname}", (int)token_st::monthname); \
+ tokenContainer->DefineStringToken("{channelname}", (int)token_st::channelname); \
+ tokenContainer->DefineStringToken("{channelid}", (int)token_st::channelid); \
+ tokenContainer->DefineStringToken("{eventtitle}", (int)token_st::eventtitle); \
+ tokenContainer->DefineStringToken("{eventstart}", (int)token_st::eventstart); \
+ tokenContainer->DefineStringToken("{eventstop}", (int)token_st::eventstop); \
+ tokenContainer->DefineStringToken("{state}", (int)token_st::state); \
+ tokenContainer->DefineStringToken("{stateinfo}", (int)token_st::stateinfo); \
+ tokenContainer->DefineStringToken("{action}", (int)token_st::action); \
+ tokenContainer->DefineStringToken("{vdrname}", (int)token_st::vdrname); \
+ tokenContainer->DefineStringToken("{type}", (int)token_st::type); \
+ tokenContainer->DefineIntToken("{month}", (int)token_it::month); \
+ tokenContainer->DefineIntToken("{year}", (int)token_it::year); \
+ tokenContainer->DefineIntToken("{channellogoexists}", (int)token_it::channellogoexists); \
+ tokenContainer->DefineIntToken("{channelnumber}", (int)token_it::channelnumber); \
+ tokenContainer->DefineIntToken("{flagactive}", (int)token_it::flagactive); \
+ tokenContainer->DefineIntToken("{flaginstant}", (int)token_it::flaginstant); \
+ tokenContainer->DefineIntToken("{flagvps}", (int)token_it::flagvps); \
+ tokenContainer->DefineIntToken("{flagrecording}", (int)token_it::flagrecording); \
+ tokenContainer->DefineIntToken("{flagpending}", (int)token_it::flagpending); \
+ tokenContainer->DefineIntToken("{isvdrrunning}", (int)token_it::isvdrrunning); \
+ tokenContainer->DefineIntToken("{isremote}", (int)token_it::isremote); \
+}
+
+/*-----------------------------------------------------------------*/
+/* Add token for cCeMenuTimers::Parse() and cLeMenuTimers::Parse() */
+/*-----------------------------------------------------------------*/
+#define ADD_TOKEN_MT(token_it) \
+ { \
+ tokenContainer->AddIntToken((int)token_it::flagactive, timer->HasFlags(tfActive)); \
+ tokenContainer->AddIntToken((int)token_it::flaginstant, timer->HasFlags(tfInstant)); \
+ tokenContainer->AddIntToken((int)token_it::flagvps, timer->HasFlags(tfVps)); \
+ tokenContainer->AddIntToken((int)token_it::flagrecording, timer->Recording()); \
+ tokenContainer->AddIntToken((int)token_it::flagpending, timer->Pending()); \
+ }
+
+/*-------------------------------------------------------------------------------------------------------*/
+
+// eCeMenuRecordingsIT, eCeMenuRecordingsST
+#define TOKEN_CMR_IT eCeMenuRecordingsIT
+#define TOKEN_CMR_ST eCeMenuRecordingsST
+
+#define ADD_TOKEN_CMR_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_CMR_IT::entry, value)
+#define ADD_TOKEN_CMR_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_CMR_ST::entry, value)
+
+// eLeMenuRecordingsIT, eLeMenuRecordingsST
+#define TOKEN_LMR_IT eLeMenuRecordingsIT
+#define TOKEN_LMR_ST eLeMenuRecordingsST
+
+#define ADD_TOKEN_LMR_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LMR_IT::entry, value)
+#define ADD_TOKEN_LMR_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LMR_ST::entry, value)
+
+/*-------------------------------------------------------------------------------------------------------*/
+/* fill tokens for eCeMenuRecordingsIT, eCeMenuRecordingsST, eLeMenuRecordingsIT and eLeMenuRecordingsST */
+/*-------------------------------------------------------------------------------------------------------*/
+#define DEF_TOK_CONT_MR(token_it, token_st) \
+ { \
+ tokenContainer->DefineStringToken("{name}", (int)token_st::name); \
+ tokenContainer->DefineStringToken("{epgname}", (int)token_st::epgname); \
+ tokenContainer->DefineStringToken("{shorttext}", (int)token_st::shorttext); \
+ tokenContainer->DefineStringToken("{description}", (int)token_st::description); \
+ tokenContainer->DefineStringToken("{date}", (int)token_st::date); \
+ tokenContainer->DefineStringToken("{time}", (int)token_st::time); \
+ tokenContainer->DefineStringToken("{durationminutes}", (int)token_st::durationminutes); \
+ tokenContainer->DefineStringToken("{durationeventminutes}", (int)token_st::durationeventminutes); \
+ tokenContainer->DefineStringToken("{thumbnailpath}", (int)token_st::thumbnailpath); \
+ tokenContainer->DefineStringToken("{posterpath}", (int)token_st::posterpath); \
+ tokenContainer->DefineIntToken("{new}", (int)token_it::isnew); \
+ tokenContainer->DefineIntToken("{percentseen}", (int)token_it::percentseen); \
+ tokenContainer->DefineIntToken("{watched}", (int)token_it::watched); \
+ tokenContainer->DefineIntToken("{cutted}", (int)token_it::cutted); \
+ tokenContainer->DefineIntToken("{folder}", (int)token_it::folder); \
+ tokenContainer->DefineIntToken("{daynumeric}", (int)token_it::daynumeric); \
+ tokenContainer->DefineIntToken("{month}", (int)token_it::month); \
+ tokenContainer->DefineIntToken("{year}", (int)token_it::year); \
+ tokenContainer->DefineIntToken("{duration}", (int)token_it::duration); \
+ tokenContainer->DefineIntToken("{durationhours}", (int)token_it::durationhours); \
+ tokenContainer->DefineIntToken("{durationevent}", (int)token_it::durationevent); \
+ tokenContainer->DefineIntToken("{durationeventhours}", (int)token_it::durationeventhours); \
+ tokenContainer->DefineIntToken("{numrecordingsfolder}", (int)token_it::numrecordingsfolder); \
+ tokenContainer->DefineIntToken("{newrecordingsfolder}", (int)token_it::newrecordingsfolder); \
+ tokenContainer->DefineIntToken("{hasposterthumbnail}", (int)token_it::hasposterthumbnail); \
+ tokenContainer->DefineIntToken("{thumbnailwidth}", (int)token_it::thumbnailwidth); \
+ tokenContainer->DefineIntToken("{thumbnailheight}", (int)token_it::thumbnailheight); \
+ tokenContainer->DefineIntToken("{hasposter}", (int)token_it::hasposter); \
+ tokenContainer->DefineIntToken("{posterwidth}", (int)token_it::posterwidth); \
+ tokenContainer->DefineIntToken("{posterheight}", (int)token_it::posterheight); \
+ tokenContainer->DefineIntToken("{fps}", (int)token_it::framesPerSecond); \
+ tokenContainer->DefineIntToken("{isHD}", (int)token_it::isHD); \
+ tokenContainer->DefineIntToken("{isUHD}", (int)token_it::isUHD); \
+ tokenContainer->DefineIntToken("{isRadio}", (int)token_it::isRadio); \
+ tokenContainer->DefineIntToken("{isRecording}", (int)token_it::isRecording); \
+ tokenContainer->DefineStringToken("{recchannelname}", (int)token_st::recchannelname); \
+ tokenContainer->DefineStringToken("{recchannelid}", (int)token_st::recchannelid); \
+}
+
+/*---------------------------------------------------------------------------------*/
+/* Add first SW part for cCeMenuRecordings::Parse() and cLeMenuRecordings::Parse() */
+/*---------------------------------------------------------------------------------*/
+#define ADD_TOKEN_MR1(token_it) \
+ { \
+ tokenContainer->AddIntToken((int)token_it::percentseen, percSeen); \
+ tokenContainer->AddIntToken((int)token_it::newrecordingsfolder, New); \
+ tokenContainer->AddIntToken((int)token_it::numrecordingsfolder, total); \
+ tokenContainer->AddIntToken((int)token_it::cutted, usedRecording->IsEdited()); \
+ \
+ bool watched = false; \
+ if (usedRecording->IsEdited()) { \
+ if (percSeen >= 85) \
+ watched = true; \
+ } else { \
+ int watchedLimit = recDuration * 85 / 100 - (Setup.MarginStop + 5)*60; \
+ int watchedTime = percSeen * recDuration / 100; \
+ if (watchedLimit > 0 && watchedTime > 0 && (watchedTime > watchedLimit)) \
+ watched = true; \
+ } \
+ tokenContainer->AddIntToken((int)token_it::watched, watched); \
+ }
+
+/*----------------------------------------------------------------------------------*/
+/* Add second SW part for cCeMenuRecordings::Parse() and cLeMenuRecordings::Parse() */
+/*----------------------------------------------------------------------------------*/
+#define ADD_TOKEN_MR2(token_it, token_st) \
+ { \
+ time_t startTime = event->StartTime(); \
+ if (!startTime) \
+ startTime = usedRecording->Start(); \
+ struct tm * sStartTime = localtime(&startTime); \
+ tokenContainer->AddIntToken((int)token_it::year, sStartTime->tm_year + 1900); \
+ tokenContainer->AddIntToken((int)token_it::daynumeric, sStartTime->tm_mday); \
+ tokenContainer->AddIntToken((int)token_it::month, sStartTime->tm_mon+1); \
+ \
+ int duration = event->Duration() / 60; \
+ recDuration = (recDuration>0)?(recDuration / 60):0; \
+ tokenContainer->AddStringToken((int)token_st::date, *recDate); \
+ tokenContainer->AddStringToken((int)token_st::time, *recTime); \
+ tokenContainer->AddIntToken((int)token_it::duration, recDuration); \
+ tokenContainer->AddIntToken((int)token_it::durationhours, recDuration / 60); \
+ tokenContainer->AddStringToken((int)token_st::durationminutes, *cString::sprintf("%.2d", recDuration%60)); \
+ tokenContainer->AddIntToken((int)token_it::durationevent, duration); \
+ tokenContainer->AddIntToken((int)token_it::durationeventhours, duration / 60); \
+ tokenContainer->AddStringToken((int)token_st::durationeventminutes, *cString::sprintf("%.2d", duration%60)); \
+ \
+ tokenContainer->AddStringToken((int)token_st::shorttext, info->ShortText()); \
+ tokenContainer->AddStringToken((int)token_st::description, info->Description()); \
+ tokenContainer->AddIntToken((int)token_it::framesPerSecond, info->FramesPerSecond()); \
+ tokenContainer->AddIntToken((int)token_it::isHD, RecordingIsHD(event)); /* detect HD from 'info' */ \
+ tokenContainer->AddIntToken((int)token_it::isUHD, RecordingIsUHD(event)); /* detect UHD from 'info' */ \
+ tokenContainer->AddIntToken((int)token_it::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); /* detect Radio from 'info' and FPS */ \
+ tokenContainer->AddIntToken((int)token_it::isRecording, usedRecording->IsInUse() & ruTimer); \
+ SetScraperRecordingPoster(tokenContainer, usedRecording, true); \
+ }
+
+/*-------------------------------------------------------------------------------------------------------*/
+
+// eCeMenuMainIT, eCeMenuMainST
+#define TOKEN_CMM_IT eCeMenuMainIT
+#define TOKEN_CMM_ST eCeMenuMainST
+
+#define ADD_TOKEN_CMM_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_CMM_IT::entry, value)
+#define ADD_TOKEN_CMM_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_CMM_ST::entry, value)
+
+// eLeMenuMainIT, eLeMenuMainST
+#define TOKEN_LMM_IT eLeMenuMainIT
+#define TOKEN_LMM_ST eLeMenuMainST
+
+#define ADD_TOKEN_LMM_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LMM_IT::entry, value)
+#define ADD_TOKEN_LMM_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LMM_ST::entry, value)
+
+/*-----------------------------------------------------------------------------------*/
+/* fill tokens common for eCeMenuMainIT, eCeMenuMainST, eLeMenuMainIT, eLeMenuMainST */
+/*-----------------------------------------------------------------------------------*/
+#define DEF_TOK_CONT_MM(token_st) \
+ { \
+ tokenContainer->DefineStringToken("{label}", (int)token_st::label); \
+ tokenContainer->DefineStringToken("{number}", (int)token_st::number); \
+ tokenContainer->DefineStringToken("{icon}", (int)token_st::icon); \
+}
+
+/*-------------------------------------------------------------*/
+/* Add token for cCeMenuMain::Parse() and cLeMenuMain::Parse() */
+/*-------------------------------------------------------------*/
+#define ADD_TOKEN_MM(token_st) \
+ { \
+ tokenContainer->AddStringToken((int)token_st::number, number); \
+ tokenContainer->AddStringToken((int)token_st::label, label); \
+ tokenContainer->AddStringToken((int)token_st::icon, imgCache->GetIconName(label).c_str()); \
+ }
+
+/*-------------------------------------------------------------------------------------------------------*/
+
+// eCeMenuSchedulesIT, eCeMenuSchedulesST
+#define TOKEN_CMS_IT eCeMenuSchedulesIT
+#define TOKEN_CMS_ST eCeMenuSchedulesST
+
+#define ADD_TOKEN_CMS_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_CMS_IT::entry, value)
+#define ADD_TOKEN_CMS_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_CMS_ST::entry, value)
+
+// eLeMenuSchedulesIT, eLeMenuSchedulesST
+#define TOKEN_LMS_IT eLeMenuSchedulesIT
+#define TOKEN_LMS_ST eLeMenuSchedulesST
+
+#define ADD_TOKEN_LMS_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LMS_IT::entry, value)
+#define ADD_TOKEN_LMS_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LMS_ST::entry, value)
+
+/*-------------------------------------------------------------------------------------------------------*/
+/* fill tokens common for eCeMenuSchedulesIT, eCeMenuSchedulesST, eLeMenuSchedulesIT, eLeMenuSchedulesST */
+/*-------------------------------------------------------------------------------------------------------*/
+#define DEF_TOK_CONT_MS(token_it, token_st) \
+ { \
+ tokenContainer->DefineStringToken("{title}", (int)token_st::title); \
+ tokenContainer->DefineStringToken("{shorttext}", (int)token_st::shorttext); \
+ tokenContainer->DefineStringToken("{start}", (int)token_st::start); \
+ tokenContainer->DefineStringToken("{stop}", (int)token_st::stop); \
+ tokenContainer->DefineStringToken("{day}", (int)token_st::day); \
+ tokenContainer->DefineStringToken("{date}", (int)token_st::date); \
+ tokenContainer->DefineIntToken("{month}", (int)token_it::month); \
+ tokenContainer->DefineIntToken("{year}", (int)token_it::year); \
+ tokenContainer->DefineIntToken("{running}", (int)token_it::running); \
+ tokenContainer->DefineIntToken("{elapsed}", (int)token_it::elapsed); \
+ tokenContainer->DefineIntToken("{duration}", (int)token_it::duration); \
+ tokenContainer->DefineStringToken("{channelname}", (int)token_st::channelname); \
+ tokenContainer->DefineStringToken("{channelid}", (int)token_st::channelid); \
+ tokenContainer->DefineStringToken("{timertype}", (int)token_st::timertype); \
+ tokenContainer->DefineIntToken("{whatson}", (int)token_it::whatson); \
+ tokenContainer->DefineIntToken("{whatsonnow}", (int)token_it::whatsonnow); \
+ tokenContainer->DefineIntToken("{whatsonnext}", (int)token_it::whatsonnext); \
+ tokenContainer->DefineIntToken("{whatsonfavorites}", (int)token_it::whatsonfavorites); \
+ tokenContainer->DefineIntToken("{timerpartitial}", (int)token_it::timerpartitial); \
+ tokenContainer->DefineIntToken("{timerfull}", (int)token_it::timerfull); \
+ tokenContainer->DefineIntToken("{isremotetimer}", (int)token_it::isremotetimer); \
+ tokenContainer->DefineIntToken("{daynumeric}", (int)token_it::daynumeric); \
+ tokenContainer->DefineIntToken("{durationhours}", (int)token_it::durationhours); \
+ tokenContainer->DefineIntToken("{channelnumber}", (int)token_it::channelnumber); \
+ tokenContainer->DefineIntToken("{channellogoexists}", (int)token_it::channellogoexists); \
+}
+
+/*-------------------------------------------------------------------------------------------------------*/
+
+// eLeMenuChannelsIT, eLeMenuChannelsST
+#define TOKEN_LMC_IT eLeMenuChannelsIT
+#define TOKEN_LMC_ST eLeMenuChannelsST
+
+#define ADD_TOKEN_LMC_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_LMC_IT::entry, value)
+#define ADD_TOKEN_LMC_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_LMC_ST::entry, value)
+
+// eCeMenuChannelsIT, eCeMenuChannelsST
+#define TOKEN_CMC_IT eCeMenuChannelsIT
+#define TOKEN_CMC_ST eCeMenuChannelsST
+
+#define ADD_TOKEN_CMC_IT(entry, value) tokenContainer->AddIntToken((int)TOKEN_CMC_IT::entry, value)
+#define ADD_TOKEN_CMC_ST(entry, value) tokenContainer->AddStringToken((int)TOKEN_CMC_ST::entry, value)
+
+/*---------------------------------------------------------------------------------------------------*/
+/* fill tokens common for eCeMenuChannelsIT, eCeMenuChannelsST, eLeMenuChannelsIT, eLeMenuChannelsST */
+/*---------------------------------------------------------------------------------------------------*/
+#define DEF_TOK_CONT_MC(token_it, token_st) \
+ { \
+ tokenContainer->DefineStringToken("{name}", (int)token_st::name); \
+ tokenContainer->DefineStringToken("{channelid}", (int)token_st::channelid); \
+ tokenContainer->DefineStringToken("{source}", (int)token_st::source); \
+ tokenContainer->DefineStringToken("{sourcedescription}", (int)token_st::sourcedescription); \
+ tokenContainer->DefineStringToken("{position}", (int)token_st::position); \
+ tokenContainer->DefineStringToken("{presenteventtitle}", (int)token_st::presenteventtitle); \
+ tokenContainer->DefineStringToken("{presenteventstart}", (int)token_st::presenteventstart); \
+ tokenContainer->DefineStringToken("{presenteventstop}", (int)token_st::presenteventstop); \
+ tokenContainer->DefineIntToken("{number}", (int)token_it::number); \
+ tokenContainer->DefineIntToken("{transponder}", (int)token_it::transponder); \
+ tokenContainer->DefineIntToken("{frequency}", (int)token_it::frequency); \
+ tokenContainer->DefineIntToken("{channellogoexists}", (int)token_it::channellogoexists); \
+ tokenContainer->DefineIntToken("{isAtsc}", (int)token_it::isAtsc); \
+ tokenContainer->DefineIntToken("{isCable}", (int)token_it::isCable); \
+ tokenContainer->DefineIntToken("{isSat}", (int)token_it::isSat); \
+ tokenContainer->DefineIntToken("{isTerr}", (int)token_it::isTerr); \
+ tokenContainer->DefineIntToken("{isEncrypted}", (int)token_it::isEncrypted); \
+ tokenContainer->DefineIntToken("{isRadio}", (int)token_it::isRadio); \
+ tokenContainer->DefineIntToken("{isHD}", (int)token_it::isHD); \
+ tokenContainer->DefineIntToken("{isUHD}", (int)token_it::isUHD); \
+ }
+
+/*---------------------------------------------------------------------*/
+/* Add token for cCeMenuChannels::Parse() and cLeMenuChannels::Parse() */
+/*---------------------------------------------------------------------*/
+#define ADD_TOKEN_MC(token_it, token_st) \
+ { \
+ tokenContainer->AddIntToken((int)token_it::number, channel->Number()); \
+ tokenContainer->AddIntToken((int)token_it::transponder, channel->Transponder()); \
+ tokenContainer->AddIntToken((int)token_it::frequency, channel->Frequency()); \
+ tokenContainer->AddIntToken((int)token_it::isEncrypted, channel->Ca()); \
+ tokenContainer->AddIntToken((int)token_it::isRadio, isRadio); \
+ tokenContainer->AddIntToken((int)token_it::isHD, isHD); \
+ tokenContainer->AddIntToken((int)token_it::isUHD, isUHD); \
+ \
+ tokenContainer->AddStringToken((int)token_st::name, channel->Name()); \
+ cString channelID = channel->GetChannelID().ToString(); \
+ tokenContainer->AddStringToken((int)token_st::channelid, *channelID); \
+ tokenContainer->AddIntToken((int)token_it::channellogoexists, imgCache->LogoExists(*channelID)); \
+ \
+ /* Channel Source Information */ \
+ const cSource *source = Sources.Get(channel->Source()); \
+ if (source) { \
+ tokenContainer->AddStringToken((int)token_st::source, *cSource::ToString(source->Code())); \
+ tokenContainer->AddStringToken((int)token_st::sourcedescription, source->Description()); \
+ tokenContainer->AddIntToken((int)token_it::isAtsc, source->IsAtsc(source->Code())); \
+ tokenContainer->AddIntToken((int)token_it::isCable, source->IsCable(source->Code())); \
+ tokenContainer->AddIntToken((int)token_it::isSat, source->IsSat(source->Code())); \
+ tokenContainer->AddIntToken((int)token_it::isTerr, source->IsTerr(source->Code())); \
+ } \
+ }
+
+/*-------------------------------------------------------------------------------------------------------*/
+
/******************************************************************
* cListElement
******************************************************************/
@@ -242,69 +609,71 @@ cLeMenuDefault::~cLeMenuDefault(void) {
void cLeMenuDefault::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{column1}", (int)eLeMenuDefaultST::column1);
- tokenContainer->DefineStringToken("{column2}", (int)eLeMenuDefaultST::column2);
- tokenContainer->DefineStringToken("{column3}", (int)eLeMenuDefaultST::column3);
- tokenContainer->DefineStringToken("{column4}", (int)eLeMenuDefaultST::column4);
- tokenContainer->DefineStringToken("{column5}", (int)eLeMenuDefaultST::column5);
- tokenContainer->DefineStringToken("{column6}", (int)eLeMenuDefaultST::column6);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeMenuDefaultIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeMenuDefaultIT::current);
- tokenContainer->DefineIntToken("{separator}", (int)eLeMenuDefaultIT::separator);
- tokenContainer->DefineIntToken("{column2set}", (int)eLeMenuDefaultIT::column2set);
- tokenContainer->DefineIntToken("{column3set}", (int)eLeMenuDefaultIT::column3set);
- tokenContainer->DefineIntToken("{column4set}", (int)eLeMenuDefaultIT::column4set);
- tokenContainer->DefineIntToken("{column5set}", (int)eLeMenuDefaultIT::column5set);
- tokenContainer->DefineIntToken("{column6set}", (int)eLeMenuDefaultIT::column6set);
- tokenContainer->DefineIntToken("{column1x}", (int)eLeMenuDefaultIT::column1x);
- tokenContainer->DefineIntToken("{column2x}", (int)eLeMenuDefaultIT::column2x);
- tokenContainer->DefineIntToken("{column3x}", (int)eLeMenuDefaultIT::column3x);
- tokenContainer->DefineIntToken("{column4x}", (int)eLeMenuDefaultIT::column4x);
- tokenContainer->DefineIntToken("{column5x}", (int)eLeMenuDefaultIT::column5x);
- tokenContainer->DefineIntToken("{column6x}", (int)eLeMenuDefaultIT::column6x);
- tokenContainer->DefineIntToken("{column1width}", (int)eLeMenuDefaultIT::column1width);
- tokenContainer->DefineIntToken("{column2width}", (int)eLeMenuDefaultIT::column2width);
- tokenContainer->DefineIntToken("{column3width}", (int)eLeMenuDefaultIT::column3width);
- tokenContainer->DefineIntToken("{column4width}", (int)eLeMenuDefaultIT::column4width);
- tokenContainer->DefineIntToken("{column5width}", (int)eLeMenuDefaultIT::column5width);
- tokenContainer->DefineIntToken("{column6width}", (int)eLeMenuDefaultIT::column6width);
- tokenContainer->DefineIntToken("{column1pb}", (int)eLeMenuDefaultIT::column1pb);
- tokenContainer->DefineIntToken("{column2pb}", (int)eLeMenuDefaultIT::column2pb);
- tokenContainer->DefineIntToken("{column3pb}", (int)eLeMenuDefaultIT::column3pb);
- tokenContainer->DefineIntToken("{column4pb}", (int)eLeMenuDefaultIT::column4pb);
- tokenContainer->DefineIntToken("{column5pb}", (int)eLeMenuDefaultIT::column5pb);
- tokenContainer->DefineIntToken("{column6pb}", (int)eLeMenuDefaultIT::column6pb);
- tokenContainer->DefineIntToken("{column1pbtotalsize}", (int)eLeMenuDefaultIT::column1pbtotalsize);
- tokenContainer->DefineIntToken("{column2pbtotalsize}", (int)eLeMenuDefaultIT::column2pbtotalsize);
- tokenContainer->DefineIntToken("{column3pbtotalsize}", (int)eLeMenuDefaultIT::column3pbtotalsize);
- tokenContainer->DefineIntToken("{column4pbtotalsize}", (int)eLeMenuDefaultIT::column4pbtotalsize);
- tokenContainer->DefineIntToken("{column5pbtotalsize}", (int)eLeMenuDefaultIT::column5pbtotalsize);
- tokenContainer->DefineIntToken("{column6pbtotalsize}", (int)eLeMenuDefaultIT::column6pbtotalsize);
- tokenContainer->DefineIntToken("{column1pbsize}", (int)eLeMenuDefaultIT::column1pbsize);
- tokenContainer->DefineIntToken("{column2pbsize}", (int)eLeMenuDefaultIT::column2pbsize);
- tokenContainer->DefineIntToken("{column3pbsize}", (int)eLeMenuDefaultIT::column3pbsize);
- tokenContainer->DefineIntToken("{column4pbsize}", (int)eLeMenuDefaultIT::column4pbsize);
- tokenContainer->DefineIntToken("{column5pbsize}", (int)eLeMenuDefaultIT::column5pbsize);
- tokenContainer->DefineIntToken("{column6pbsize}", (int)eLeMenuDefaultIT::column6pbsize);
- tokenContainer->DefineIntToken("{unknown}", (int)eLeMenuDefaultIT::unknown);
- tokenContainer->DefineIntToken("{channeledit}", (int)eLeMenuDefaultIT::channeledit);
- tokenContainer->DefineIntToken("{timeredit}", (int)eLeMenuDefaultIT::timeredit);
- tokenContainer->DefineIntToken("{recordinginfo}", (int)eLeMenuDefaultIT::recordinginfo);
- tokenContainer->DefineIntToken("{recordingedit}", (int)eLeMenuDefaultIT::recordingedit);
- tokenContainer->DefineIntToken("{setup}", (int)eLeMenuDefaultIT::setup);
- tokenContainer->DefineIntToken("{commands}", (int)eLeMenuDefaultIT::commands);
- tokenContainer->DefineIntToken("{folder}", (int)eLeMenuDefaultIT::folder);
- tokenContainer->DefineIntToken("{cam}", (int)eLeMenuDefaultIT::cam);
- tokenContainer->DefineIntToken("{fritzbox}", (int)eLeMenuDefaultIT::fritzbox);
- tokenContainer->DefineIntToken("{systeminfo}", (int)eLeMenuDefaultIT::systeminfo);
- tokenContainer->DefineIntToken("{mailbox}", (int)eLeMenuDefaultIT::mailbox);
- tokenContainer->DefineIntToken("{neutrinoepg}", (int)eLeMenuDefaultIT::neutrinoepg);
- tokenContainer->DefineIntToken("{remotetimers}", (int)eLeMenuDefaultIT::remotetimers);
- tokenContainer->DefineIntToken("{zaphistory}", (int)eLeMenuDefaultIT::zaphistory);
- tokenContainer->DefineIntToken("{remoteosd}", (int)eLeMenuDefaultIT::remoteosd);
- tokenContainer->DefineIntToken("{filebrowser}", (int)eLeMenuDefaultIT::filebrowser);
- tokenContainer->DefineIntToken("{epgsearch}", (int)eLeMenuDefaultIT::epgsearch);
- tokenContainer->DefineIntToken("{devstatus}", (int)eLeMenuDefaultIT::devstatus);
+
+ tokenContainer->DefineStringToken("{column1}", (int)TOKEN_LMD_ST::column1);
+ tokenContainer->DefineStringToken("{column2}", (int)TOKEN_LMD_ST::column2);
+ tokenContainer->DefineStringToken("{column3}", (int)TOKEN_LMD_ST::column3);
+ tokenContainer->DefineStringToken("{column4}", (int)TOKEN_LMD_ST::column4);
+ tokenContainer->DefineStringToken("{column5}", (int)TOKEN_LMD_ST::column5);
+ tokenContainer->DefineStringToken("{column6}", (int)TOKEN_LMD_ST::column6);
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LMD_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LMD_IT::current);
+ tokenContainer->DefineIntToken("{separator}", (int)TOKEN_LMD_IT::separator);
+ tokenContainer->DefineIntToken("{column2set}", (int)TOKEN_LMD_IT::column2set);
+ tokenContainer->DefineIntToken("{column3set}", (int)TOKEN_LMD_IT::column3set);
+ tokenContainer->DefineIntToken("{column4set}", (int)TOKEN_LMD_IT::column4set);
+ tokenContainer->DefineIntToken("{column5set}", (int)TOKEN_LMD_IT::column5set);
+ tokenContainer->DefineIntToken("{column6set}", (int)TOKEN_LMD_IT::column6set);
+ tokenContainer->DefineIntToken("{column1x}", (int)TOKEN_LMD_IT::column1x);
+ tokenContainer->DefineIntToken("{column2x}", (int)TOKEN_LMD_IT::column2x);
+ tokenContainer->DefineIntToken("{column3x}", (int)TOKEN_LMD_IT::column3x);
+ tokenContainer->DefineIntToken("{column4x}", (int)TOKEN_LMD_IT::column4x);
+ tokenContainer->DefineIntToken("{column5x}", (int)TOKEN_LMD_IT::column5x);
+ tokenContainer->DefineIntToken("{column6x}", (int)TOKEN_LMD_IT::column6x);
+ tokenContainer->DefineIntToken("{column1width}", (int)TOKEN_LMD_IT::column1width);
+ tokenContainer->DefineIntToken("{column2width}", (int)TOKEN_LMD_IT::column2width);
+ tokenContainer->DefineIntToken("{column3width}", (int)TOKEN_LMD_IT::column3width);
+ tokenContainer->DefineIntToken("{column4width}", (int)TOKEN_LMD_IT::column4width);
+ tokenContainer->DefineIntToken("{column5width}", (int)TOKEN_LMD_IT::column5width);
+ tokenContainer->DefineIntToken("{column6width}", (int)TOKEN_LMD_IT::column6width);
+ tokenContainer->DefineIntToken("{column1pb}", (int)TOKEN_LMD_IT::column1pb);
+ tokenContainer->DefineIntToken("{column2pb}", (int)TOKEN_LMD_IT::column2pb);
+ tokenContainer->DefineIntToken("{column3pb}", (int)TOKEN_LMD_IT::column3pb);
+ tokenContainer->DefineIntToken("{column4pb}", (int)TOKEN_LMD_IT::column4pb);
+ tokenContainer->DefineIntToken("{column5pb}", (int)TOKEN_LMD_IT::column5pb);
+ tokenContainer->DefineIntToken("{column6pb}", (int)TOKEN_LMD_IT::column6pb);
+ tokenContainer->DefineIntToken("{column1pbtotalsize}", (int)TOKEN_LMD_IT::column1pbtotalsize);
+ tokenContainer->DefineIntToken("{column2pbtotalsize}", (int)TOKEN_LMD_IT::column2pbtotalsize);
+ tokenContainer->DefineIntToken("{column3pbtotalsize}", (int)TOKEN_LMD_IT::column3pbtotalsize);
+ tokenContainer->DefineIntToken("{column4pbtotalsize}", (int)TOKEN_LMD_IT::column4pbtotalsize);
+ tokenContainer->DefineIntToken("{column5pbtotalsize}", (int)TOKEN_LMD_IT::column5pbtotalsize);
+ tokenContainer->DefineIntToken("{column6pbtotalsize}", (int)TOKEN_LMD_IT::column6pbtotalsize);
+ tokenContainer->DefineIntToken("{column1pbsize}", (int)TOKEN_LMD_IT::column1pbsize);
+ tokenContainer->DefineIntToken("{column2pbsize}", (int)TOKEN_LMD_IT::column2pbsize);
+ tokenContainer->DefineIntToken("{column3pbsize}", (int)TOKEN_LMD_IT::column3pbsize);
+ tokenContainer->DefineIntToken("{column4pbsize}", (int)TOKEN_LMD_IT::column4pbsize);
+ tokenContainer->DefineIntToken("{column5pbsize}", (int)TOKEN_LMD_IT::column5pbsize);
+ tokenContainer->DefineIntToken("{column6pbsize}", (int)TOKEN_LMD_IT::column6pbsize);
+ tokenContainer->DefineIntToken("{unknown}", (int)TOKEN_LMD_IT::unknown);
+ tokenContainer->DefineIntToken("{channeledit}", (int)TOKEN_LMD_IT::channeledit);
+ tokenContainer->DefineIntToken("{timeredit}", (int)TOKEN_LMD_IT::timeredit);
+ tokenContainer->DefineIntToken("{recordinginfo}", (int)TOKEN_LMD_IT::recordinginfo);
+ tokenContainer->DefineIntToken("{recordingedit}", (int)TOKEN_LMD_IT::recordingedit);
+ tokenContainer->DefineIntToken("{setup}", (int)TOKEN_LMD_IT::setup);
+ tokenContainer->DefineIntToken("{commands}", (int)TOKEN_LMD_IT::commands);
+ tokenContainer->DefineIntToken("{folder}", (int)TOKEN_LMD_IT::folder);
+ tokenContainer->DefineIntToken("{cam}", (int)TOKEN_LMD_IT::cam);
+ tokenContainer->DefineIntToken("{fritzbox}", (int)TOKEN_LMD_IT::fritzbox);
+ tokenContainer->DefineIntToken("{systeminfo}", (int)TOKEN_LMD_IT::systeminfo);
+ tokenContainer->DefineIntToken("{mailbox}", (int)TOKEN_LMD_IT::mailbox);
+ tokenContainer->DefineIntToken("{neutrinoepg}", (int)TOKEN_LMD_IT::neutrinoepg);
+ tokenContainer->DefineIntToken("{remotetimers}", (int)TOKEN_LMD_IT::remotetimers);
+ tokenContainer->DefineIntToken("{zaphistory}", (int)TOKEN_LMD_IT::zaphistory);
+ tokenContainer->DefineIntToken("{remoteosd}", (int)TOKEN_LMD_IT::remoteosd);
+ tokenContainer->DefineIntToken("{filebrowser}", (int)TOKEN_LMD_IT::filebrowser);
+ tokenContainer->DefineIntToken("{epgsearch}", (int)TOKEN_LMD_IT::epgsearch);
+ tokenContainer->DefineIntToken("{devstatus}", (int)TOKEN_LMD_IT::devstatus);
+
InheritTokenContainer();
}
@@ -324,9 +693,9 @@ bool cLeMenuDefault::Parse(bool forced) {
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::current, current);
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::separator, !selectable);
+ ADD_TOKEN_LMD_IT(nummenuitem, num);
+ ADD_TOKEN_LMD_IT(current, current);
+ ADD_TOKEN_LMD_IT(separator, !selectable);
for (int i = 0; i < MAX_TABS; i++) {
bool colUsed = false;
const char *s = GetTabbedText(text, i);
@@ -370,19 +739,19 @@ void cLeMenuDefault::SetMenuCategory(void) {
switch (menuCat) {
case mcUnknown:
case mcUndefined:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::unknown, 1);
+ ADD_TOKEN_LMD_IT(unknown, 1);
break;
case mcChannelEdit:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::channeledit, 1);
+ ADD_TOKEN_LMD_IT(channeledit, 1);
break;
case mcTimerEdit:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::timeredit, 1);
+ ADD_TOKEN_LMD_IT(timeredit, 1);
break;
case mcRecordingInfo:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::recordinginfo, 1);
+ ADD_TOKEN_LMD_IT(recordinginfo, 1);
break;
case mcRecordingEdit:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::recordingedit, 1);
+ ADD_TOKEN_LMD_IT(recordingedit, 1);
break;
case mcPluginSetup:
case mcSetup:
@@ -395,16 +764,16 @@ void cLeMenuDefault::SetMenuCategory(void) {
case mcSetupReplay:
case mcSetupMisc:
case mcSetupPlugins:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::setup, 1);
+ ADD_TOKEN_LMD_IT(setup, 1);
return;
case mcCommand:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::commands, 1);
+ ADD_TOKEN_LMD_IT(commands, 1);
return;
case mcFolder:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::folder, 1);
+ ADD_TOKEN_LMD_IT(folder, 1);
break;
case mcCam:
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::cam, 1);
+ ADD_TOKEN_LMD_IT(cam, 1);
break;
default:
break;
@@ -414,25 +783,25 @@ void cLeMenuDefault::SetMenuCategory(void) {
return;
}
if (!strcmp(plugName, "fritzbox")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::fritzbox, 1);
+ ADD_TOKEN_LMD_IT(fritzbox, 1);
} else if (!strcmp(plugName, "systeminfo")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::systeminfo, 1);
+ ADD_TOKEN_LMD_IT(systeminfo, 1);
} else if (!strcmp(plugName, "mailbox")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::mailbox, 1);
+ ADD_TOKEN_LMD_IT(mailbox, 1);
} else if (!strcmp(plugName, "neutrinoepg")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::neutrinoepg, 1);
+ ADD_TOKEN_LMD_IT(neutrinoepg, 1);
} else if (!strcmp(plugName, "remotetimers")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::remotetimers, 1);
+ ADD_TOKEN_LMD_IT(remotetimers, 1);
} else if (!strcmp(plugName, "zaphistory")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::zaphistory, 1);
+ ADD_TOKEN_LMD_IT(zaphistory, 1);
} else if (!strcmp(plugName, "remoteosd")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::remoteosd, 1);
+ ADD_TOKEN_LMD_IT(remoteosd, 1);
} else if (!strcmp(plugName, "filebrowser")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::filebrowser, 1);
+ ADD_TOKEN_LMD_IT(filebrowser, 1);
} else if (!strcmp(plugName, "epgsearch")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::epgsearch, 1);
+ ADD_TOKEN_LMD_IT(epgsearch, 1);
} else if (!strcmp(plugName, "devstatus")) {
- tokenContainer->AddIntToken((int)eLeMenuDefaultIT::devstatus, 1);
+ ADD_TOKEN_LMD_IT(devstatus, 1);
}
}
@@ -570,12 +939,14 @@ cLeMenuMain::~cLeMenuMain(void) {
void cLeMenuMain::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{label}", (int)eLeMenuMainST::label);
- tokenContainer->DefineStringToken("{number}", (int)eLeMenuMainST::number);
- tokenContainer->DefineStringToken("{icon}", (int)eLeMenuMainST::icon);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeMenuMainIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeMenuMainIT::current);
- tokenContainer->DefineIntToken("{separator}", (int)eLeMenuMainIT::separator);
+
+ // fill tokens common for eCeMenuMainIT, eCeMenuMainST, eLeMenuMainIT, eLeMenuMainST
+ DEF_TOK_CONT_MM(TOKEN_LMM_ST);
+
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LMM_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LMM_IT::current);
+ tokenContainer->DefineIntToken("{separator}", (int)TOKEN_LMM_IT::separator);
+
InheritTokenContainer();
}
@@ -595,13 +966,14 @@ bool cLeMenuMain::Parse(bool forced) {
if (!dirty)
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeMenuMainIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeMenuMainIT::current, current);
- tokenContainer->AddIntToken((int)eLeMenuMainIT::separator, !selectable);
+ ADD_TOKEN_LMM_IT(nummenuitem, num);
+ ADD_TOKEN_LMM_IT(current, current);
+ ADD_TOKEN_LMM_IT(separator, !selectable);
SplitText();
- tokenContainer->AddStringToken((int)eLeMenuMainST::number, number);
- tokenContainer->AddStringToken((int)eLeMenuMainST::label, label);
- tokenContainer->AddStringToken((int)eLeMenuMainST::icon, imgCache->GetIconName(label).c_str());
+
+ // do the same stuff as in cCeMenuMain::Parse()
+ ADD_TOKEN_MM(TOKEN_LMM_ST);
+
return true;
}
@@ -650,14 +1022,15 @@ void cCeMenuMain::SetText(const char *text) {
void cCeMenuMain::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineIntToken("{menuitemx}", (int)eCeMenuMainIT::menuitemx);
- tokenContainer->DefineIntToken("{menuitemy}", (int)eCeMenuMainIT::menuitemy);
- tokenContainer->DefineIntToken("{menuitemwidth}", (int)eCeMenuMainIT::menuitemwidth);
- tokenContainer->DefineIntToken("{menuitemheight}", (int)eCeMenuMainIT::menuitemheight);
- tokenContainer->DefineIntToken("{numitem}", (int)eCeMenuMainIT::numitem);
- tokenContainer->DefineStringToken("{label}", (int)eCeMenuMainST::label);
- tokenContainer->DefineStringToken("{number}", (int)eCeMenuMainST::number);
- tokenContainer->DefineStringToken("{icon}", (int)eCeMenuMainST::icon);
+
+ tokenContainer->DefineIntToken("{menuitemx}", (int)TOKEN_CMM_IT::menuitemx);
+ tokenContainer->DefineIntToken("{menuitemy}", (int)TOKEN_CMM_IT::menuitemy);
+ tokenContainer->DefineIntToken("{menuitemwidth}", (int)TOKEN_CMM_IT::menuitemwidth);
+ tokenContainer->DefineIntToken("{menuitemheight}", (int)TOKEN_CMM_IT::menuitemheight);
+ tokenContainer->DefineIntToken("{numitem}", (int)TOKEN_CMM_IT::numitem);
+
+ // fill tokens common for eCeMenuMainIT, eCeMenuMainST, eLeMenuMainIT, eLeMenuMainST
+ DEF_TOK_CONT_MM(TOKEN_CMM_ST);
InheritTokenContainer();
}
@@ -669,9 +1042,9 @@ bool cCeMenuMain::Parse(bool forced) {
tokenContainer->Clear();
SplitText();
SetListTokens(tokenContainer);
- tokenContainer->AddStringToken((int)eLeMenuMainST::number, number);
- tokenContainer->AddStringToken((int)eLeMenuMainST::label, label);
- tokenContainer->AddStringToken((int)eLeMenuMainST::icon, imgCache->GetIconName(label).c_str());
+
+ // do the same stuff as in cLeMenuMain::Parse()
+ ADD_TOKEN_MM(TOKEN_CMM_ST);
return true;
}
@@ -703,38 +1076,18 @@ cLeMenuSchedules::~cLeMenuSchedules(void) {
void cLeMenuSchedules::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{title}", (int)eLeMenuSchedulesST::title);
- tokenContainer->DefineStringToken("{shorttext}", (int)eLeMenuSchedulesST::shorttext);
- tokenContainer->DefineStringToken("{start}", (int)eLeMenuSchedulesST::start);
- tokenContainer->DefineStringToken("{stop}", (int)eLeMenuSchedulesST::stop);
- tokenContainer->DefineStringToken("{day}", (int)eLeMenuSchedulesST::day);
- tokenContainer->DefineStringToken("{date}", (int)eLeMenuSchedulesST::date);
- tokenContainer->DefineStringToken("{durationminutes}", (int)eLeMenuSchedulesST::durationminutes);
- tokenContainer->DefineStringToken("{channelname}", (int)eLeMenuSchedulesST::channelname);
- tokenContainer->DefineStringToken("{channelid}", (int)eLeMenuSchedulesST::channelid);
- tokenContainer->DefineStringToken("{timertype}", (int)eLeMenuSchedulesST::timertype);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeMenuSchedulesIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeMenuSchedulesIT::current);
- tokenContainer->DefineIntToken("{separator}", (int)eLeMenuSchedulesIT::separator);
- tokenContainer->DefineIntToken("{daynumeric}", (int)eLeMenuSchedulesIT::daynumeric);
- tokenContainer->DefineIntToken("{month}", (int)eLeMenuSchedulesIT::month);
- tokenContainer->DefineIntToken("{year}", (int)eLeMenuSchedulesIT::year);
- tokenContainer->DefineIntToken("{istoday}", (int)eLeMenuSchedulesIT::istoday);
- tokenContainer->DefineIntToken("{running}", (int)eLeMenuSchedulesIT::running);
- tokenContainer->DefineIntToken("{elapsed}", (int)eLeMenuSchedulesIT::elapsed);
- tokenContainer->DefineIntToken("{startsin}", (int)eLeMenuSchedulesIT::startsin);
- tokenContainer->DefineIntToken("{duration}", (int)eLeMenuSchedulesIT::duration);
- tokenContainer->DefineIntToken("{durationhours}", (int)eLeMenuSchedulesIT::durationhours);
- tokenContainer->DefineIntToken("{channelnumber}", (int)eLeMenuSchedulesIT::channelnumber);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eLeMenuSchedulesIT::channellogoexists);
- tokenContainer->DefineIntToken("{whatson}", (int)eLeMenuSchedulesIT::whatson);
- tokenContainer->DefineIntToken("{whatsonnow}", (int)eLeMenuSchedulesIT::whatsonnow);
- tokenContainer->DefineIntToken("{whatsonnext}", (int)eLeMenuSchedulesIT::whatsonnext);
- tokenContainer->DefineIntToken("{whatsonfavorites}", (int)eLeMenuSchedulesIT::whatsonfavorites);
- tokenContainer->DefineIntToken("{timerpartitial}", (int)eLeMenuSchedulesIT::timerpartitial);
- tokenContainer->DefineIntToken("{timerfull}", (int)eLeMenuSchedulesIT::timerfull);
- tokenContainer->DefineIntToken("{isremotetimer}", (int)eLeMenuSchedulesIT::isremotetimer);
- tokenContainer->DefineIntToken("{hasVPS}", (int)eLeMenuSchedulesIT::hasVPS);
+
+ // fill tokens common for eCeMenuSchedulesIT, eCeMenuSchedulesST, eLeMenuSchedulesIT, eLeMenuSchedulesST
+ DEF_TOK_CONT_MS(TOKEN_LMS_IT, TOKEN_LMS_ST);
+
+ tokenContainer->DefineStringToken("{durationminutes}", (int)TOKEN_LMS_ST::durationminutes); \
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LMS_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LMS_IT::current);
+ tokenContainer->DefineIntToken("{separator}", (int)TOKEN_LMS_IT::separator);
+ tokenContainer->DefineIntToken("{istoday}", (int)TOKEN_LMS_IT::istoday);
+ tokenContainer->DefineIntToken("{startsin}", (int)TOKEN_LMS_IT::startsin);
+ tokenContainer->DefineIntToken("{hasVPS}", (int)TOKEN_LMS_IT::hasVPS);
+
InheritTokenContainer();
}
@@ -757,60 +1110,60 @@ bool cLeMenuSchedules::Parse(bool forced) {
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::current, current);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::separator, !selectable);
+ ADD_TOKEN_LMS_IT(nummenuitem, num);
+ ADD_TOKEN_LMS_IT(current, current);
+ ADD_TOKEN_LMS_IT(separator, !selectable);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::whatson, (menuCat == mcSchedule && !epgSearchFav) ? true : false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::whatsonnow, menuCat == mcScheduleNow ? true : false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::whatsonnext, menuCat == mcScheduleNext ? true : false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::whatsonfavorites, epgSearchFav);
+ ADD_TOKEN_LMS_IT(whatson, (menuCat == mcSchedule && !epgSearchFav) ? true : false);
+ ADD_TOKEN_LMS_IT(whatsonnow, menuCat == mcScheduleNow ? true : false);
+ ADD_TOKEN_LMS_IT(whatsonnext, menuCat == mcScheduleNext ? true : false);
+ ADD_TOKEN_LMS_IT(whatsonfavorites, epgSearchFav);
if (timerMatch == tmFull) {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerpartitial, false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerfull, true);
+ ADD_TOKEN_LMS_IT(timerpartitial, false);
+ ADD_TOKEN_LMS_IT(timerfull, true);
} else if (timerMatch == tmPartial) {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerpartitial, true);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerfull, false);
+ ADD_TOKEN_LMS_IT(timerpartitial, true);
+ ADD_TOKEN_LMS_IT(timerfull, false);
} else {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerpartitial, false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerfull, false);
+ ADD_TOKEN_LMS_IT(timerpartitial, false);
+ ADD_TOKEN_LMS_IT(timerfull, false);
}
if (event) {
if (selectable) {
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::title, event->Title());
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::shorttext, event->ShortText());
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::start, *(event->GetTimeString()));
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::stop, *(event->GetEndTimeString()));
+ ADD_TOKEN_LMS_ST(title, event->Title());
+ ADD_TOKEN_LMS_ST(shorttext, event->ShortText());
+ ADD_TOKEN_LMS_ST(start, *(event->GetTimeString()));
+ ADD_TOKEN_LMS_ST(stop, *(event->GetEndTimeString()));
time_t startTime = event->StartTime();
struct tm *sStartTime = localtime(&startTime);
int day = sStartTime->tm_mday;
int month = sStartTime->tm_mon;
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::day, *WeekDayName(startTime));
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::date, *ShortDateString(startTime));
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::year, sStartTime->tm_year + 1900);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::daynumeric, day);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::month, month + 1);
+ ADD_TOKEN_LMS_ST(day, *WeekDayName(startTime));
+ ADD_TOKEN_LMS_ST(date, *ShortDateString(startTime));
+ ADD_TOKEN_LMS_IT(year, sStartTime->tm_year + 1900);
+ ADD_TOKEN_LMS_IT(daynumeric, day);
+ ADD_TOKEN_LMS_IT(month, month + 1);
bool isRunning = false;
time_t now = time(NULL);
if ((now >= event->StartTime()) && (now <= event->EndTime()))
isRunning = true;
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::running, isRunning);
+ ADD_TOKEN_LMS_IT(running, isRunning);
if (isRunning) {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::elapsed, (now - event->StartTime())/60);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::startsin, 0);
+ ADD_TOKEN_LMS_IT(elapsed, (now - event->StartTime())/60);
+ ADD_TOKEN_LMS_IT(startsin, 0);
} else {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::elapsed, 0);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::startsin, (event->StartTime() - now)/60);
+ ADD_TOKEN_LMS_IT(elapsed, 0);
+ ADD_TOKEN_LMS_IT(startsin, (event->StartTime() - now)/60);
}
struct tm *sNow = localtime(&now);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::istoday, (day == sNow->tm_mday && month == sNow->tm_mon) ? true : false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::duration, event->Duration() / 60);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::durationhours, event->Duration() / 3600);
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::durationminutes, *cString::sprintf("%.2d", (event->Duration() / 60)%60));
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::hasVPS, (bool)event->Vps());
+ ADD_TOKEN_LMS_IT(istoday, (day == sNow->tm_mday && month == sNow->tm_mon) ? true : false);
+ ADD_TOKEN_LMS_IT(duration, event->Duration() / 60);
+ ADD_TOKEN_LMS_IT(durationhours, event->Duration() / 3600);
+ ADD_TOKEN_LMS_ST(durationminutes, *cString::sprintf("%.2d", (event->Duration() / 60)%60));
+ ADD_TOKEN_LMS_IT(hasVPS, (bool)event->Vps());
if (timerMatch == tmFull || timerMatch == tmPartial) {
cTimer_Detail_V1 data;
@@ -820,13 +1173,13 @@ bool cLeMenuSchedules::Parse(bool forced) {
data.type = 'R';
if (cPlugin* pEpg2Vdr = cPluginManager::GetPlugin("epg2vdr"))
pEpg2Vdr->Service(EPG2VDR_TIMER_DETAIL_SERVICE, &data);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::isremotetimer, !data.local);
+ ADD_TOKEN_LMS_IT(isremotetimer, !data.local);
char tp[2]; sprintf(tp, "%c", data.type);
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::timertype, tp);
+ ADD_TOKEN_LMS_ST(timertype, tp);
}
} else {
char *sep = ParseSeparator(event->Title());
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::title, sep);
+ ADD_TOKEN_LMS_ST(title, sep);
free(sep);
}
} else if (!channel) {
@@ -834,13 +1187,13 @@ bool cLeMenuSchedules::Parse(bool forced) {
//stringTokens.insert(pair<string,string>("title", dayseparator));
}
if (channel) {
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::channelname, channel->Name());
+ ADD_TOKEN_LMS_ST(channelname, channel->Name());
cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::channelnumber, channel->Number());
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::channellogoexists, imgCache->LogoExists(*channelID));
+ ADD_TOKEN_LMS_ST(channelid, *channelID);
+ ADD_TOKEN_LMS_IT(channelnumber, channel->Number());
+ ADD_TOKEN_LMS_IT(channellogoexists, imgCache->LogoExists(*channelID));
if (!event && !selectable) {
- tokenContainer->AddStringToken((int)eLeMenuSchedulesST::title, channel->Name());
+ ADD_TOKEN_LMS_ST(title, channel->Name());
}
}
return true;
@@ -867,46 +1220,27 @@ cCeMenuSchedules::~cCeMenuSchedules(void) {
void cCeMenuSchedules::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{title}", (int)eCeMenuSchedulesST::title);
- tokenContainer->DefineStringToken("{shorttext}", (int)eCeMenuSchedulesST::shorttext);
- tokenContainer->DefineStringToken("{description}", (int)eCeMenuSchedulesST::description);
- tokenContainer->DefineStringToken("{start}", (int)eCeMenuSchedulesST::start);
- tokenContainer->DefineStringToken("{stop}", (int)eCeMenuSchedulesST::stop);
- tokenContainer->DefineStringToken("{day}", (int)eCeMenuSchedulesST::day);
- tokenContainer->DefineStringToken("{date}", (int)eCeMenuSchedulesST::date);
- tokenContainer->DefineStringToken("{channelname}", (int)eCeMenuSchedulesST::channelname);
- tokenContainer->DefineStringToken("{channelid}", (int)eCeMenuSchedulesST::channelid);
- tokenContainer->DefineStringToken("{posterpath}", (int)eCeMenuSchedulesST::posterpath);
- tokenContainer->DefineStringToken("{bannerpath}", (int)eCeMenuSchedulesST::bannerpath);
- tokenContainer->DefineStringToken("{timertype}", (int)eCeMenuSchedulesST::timertype);
- tokenContainer->DefineIntToken("{menuitemx}", (int)eCeMenuSchedulesIT::menuitemx);
- tokenContainer->DefineIntToken("{menuitemy}", (int)eCeMenuSchedulesIT::menuitemy);
- tokenContainer->DefineIntToken("{menuitemwidth}", (int)eCeMenuSchedulesIT::menuitemwidth);
- tokenContainer->DefineIntToken("{menuitemheight}", (int)eCeMenuSchedulesIT::menuitemheight);
- tokenContainer->DefineIntToken("{numitem}", (int)eCeMenuSchedulesIT::numitem);
- tokenContainer->DefineIntToken("{daynumeric}", (int)eCeMenuSchedulesIT::daynumeric);
- tokenContainer->DefineIntToken("{month}", (int)eCeMenuSchedulesIT::month);
- tokenContainer->DefineIntToken("{year}", (int)eCeMenuSchedulesIT::year);
- tokenContainer->DefineIntToken("{running}", (int)eCeMenuSchedulesIT::running);
- tokenContainer->DefineIntToken("{elapsed}", (int)eCeMenuSchedulesIT::elapsed);
- tokenContainer->DefineIntToken("{duration}", (int)eCeMenuSchedulesIT::duration);
- tokenContainer->DefineIntToken("{durationhours}", (int)eCeMenuSchedulesIT::durationhours);
- tokenContainer->DefineIntToken("{durationminutes}", (int)eCeMenuSchedulesIT::durationminutes);
- tokenContainer->DefineIntToken("{channelnumber}", (int)eCeMenuSchedulesIT::channelnumber);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eCeMenuSchedulesIT::channellogoexists);
- tokenContainer->DefineIntToken("{hasposter}", (int)eCeMenuSchedulesIT::hasposter);
- tokenContainer->DefineIntToken("{posterwidth}", (int)eCeMenuSchedulesIT::posterwidth);
- tokenContainer->DefineIntToken("{posterheight}", (int)eCeMenuSchedulesIT::posterheight);
- tokenContainer->DefineIntToken("{hasbanner}", (int)eCeMenuSchedulesIT::hasbanner);
- tokenContainer->DefineIntToken("{bannerwidth}", (int)eCeMenuSchedulesIT::bannerwidth);
- tokenContainer->DefineIntToken("{bannerheight}", (int)eCeMenuSchedulesIT::bannerheight);
- tokenContainer->DefineIntToken("{whatson}", (int)eCeMenuSchedulesIT::whatson);
- tokenContainer->DefineIntToken("{whatsonnow}", (int)eCeMenuSchedulesIT::whatsonnow);
- tokenContainer->DefineIntToken("{whatsonnext}", (int)eCeMenuSchedulesIT::whatsonnext);
- tokenContainer->DefineIntToken("{whatsonfavorites}", (int)eCeMenuSchedulesIT::whatsonfavorites);
- tokenContainer->DefineIntToken("{timerpartitial}", (int)eCeMenuSchedulesIT::timerpartitial);
- tokenContainer->DefineIntToken("{timerfull}", (int)eCeMenuSchedulesIT::timerfull);
- tokenContainer->DefineIntToken("{isremotetimer}", (int)eCeMenuSchedulesIT::isremotetimer);
+
+ // fill tokens common for eCeMenuSchedulesIT, eCeMenuSchedulesST, eLeMenuSchedulesIT, eLeMenuSchedulesST
+ DEF_TOK_CONT_MS(TOKEN_CMS_IT, TOKEN_CMS_ST);
+
+ tokenContainer->DefineStringToken("{description}", (int)TOKEN_CMS_ST::description);
+
+ tokenContainer->DefineIntToken("{menuitemx}", (int)TOKEN_CMS_IT::menuitemx);
+ tokenContainer->DefineIntToken("{menuitemy}", (int)TOKEN_CMS_IT::menuitemy);
+ tokenContainer->DefineIntToken("{menuitemwidth}", (int)TOKEN_CMS_IT::menuitemwidth);
+ tokenContainer->DefineIntToken("{menuitemheight}", (int)TOKEN_CMS_IT::menuitemheight);
+ tokenContainer->DefineIntToken("{numitem}", (int)TOKEN_CMS_IT::numitem);
+
+ tokenContainer->DefineStringToken("{posterpath}", (int)TOKEN_CMS_ST::posterpath);
+ tokenContainer->DefineStringToken("{bannerpath}", (int)TOKEN_CMS_ST::bannerpath);
+ tokenContainer->DefineIntToken("{hasposter}", (int)TOKEN_CMS_IT::hasposter);
+ tokenContainer->DefineIntToken("{posterwidth}", (int)TOKEN_CMS_IT::posterwidth);
+ tokenContainer->DefineIntToken("{posterheight}", (int)TOKEN_CMS_IT::posterheight);
+ tokenContainer->DefineIntToken("{hasbanner}", (int)TOKEN_CMS_IT::hasbanner);
+ tokenContainer->DefineIntToken("{bannerwidth}", (int)TOKEN_CMS_IT::bannerwidth);
+ tokenContainer->DefineIntToken("{bannerheight}", (int)TOKEN_CMS_IT::bannerheight);
+
tokenContainer->DefineLoopToken("{schedule[title]}", (int)eCeMenuSchedulesLT::title);
tokenContainer->DefineLoopToken("{schedule[shorttext]}", (int)eCeMenuSchedulesLT::shorttext);
tokenContainer->DefineLoopToken("{schedule[start]}", (int)eCeMenuSchedulesLT::start);
@@ -931,47 +1265,47 @@ bool cCeMenuSchedules::Parse(bool forced) {
return false;
tokenContainer->Clear();
SetListTokens(tokenContainer);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::whatson, (menuCat == mcSchedule && !epgSearchFav) ? true : false);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::whatsonnow, menuCat == mcScheduleNow ? true : false);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::whatsonnext, menuCat == mcScheduleNext ? true : false);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::whatsonfavorites, epgSearchFav);
+ ADD_TOKEN_CMS_IT(whatson, (menuCat == mcSchedule && !epgSearchFav) ? true : false);
+ ADD_TOKEN_CMS_IT(whatsonnow, menuCat == mcScheduleNow ? true : false);
+ ADD_TOKEN_CMS_IT(whatsonnext, menuCat == mcScheduleNext ? true : false);
+ ADD_TOKEN_CMS_IT(whatsonfavorites, epgSearchFav);
if (timerMatch == tmFull) {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerpartitial, false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerfull, true);
+ ADD_TOKEN_CMS_IT(timerpartitial, false);
+ ADD_TOKEN_CMS_IT(timerfull, true);
} else if (timerMatch == tmPartial) {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerpartitial, true);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerfull, false);
+ ADD_TOKEN_CMS_IT(timerpartitial, true);
+ ADD_TOKEN_CMS_IT(timerfull, false);
} else {
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerpartitial, false);
- tokenContainer->AddIntToken((int)eLeMenuSchedulesIT::timerfull, false);
+ ADD_TOKEN_CMS_IT(timerpartitial, false);
+ ADD_TOKEN_CMS_IT(timerfull, false);
}
if (event) {
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::title, event->Title());
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::shorttext, event->ShortText());
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::description, event->Description());
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::start, *(event->GetTimeString()));
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::stop, *(event->GetEndTimeString()));
+ ADD_TOKEN_CMS_ST(title, event->Title());
+ ADD_TOKEN_CMS_ST(shorttext, event->ShortText());
+ ADD_TOKEN_CMS_ST(description, event->Description());
+ ADD_TOKEN_CMS_ST(start, *(event->GetTimeString()));
+ ADD_TOKEN_CMS_ST(stop, *(event->GetEndTimeString()));
time_t startTime = event->StartTime();
struct tm * sStartTime = localtime(&startTime);
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::day, *WeekDayName(startTime));
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::date, *ShortDateString(startTime));
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::year, sStartTime->tm_year + 1900);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::daynumeric, sStartTime->tm_mday);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::month, sStartTime->tm_mon+1);
+ ADD_TOKEN_CMS_ST(day, *WeekDayName(startTime));
+ ADD_TOKEN_CMS_ST(date, *ShortDateString(startTime));
+ ADD_TOKEN_CMS_IT(year, sStartTime->tm_year + 1900);
+ ADD_TOKEN_CMS_IT(daynumeric, sStartTime->tm_mday);
+ ADD_TOKEN_CMS_IT(month, sStartTime->tm_mon+1);
bool isRunning = false;
time_t now = time(NULL);
if ((now >= event->StartTime()) && (now <= event->EndTime()))
isRunning = true;
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::running, isRunning);
+ ADD_TOKEN_CMS_IT(running, isRunning);
if (isRunning) {
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::elapsed, (now - event->StartTime())/60);
+ ADD_TOKEN_CMS_IT(elapsed, (now - event->StartTime())/60);
} else {
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::elapsed, 0);
+ ADD_TOKEN_CMS_IT(elapsed, 0);
}
- 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);
+ ADD_TOKEN_CMS_IT(duration, event->Duration() / 60);
+ ADD_TOKEN_CMS_IT(durationhours, event->Duration() / 3600);
+ ADD_TOKEN_CMS_IT(durationminutes, (event->Duration() / 60) % 60);
if (timerMatch == tmFull || timerMatch == tmPartial) {
cTimer_Detail_V1 data;
@@ -981,19 +1315,19 @@ bool cCeMenuSchedules::Parse(bool forced) {
data.type = 'R';
if (cPlugin* pEpg2Vdr = cPluginManager::GetPlugin("epg2vdr"))
pEpg2Vdr->Service(EPG2VDR_TIMER_DETAIL_SERVICE, &data);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::isremotetimer, !data.local);
+ ADD_TOKEN_CMS_IT(isremotetimer, !data.local);
char tp[2]; sprintf(tp, "%c", data.type);
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::timertype, tp);
+ ADD_TOKEN_CMS_ST(timertype, tp);
}
if (LoadFullScrapInfo(event, NULL))
SetScraperPosterBanner(tokenContainer);
}
if (channel) {
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::channelname, channel->Name());
+ ADD_TOKEN_CMS_ST(channelname, channel->Name());
cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eCeMenuSchedulesST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::channelnumber, channel->Number());
- tokenContainer->AddIntToken((int)eCeMenuSchedulesIT::channellogoexists, imgCache->LogoExists(*channelID));
+ ADD_TOKEN_CMS_ST(channelid, *channelID);
+ ADD_TOKEN_CMS_IT(channelnumber, channel->Number());
+ ADD_TOKEN_CMS_IT(channellogoexists, imgCache->LogoExists(*channelID));
}
if (menuCat == mcScheduleNow || menuCat == mcScheduleNext) {
@@ -1057,29 +1391,14 @@ cLeMenuChannels::~cLeMenuChannels(void) {
void cLeMenuChannels::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{name}", (int)eLeMenuChannelsST::name);
- tokenContainer->DefineStringToken("{channelid}", (int)eLeMenuChannelsST::channelid);
- tokenContainer->DefineStringToken("{source}", (int)eLeMenuChannelsST::source);
- tokenContainer->DefineStringToken("{sourcedescription}", (int)eLeMenuChannelsST::sourcedescription);
- tokenContainer->DefineStringToken("{position}", (int)eLeMenuChannelsST::position);
- tokenContainer->DefineStringToken("{presenteventtitle}", (int)eLeMenuChannelsST::presenteventtitle);
- tokenContainer->DefineStringToken("{presenteventstart}", (int)eLeMenuChannelsST::presenteventstart);
- tokenContainer->DefineStringToken("{presenteventstop}", (int)eLeMenuChannelsST::presenteventstop);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeMenuChannelsIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeMenuChannelsIT::current);
- tokenContainer->DefineIntToken("{separator}", (int)eLeMenuChannelsIT::separator);
- tokenContainer->DefineIntToken("{number}", (int)eLeMenuChannelsIT::number);
- tokenContainer->DefineIntToken("{transponder}", (int)eLeMenuChannelsIT::transponder);
- tokenContainer->DefineIntToken("{frequency}", (int)eLeMenuChannelsIT::frequency);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eLeMenuChannelsIT::channellogoexists);
- tokenContainer->DefineIntToken("{isAtsc}", (int)eLeMenuChannelsIT::isAtsc);
- tokenContainer->DefineIntToken("{isCable}", (int)eLeMenuChannelsIT::isCable);
- tokenContainer->DefineIntToken("{isSat}", (int)eLeMenuChannelsIT::isSat);
- tokenContainer->DefineIntToken("{isTerr}", (int)eLeMenuChannelsIT::isTerr);
- tokenContainer->DefineIntToken("{isEncrypted}", (int)eLeMenuChannelsIT::isEncrypted);
- tokenContainer->DefineIntToken("{isRadio}", (int)eLeMenuChannelsIT::isRadio);
- tokenContainer->DefineIntToken("{isHD}", (int)eLeMenuChannelsIT::isHD);
- tokenContainer->DefineIntToken("{isUHD}", (int)eLeMenuChannelsIT::isUHD);
+
+ // fill tokens common for eCeMenuChannelsIT, eCeMenuChannelsST, eLeMenuChannelsIT, eLeMenuChannelsST
+ DEF_TOK_CONT_MC(TOKEN_LMC_IT, TOKEN_LMC_ST);
+
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LMC_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LMC_IT::current);
+ tokenContainer->DefineIntToken("{separator}", (int)TOKEN_LMC_IT::separator);
+
InheritTokenContainer();
}
@@ -1114,32 +1433,12 @@ bool cLeMenuChannels::Parse(bool forced) {
};
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::current, current);
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::separator, !selectable);
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::number, channel->Number());
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::transponder, channel->Transponder());
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::frequency, channel->Frequency());
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isEncrypted, channel->Ca());
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isRadio, isRadio);
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isHD, isHD);
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isUHD, isUHD);
-
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::name, channel->Name());
- cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::channellogoexists, imgCache->LogoExists(*channelID));
+ ADD_TOKEN_LMC_IT(nummenuitem, num);
+ ADD_TOKEN_LMC_IT(current, current);
+ ADD_TOKEN_LMC_IT(separator, !selectable);
- //Channel Source Information
- const cSource *source = Sources.Get(channel->Source());
- if (source) {
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::source, *cSource::ToString(source->Code()));
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::sourcedescription, source->Description());
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isAtsc, source->IsAtsc(source->Code()));
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isCable, source->IsCable(source->Code()));
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isSat, source->IsSat(source->Code()));
- tokenContainer->AddIntToken((int)eLeMenuChannelsIT::isTerr, source->IsTerr(source->Code()));
- }
+ // do the same stuff as in cCeMenuChannels::Parse()
+ ADD_TOKEN_MC(TOKEN_LMC_IT, TOKEN_LMC_ST);
//current schedule
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
@@ -1153,9 +1452,9 @@ bool cLeMenuChannels::Parse(bool forced) {
if (schedule) {
const cEvent *presentEvent = schedule->GetPresentEvent();
if (presentEvent) {
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::presenteventtitle, presentEvent->Title());
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::presenteventstart, *presentEvent->GetTimeString());
- tokenContainer->AddStringToken((int)eLeMenuChannelsST::presenteventstop, *presentEvent->GetEndTimeString());
+ ADD_TOKEN_LMC_ST(presenteventtitle, presentEvent->Title());
+ ADD_TOKEN_LMC_ST(presenteventstart, *presentEvent->GetTimeString());
+ ADD_TOKEN_LMC_ST(presenteventstop, *presentEvent->GetEndTimeString());
}
}
return true;
@@ -1183,57 +1482,42 @@ cCeMenuChannels::~cCeMenuChannels(void) {
void cCeMenuChannels::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{name}", (int)eCeMenuChannelsST::name);
- tokenContainer->DefineStringToken("{channelid}", (int)eCeMenuChannelsST::channelid);
- tokenContainer->DefineStringToken("{source}", (int)eCeMenuChannelsST::source);
- tokenContainer->DefineStringToken("{sourcedescription}", (int)eCeMenuChannelsST::sourcedescription);
- tokenContainer->DefineStringToken("{position}", (int)eCeMenuChannelsST::position);
- tokenContainer->DefineStringToken("{presenteventtitle}", (int)eCeMenuChannelsST::presenteventtitle);
- tokenContainer->DefineStringToken("{presenteventstart}", (int)eCeMenuChannelsST::presenteventstart);
- tokenContainer->DefineStringToken("{presenteventstop}", (int)eCeMenuChannelsST::presenteventstop);
- tokenContainer->DefineStringToken("{presenteventshorttext}", (int)eCeMenuChannelsST::presenteventshorttext);
- tokenContainer->DefineStringToken("{presenteventdescription}", (int)eCeMenuChannelsST::presenteventdescription);
- tokenContainer->DefineStringToken("{presenteventday}", (int)eCeMenuChannelsST::presenteventday);
- tokenContainer->DefineStringToken("{presenteventdate}", (int)eCeMenuChannelsST::presenteventdate);
- tokenContainer->DefineStringToken("{presenteventdurationminutes}", (int)eCeMenuChannelsST::presenteventdurationminutes);
- tokenContainer->DefineStringToken("{posterpath}", (int)eCeMenuChannelsST::posterpath);
- tokenContainer->DefineStringToken("{bannerpath}", (int)eCeMenuChannelsST::bannerpath);
- tokenContainer->DefineStringToken("{nexteventtitle}", (int)eCeMenuChannelsST::nexteventtitle);
- tokenContainer->DefineStringToken("{nexteventstart}", (int)eCeMenuChannelsST::nexteventstart);
- tokenContainer->DefineStringToken("{nexteventstop}", (int)eCeMenuChannelsST::nexteventstop);
- tokenContainer->DefineStringToken("{nexteventshorttext}", (int)eCeMenuChannelsST::nexteventshorttext);
- tokenContainer->DefineStringToken("{nexteventdescription}", (int)eCeMenuChannelsST::nexteventdescription);
- tokenContainer->DefineStringToken("{nexteventdurationminutes}", (int)eCeMenuChannelsST::nexteventdurationminutes);
- tokenContainer->DefineStringToken("{nexteventday}", (int)eCeMenuChannelsST::nexteventday);
- tokenContainer->DefineStringToken("{nexteventdate}", (int)eCeMenuChannelsST::nexteventdate);
- tokenContainer->DefineIntToken("{menuitemx}", (int)eCeMenuChannelsIT::menuitemx);
- tokenContainer->DefineIntToken("{menuitemy}", (int)eCeMenuChannelsIT::menuitemy);
- tokenContainer->DefineIntToken("{menuitemwidth}", (int)eCeMenuChannelsIT::menuitemwidth);
- tokenContainer->DefineIntToken("{menuitemheight}", (int)eCeMenuChannelsIT::menuitemheight);
- tokenContainer->DefineIntToken("{numitem}", (int)eCeMenuChannelsIT::numitem);
- tokenContainer->DefineIntToken("{number}", (int)eCeMenuChannelsIT::number);
- tokenContainer->DefineIntToken("{transponder}", (int)eCeMenuChannelsIT::transponder);
- tokenContainer->DefineIntToken("{frequency}", (int)eCeMenuChannelsIT::frequency);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eCeMenuChannelsIT::channellogoexists);
- tokenContainer->DefineIntToken("{isAtsc}", (int)eCeMenuChannelsIT::isAtsc);
- tokenContainer->DefineIntToken("{isCable}", (int)eCeMenuChannelsIT::isCable);
- tokenContainer->DefineIntToken("{isSat}", (int)eCeMenuChannelsIT::isSat);
- tokenContainer->DefineIntToken("{isTerr}", (int)eCeMenuChannelsIT::isTerr);
- tokenContainer->DefineIntToken("{isEncrypted}", (int)eCeMenuChannelsIT::isEncrypted);
- tokenContainer->DefineIntToken("{isRadio}", (int)eCeMenuChannelsIT::isRadio);
- tokenContainer->DefineIntToken("{isHD}", (int)eCeMenuChannelsIT::isHD);
- tokenContainer->DefineIntToken("{isUHD}", (int)eCeMenuChannelsIT::isUHD);
- tokenContainer->DefineIntToken("{presenteventelapsed}", (int)eCeMenuChannelsIT::presenteventelapsed);
- tokenContainer->DefineIntToken("{presenteventduration}", (int)eCeMenuChannelsIT::presenteventduration);
- tokenContainer->DefineIntToken("{presenteventdurationhours}", (int)eCeMenuChannelsIT::presenteventdurationhours);
- tokenContainer->DefineIntToken("{hasposter}", (int)eCeMenuChannelsIT::hasposter);
- tokenContainer->DefineIntToken("{posterwidth}", (int)eCeMenuChannelsIT::posterwidth);
- tokenContainer->DefineIntToken("{posterheight}", (int)eCeMenuChannelsIT::posterheight);
- tokenContainer->DefineIntToken("{hasbanner}", (int)eCeMenuChannelsIT::hasbanner);
- tokenContainer->DefineIntToken("{bannerwidth}", (int)eCeMenuChannelsIT::bannerwidth);
- tokenContainer->DefineIntToken("{bannerheight}", (int)eCeMenuChannelsIT::bannerheight);
- tokenContainer->DefineIntToken("{nexteventduration}", (int)eCeMenuChannelsIT::nexteventduration);
- tokenContainer->DefineIntToken("{nexteventdurationhours}", (int)eCeMenuChannelsIT::nexteventdurationhours);
+
+ // fill tokens common for eCeMenuChannelsIT, eCeMenuChannelsST, eLeMenuChannelsIT, eLeMenuChannelsST
+ DEF_TOK_CONT_MC(TOKEN_CMC_IT, TOKEN_CMC_ST);
+
+ tokenContainer->DefineStringToken("{presenteventshorttext}", (int)TOKEN_CMC_ST::presenteventshorttext);
+ tokenContainer->DefineStringToken("{presenteventdescription}", (int)TOKEN_CMC_ST::presenteventdescription);
+ tokenContainer->DefineStringToken("{presenteventday}", (int)TOKEN_CMC_ST::presenteventday);
+ tokenContainer->DefineStringToken("{presenteventdate}", (int)TOKEN_CMC_ST::presenteventdate);
+ tokenContainer->DefineStringToken("{presenteventdurationminutes}", (int)TOKEN_CMC_ST::presenteventdurationminutes);
+ tokenContainer->DefineStringToken("{posterpath}", (int)TOKEN_CMC_ST::posterpath);
+ tokenContainer->DefineStringToken("{bannerpath}", (int)TOKEN_CMC_ST::bannerpath);
+ tokenContainer->DefineStringToken("{nexteventtitle}", (int)TOKEN_CMC_ST::nexteventtitle);
+ tokenContainer->DefineStringToken("{nexteventstart}", (int)TOKEN_CMC_ST::nexteventstart);
+ tokenContainer->DefineStringToken("{nexteventstop}", (int)TOKEN_CMC_ST::nexteventstop);
+ tokenContainer->DefineStringToken("{nexteventshorttext}", (int)TOKEN_CMC_ST::nexteventshorttext);
+ tokenContainer->DefineStringToken("{nexteventdescription}", (int)TOKEN_CMC_ST::nexteventdescription);
+ tokenContainer->DefineStringToken("{nexteventdurationminutes}", (int)TOKEN_CMC_ST::nexteventdurationminutes);
+ tokenContainer->DefineStringToken("{nexteventday}", (int)TOKEN_CMC_ST::nexteventday);
+ tokenContainer->DefineStringToken("{nexteventdate}", (int)TOKEN_CMC_ST::nexteventdate);
+ tokenContainer->DefineIntToken("{menuitemx}", (int)TOKEN_CMC_IT::menuitemx);
+ tokenContainer->DefineIntToken("{menuitemy}", (int)TOKEN_CMC_IT::menuitemy);
+ tokenContainer->DefineIntToken("{menuitemwidth}", (int)TOKEN_CMC_IT::menuitemwidth);
+ tokenContainer->DefineIntToken("{menuitemheight}", (int)TOKEN_CMC_IT::menuitemheight);
+ tokenContainer->DefineIntToken("{numitem}", (int)TOKEN_CMC_IT::numitem);
+
+ tokenContainer->DefineIntToken("{presenteventelapsed}", (int)TOKEN_CMC_IT::presenteventelapsed);
+ tokenContainer->DefineIntToken("{presenteventduration}", (int)TOKEN_CMC_IT::presenteventduration);
+ tokenContainer->DefineIntToken("{presenteventdurationhours}", (int)TOKEN_CMC_IT::presenteventdurationhours);
+ tokenContainer->DefineIntToken("{hasposter}", (int)TOKEN_CMC_IT::hasposter);
+ tokenContainer->DefineIntToken("{posterwidth}", (int)TOKEN_CMC_IT::posterwidth);
+ tokenContainer->DefineIntToken("{posterheight}", (int)TOKEN_CMC_IT::posterheight);
+ tokenContainer->DefineIntToken("{hasbanner}", (int)TOKEN_CMC_IT::hasbanner);
+ tokenContainer->DefineIntToken("{bannerwidth}", (int)TOKEN_CMC_IT::bannerwidth);
+ tokenContainer->DefineIntToken("{bannerheight}", (int)TOKEN_CMC_IT::bannerheight);
+ tokenContainer->DefineIntToken("{nexteventduration}", (int)TOKEN_CMC_IT::nexteventduration);
+ tokenContainer->DefineIntToken("{nexteventdurationhours}", (int)TOKEN_CMC_IT::nexteventdurationhours);
tokenContainer->DefineLoopToken("{schedule[title]}", (int)eCeMenuChannelsLT::title);
tokenContainer->DefineLoopToken("{schedule[shorttext]}", (int)eCeMenuChannelsLT::shorttext);
tokenContainer->DefineLoopToken("{schedule[start]}", (int)eCeMenuChannelsLT::start);
@@ -1272,29 +1556,8 @@ bool cCeMenuChannels::Parse(bool forced) {
SetListTokens(tokenContainer);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::number, channel->Number());
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::transponder, channel->Transponder());
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::frequency, channel->Frequency());
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isEncrypted, channel->Ca());
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isRadio, isRadio);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isHD, isHD);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isUHD, isUHD);
-
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::name, channel->Name());
- cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::channellogoexists, imgCache->LogoExists(*channelID));
-
- //Channel Source Information
- const cSource *source = Sources.Get(channel->Source());
- if (source) {
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::source, *cSource::ToString(source->Code()));
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::sourcedescription, source->Description());
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isAtsc, source->IsAtsc(source->Code()));
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isCable, source->IsCable(source->Code()));
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isSat, source->IsSat(source->Code()));
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::isTerr, source->IsTerr(source->Code()));
- }
+ // do the same stuff as in cLeMenuChannels::Parse()
+ ADD_TOKEN_MC(TOKEN_CMC_IT, TOKEN_CMC_ST);
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_SCHEDULES_READ;
@@ -1307,17 +1570,17 @@ bool cCeMenuChannels::Parse(bool forced) {
if (schedule) {
const cEvent *presentEvent = schedule->GetPresentEvent();
if (presentEvent) {
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventtitle, presentEvent->Title());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventshorttext, presentEvent->ShortText());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventdescription, presentEvent->Description());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventstart, *presentEvent->GetTimeString());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventstop, *presentEvent->GetEndTimeString());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventday, *WeekDayName(presentEvent->StartTime()));
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventdate, *ShortDateString(presentEvent->StartTime()));
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::presenteventelapsed, (time(0) - presentEvent->StartTime())/60);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::presenteventduration, presentEvent->Duration() / 60);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::presenteventdurationhours, presentEvent->Duration() / 3600);
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::presenteventdurationminutes, *cString::sprintf("%.2d", (presentEvent->Duration() / 60)%60));
+ ADD_TOKEN_CMC_ST(presenteventtitle, presentEvent->Title());
+ ADD_TOKEN_CMC_ST(presenteventshorttext, presentEvent->ShortText());
+ ADD_TOKEN_CMC_ST(presenteventdescription, presentEvent->Description());
+ ADD_TOKEN_CMC_ST(presenteventstart, *presentEvent->GetTimeString());
+ ADD_TOKEN_CMC_ST(presenteventstop, *presentEvent->GetEndTimeString());
+ ADD_TOKEN_CMC_ST(presenteventday, *WeekDayName(presentEvent->StartTime()));
+ ADD_TOKEN_CMC_ST(presenteventdate, *ShortDateString(presentEvent->StartTime()));
+ ADD_TOKEN_CMC_IT(presenteventelapsed, (time(0) - presentEvent->StartTime())/60);
+ ADD_TOKEN_CMC_IT(presenteventduration, presentEvent->Duration() / 60);
+ ADD_TOKEN_CMC_IT(presenteventdurationhours, presentEvent->Duration() / 3600);
+ ADD_TOKEN_CMC_ST(presenteventdurationminutes, *cString::sprintf("%.2d", (presentEvent->Duration() / 60)%60));
if (LoadFullScrapInfo(presentEvent, NULL))
SetScraperPosterBannerChannel(tokenContainer);
}
@@ -1325,16 +1588,16 @@ bool cCeMenuChannels::Parse(bool forced) {
if (events && presentEvent) {
const cEvent *nextEvent = events->Next(presentEvent);
if (nextEvent) {
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventtitle, nextEvent->Title());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventshorttext, nextEvent->ShortText());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventdescription, nextEvent->Description());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventstart, *nextEvent->GetTimeString());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventstop, *nextEvent->GetEndTimeString());
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventday, *WeekDayName(nextEvent->StartTime()));
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventdate, *ShortDateString(nextEvent->StartTime()));
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::nexteventduration, nextEvent->Duration() / 60);
- tokenContainer->AddIntToken((int)eCeMenuChannelsIT::nexteventdurationhours, nextEvent->Duration() / 3600);
- tokenContainer->AddStringToken((int)eCeMenuChannelsST::nexteventdurationminutes, *cString::sprintf("%.2d", (nextEvent->Duration() / 60)%60));
+ ADD_TOKEN_CMC_ST(nexteventtitle, nextEvent->Title());
+ ADD_TOKEN_CMC_ST(nexteventshorttext, nextEvent->ShortText());
+ ADD_TOKEN_CMC_ST(nexteventdescription, nextEvent->Description());
+ ADD_TOKEN_CMC_ST(nexteventstart, *nextEvent->GetTimeString());
+ ADD_TOKEN_CMC_ST(nexteventstop, *nextEvent->GetEndTimeString());
+ ADD_TOKEN_CMC_ST(nexteventday, *WeekDayName(nextEvent->StartTime()));
+ ADD_TOKEN_CMC_ST(nexteventdate, *ShortDateString(nextEvent->StartTime()));
+ ADD_TOKEN_CMC_IT(nexteventduration, nextEvent->Duration() / 60);
+ ADD_TOKEN_CMC_IT(nexteventdurationhours, nextEvent->Duration() / 3600);
+ ADD_TOKEN_CMC_ST(nexteventdurationminutes, *cString::sprintf("%.2d", (nextEvent->Duration() / 60)%60));
}
}
}
@@ -1392,36 +1655,12 @@ cLeMenuTimers::~cLeMenuTimers(void) {
void cLeMenuTimers::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{title}", (int)eLeMenuTimersST::title);
- tokenContainer->DefineStringToken("{timerstart}", (int)eLeMenuTimersST::timerstart);
- tokenContainer->DefineStringToken("{timerstop}", (int)eLeMenuTimersST::timerstop);
- tokenContainer->DefineStringToken("{day}", (int)eLeMenuTimersST::day);
- tokenContainer->DefineStringToken("{dayname}", (int)eLeMenuTimersST::dayname);
- tokenContainer->DefineStringToken("{monthname}", (int)eLeMenuTimersST::monthname);
- tokenContainer->DefineStringToken("{channelname}", (int)eLeMenuTimersST::channelname);
- tokenContainer->DefineStringToken("{channelid}", (int)eLeMenuTimersST::channelid);
- tokenContainer->DefineStringToken("{eventtitle}", (int)eLeMenuTimersST::eventtitle);
- tokenContainer->DefineStringToken("{eventstart}", (int)eLeMenuTimersST::eventstart);
- tokenContainer->DefineStringToken("{eventstop}", (int)eLeMenuTimersST::eventstop);
- tokenContainer->DefineStringToken("{state}", (int)eLeMenuTimersST::state);
- tokenContainer->DefineStringToken("{stateinfo}", (int)eLeMenuTimersST::stateinfo);
- tokenContainer->DefineStringToken("{action}", (int)eLeMenuTimersST::action);
- tokenContainer->DefineStringToken("{vdrname}", (int)eLeMenuTimersST::vdrname);
- tokenContainer->DefineStringToken("{type}", (int)eLeMenuTimersST::type);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeMenuTimersIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeMenuTimersIT::current);
- tokenContainer->DefineIntToken("{separator}", (int)eLeMenuTimersIT::separator);
- tokenContainer->DefineIntToken("{month}", (int)eLeMenuTimersIT::month);
- tokenContainer->DefineIntToken("{year}", (int)eLeMenuTimersIT::year);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eLeMenuTimersIT::channellogoexists);
- tokenContainer->DefineIntToken("{channelnumber}", (int)eLeMenuTimersIT::channelnumber);
- tokenContainer->DefineIntToken("{flagactive}", (int)eLeMenuTimersIT::flagactive);
- tokenContainer->DefineIntToken("{flaginstant}", (int)eLeMenuTimersIT::flaginstant);
- tokenContainer->DefineIntToken("{flagvps}", (int)eLeMenuTimersIT::flagvps);
- tokenContainer->DefineIntToken("{flagrecording}", (int)eLeMenuTimersIT::flagrecording);
- tokenContainer->DefineIntToken("{flagpending}", (int)eLeMenuTimersIT::flagpending);
- tokenContainer->DefineIntToken("{isvdrrunning}", (int)eLeMenuTimersIT::isvdrrunning);
- tokenContainer->DefineIntToken("{isremote}", (int)eLeMenuTimersIT::isremote);
+
+ // fill tokens common for eCeMenuTimersIT, eCeMenuTimersST, eLeMenuTimersIT, eLeMenuTimersST
+ DEF_TOK_CONT_MT(TOKEN_LMT_IT, TOKEN_LMT_ST);
+
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LMT_IT::current);
+ tokenContainer->DefineIntToken("{separator}", (int)TOKEN_LMT_IT::separator);
InheritTokenContainer();
}
@@ -1441,23 +1680,21 @@ bool cLeMenuTimers::Parse(bool forced) {
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::current, current);
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::separator, !selectable);
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::flagactive, timer->HasFlags(tfActive));
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::flaginstant, timer->HasFlags(tfInstant));
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::flagvps, timer->HasFlags(tfVps));
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::flagrecording, timer->Recording());
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::flagpending, timer->Pending());
+ ADD_TOKEN_LMT_IT(nummenuitem, num);
+ ADD_TOKEN_LMT_IT(current, current);
+ ADD_TOKEN_LMT_IT(separator, !selectable);
+
+ // do the same stuff as in cCeMenuTimers::Parse()
+ ADD_TOKEN_MT(TOKEN_LMT_IT);
const char *file = Setup.FoldersInTimerMenu ? NULL : strrchr(timer->File(), FOLDERDELIMCHAR);
if (file && strcmp(file + 1, TIMERMACRO_TITLE) && strcmp(file + 1, TIMERMACRO_EPISODE))
file++;
else
file = timer->File();
- tokenContainer->AddStringToken((int)eLeMenuTimersST::title, file);
- tokenContainer->AddStringToken((int)eLeMenuTimersST::timerstart, *cString::sprintf("%02d:%02d", timer->Start() / 100, timer->Start() % 100));
- tokenContainer->AddStringToken((int)eLeMenuTimersST::timerstop, *cString::sprintf("%02d:%02d", timer->Stop() / 100, timer->Stop() % 100));
+ ADD_TOKEN_LMT_ST(title, file);
+ ADD_TOKEN_LMT_ST(timerstart, *cString::sprintf("%02d:%02d", timer->Start() / 100, timer->Start() % 100));
+ ADD_TOKEN_LMT_ST(timerstop, *cString::sprintf("%02d:%02d", timer->Stop() / 100, timer->Stop() % 100));
cString day("");
cString dayName("");
@@ -1487,42 +1724,42 @@ bool cLeMenuTimers::Parse(bool forced) {
strftime(buffer3, sizeof(buffer3), "%Y", &tm_r);
int year = atoi(buffer3);
- tokenContainer->AddStringToken((int)eLeMenuTimersST::day, *day);
- tokenContainer->AddStringToken((int)eLeMenuTimersST::dayname, *dayName);
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::month, month);
- tokenContainer->AddStringToken((int)eLeMenuTimersST::monthname, buffer2);
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::year, year);
+ ADD_TOKEN_LMT_ST(day, *day);
+ ADD_TOKEN_LMT_ST(dayname, *dayName);
+ ADD_TOKEN_LMT_IT(month, month);
+ ADD_TOKEN_LMT_ST(monthname, buffer2);
+ ADD_TOKEN_LMT_IT(year, year);
const cChannel *channel = timer->Channel();
if (channel) {
- tokenContainer->AddStringToken((int)eLeMenuTimersST::channelname, channel->Name());
+ ADD_TOKEN_LMT_ST(channelname, channel->Name());
cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eLeMenuTimersST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::channellogoexists, imgCache->LogoExists(*channelID));
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::channelnumber, channel->Number());
+ ADD_TOKEN_LMT_ST(channelid, *channelID);
+ ADD_TOKEN_LMT_IT(channellogoexists, imgCache->LogoExists(*channelID));
+ ADD_TOKEN_LMT_IT(channelnumber, channel->Number());
}
const cEvent *event = timer->Event();
if (event) {
- tokenContainer->AddStringToken((int)eLeMenuTimersST::eventtitle, event->Title());
- tokenContainer->AddStringToken((int)eLeMenuTimersST::eventstart, *event->GetTimeString());
- tokenContainer->AddStringToken((int)eLeMenuTimersST::eventstop, *event->GetEndTimeString());
+ ADD_TOKEN_LMT_ST(eventtitle, event->Title());
+ ADD_TOKEN_LMT_ST(eventstart, *event->GetTimeString());
+ ADD_TOKEN_LMT_ST(eventstop, *event->GetEndTimeString());
}
cEpgTimer_Interface_V1* epgTimer;
if (epgTimer = dynamic_cast<cEpgTimer_Interface_V1*>((cTimer*)timer)) {
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::isvdrrunning, epgTimer->isVdrRunning());
- tokenContainer->AddIntToken((int)eLeMenuTimersIT::isremote, epgTimer->isRemote());
+ ADD_TOKEN_LMT_IT(isvdrrunning, epgTimer->isVdrRunning());
+ ADD_TOKEN_LMT_IT(isremote, epgTimer->isRemote());
stringstream state;
state << epgTimer->State();
- tokenContainer->AddStringToken((int)eLeMenuTimersST::state, state.str().c_str());
- tokenContainer->AddStringToken((int)eLeMenuTimersST::stateinfo, epgTimer->StateInfo());
- tokenContainer->AddStringToken((int)eLeMenuTimersST::vdrname, epgTimer->VdrName());
+ ADD_TOKEN_LMT_ST(state, state.str().c_str());
+ ADD_TOKEN_LMT_ST(stateinfo, epgTimer->StateInfo());
+ ADD_TOKEN_LMT_ST(vdrname, epgTimer->VdrName());
char tp[2]; sprintf(tp, "%c", epgTimer->Type());
- tokenContainer->AddStringToken((int)eLeMenuTimersST::type, tp);
+ ADD_TOKEN_LMT_ST(type, tp);
stringstream action;
action << epgTimer->Action();
- tokenContainer->AddStringToken((int)eLeMenuTimersST::action, action.str().c_str());
+ ADD_TOKEN_LMT_ST(action, action.str().c_str());
}
return true;
@@ -1549,48 +1786,26 @@ cCeMenuTimers::~cCeMenuTimers(void) {
void cCeMenuTimers::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{title}", (int)eCeMenuTimersST::title);
- tokenContainer->DefineStringToken("{timerstart}", (int)eCeMenuTimersST::timerstart);
- tokenContainer->DefineStringToken("{timerstop}", (int)eCeMenuTimersST::timerstop);
- tokenContainer->DefineStringToken("{day}", (int)eCeMenuTimersST::day);
- tokenContainer->DefineStringToken("{dayname}", (int)eCeMenuTimersST::dayname);
- tokenContainer->DefineStringToken("{monthname}", (int)eCeMenuTimersST::monthname);
- tokenContainer->DefineStringToken("{channelname}", (int)eCeMenuTimersST::channelname);
- tokenContainer->DefineStringToken("{channelid}", (int)eCeMenuTimersST::channelid);
- tokenContainer->DefineStringToken("{eventtitle}", (int)eCeMenuTimersST::eventtitle);
- tokenContainer->DefineStringToken("{eventstart}", (int)eCeMenuTimersST::eventstart);
- tokenContainer->DefineStringToken("{eventstop}", (int)eCeMenuTimersST::eventstop);
- tokenContainer->DefineStringToken("{eventshorttext}", (int)eCeMenuTimersST::eventshorttext);
- tokenContainer->DefineStringToken("{eventdescription}", (int)eCeMenuTimersST::eventdescription);
- tokenContainer->DefineStringToken("{posterpath}", (int)eCeMenuTimersST::posterpath);
- tokenContainer->DefineStringToken("{bannerpath}", (int)eCeMenuTimersST::bannerpath);
- tokenContainer->DefineStringToken("{state}", (int)eCeMenuTimersST::state);
- tokenContainer->DefineStringToken("{stateinfo}", (int)eCeMenuTimersST::stateinfo);
- tokenContainer->DefineStringToken("{action}", (int)eCeMenuTimersST::action);
- tokenContainer->DefineStringToken("{vdrname}", (int)eCeMenuTimersST::vdrname);
- tokenContainer->DefineStringToken("{type}", (int)eCeMenuTimersST::type);
- tokenContainer->DefineIntToken("{menuitemx}", (int)eCeMenuTimersIT::menuitemx);
- tokenContainer->DefineIntToken("{menuitemy}", (int)eCeMenuTimersIT::menuitemy);
- tokenContainer->DefineIntToken("{menuitemwidth}", (int)eCeMenuTimersIT::menuitemwidth);
- tokenContainer->DefineIntToken("{menuitemheight}", (int)eCeMenuTimersIT::menuitemheight);
- tokenContainer->DefineIntToken("{numitem}", (int)eCeMenuTimersIT::numitem);
- tokenContainer->DefineIntToken("{month}", (int)eCeMenuTimersIT::month);
- tokenContainer->DefineIntToken("{year}", (int)eCeMenuTimersIT::year);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eCeMenuTimersIT::channellogoexists);
- tokenContainer->DefineIntToken("{channelnumber}", (int)eCeMenuTimersIT::channelnumber);
- tokenContainer->DefineIntToken("{flagactive}", (int)eCeMenuTimersIT::flagactive);
- tokenContainer->DefineIntToken("{flaginstant}", (int)eCeMenuTimersIT::flaginstant);
- tokenContainer->DefineIntToken("{flagvps}", (int)eCeMenuTimersIT::flagvps);
- tokenContainer->DefineIntToken("{flagrecording}", (int)eCeMenuTimersIT::flagrecording);
- tokenContainer->DefineIntToken("{flagpending}", (int)eCeMenuTimersIT::flagpending);
- tokenContainer->DefineIntToken("{hasposter}", (int)eCeMenuTimersIT::hasposter);
- tokenContainer->DefineIntToken("{posterwidth}", (int)eCeMenuTimersIT::posterwidth);
- tokenContainer->DefineIntToken("{posterheight}", (int)eCeMenuTimersIT::posterheight);
- tokenContainer->DefineIntToken("{hasbanner}", (int)eCeMenuTimersIT::hasbanner);
- tokenContainer->DefineIntToken("{bannerwidth}", (int)eCeMenuTimersIT::bannerwidth);
- tokenContainer->DefineIntToken("{bannerheight}", (int)eCeMenuTimersIT::bannerheight);
- tokenContainer->DefineIntToken("{isvdrrunning}", (int)eCeMenuTimersIT::isvdrrunning);
- tokenContainer->DefineIntToken("{isremote}", (int)eCeMenuTimersIT::isremote);
+
+ // fill tokens common for eCeMenuTimersIT, eCeMenuTimersST, eLeMenuTimersIT, eLeMenuTimersST
+ DEF_TOK_CONT_MT(TOKEN_CMT_IT, TOKEN_CMT_ST);
+
+ // fill tokens specific for eCeMenuTimersIT, eCeMenuTimersST
+ tokenContainer->DefineStringToken("{eventshorttext}", (int)TOKEN_CMT_ST::eventshorttext);
+ tokenContainer->DefineStringToken("{eventdescription}", (int)TOKEN_CMT_ST::eventdescription);
+ tokenContainer->DefineStringToken("{posterpath}", (int)TOKEN_CMT_ST::posterpath);
+ tokenContainer->DefineStringToken("{bannerpath}", (int)TOKEN_CMT_ST::bannerpath);
+ tokenContainer->DefineIntToken("{menuitemx}", (int)TOKEN_CMT_IT::menuitemx);
+ tokenContainer->DefineIntToken("{menuitemy}", (int)TOKEN_CMT_IT::menuitemy);
+ tokenContainer->DefineIntToken("{menuitemwidth}", (int)TOKEN_CMT_IT::menuitemwidth);
+ tokenContainer->DefineIntToken("{menuitemheight}", (int)TOKEN_CMT_IT::menuitemheight);
+ tokenContainer->DefineIntToken("{numitem}", (int)TOKEN_CMT_IT::numitem);
+ tokenContainer->DefineIntToken("{hasposter}", (int)TOKEN_CMT_IT::hasposter);
+ tokenContainer->DefineIntToken("{posterwidth}", (int)TOKEN_CMT_IT::posterwidth);
+ tokenContainer->DefineIntToken("{posterheight}", (int)TOKEN_CMT_IT::posterheight);
+ tokenContainer->DefineIntToken("{hasbanner}", (int)TOKEN_CMT_IT::hasbanner);
+ tokenContainer->DefineIntToken("{bannerwidth}", (int)TOKEN_CMT_IT::bannerwidth);
+ tokenContainer->DefineIntToken("{bannerheight}", (int)TOKEN_CMT_IT::bannerheight);
InheritTokenContainer();
}
@@ -1608,20 +1823,18 @@ bool cCeMenuTimers::Parse(bool forced) {
tokenContainer->Clear();
SetListTokens(tokenContainer);
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::flagactive, timer->HasFlags(tfActive));
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::flaginstant, timer->HasFlags(tfInstant));
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::flagvps, timer->HasFlags(tfVps));
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::flagrecording, timer->Recording());
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::flagpending, timer->Pending());
+
+ // do the same stuff as in cLeMenuTimers::Parse()
+ ADD_TOKEN_MT(TOKEN_CMT_IT);
const char *file = Setup.FoldersInTimerMenu ? NULL : strrchr(timer->File(), FOLDERDELIMCHAR);
if (file && strcmp(file + 1, TIMERMACRO_TITLE) && strcmp(file + 1, TIMERMACRO_EPISODE))
file++;
else
file = timer->File();
- tokenContainer->AddStringToken((int)eCeMenuTimersST::title, file);
- tokenContainer->AddStringToken((int)eCeMenuTimersST::timerstart, *cString::sprintf("%02d:%02d", timer->Start() / 100, timer->Start() % 100));
- tokenContainer->AddStringToken((int)eCeMenuTimersST::timerstop, *cString::sprintf("%02d:%02d", timer->Stop() / 100, timer->Stop() % 100));
+ ADD_TOKEN_CMT_ST(title, file);
+ ADD_TOKEN_CMT_ST(timerstart, *cString::sprintf("%02d:%02d", timer->Start() / 100, timer->Start() % 100));
+ ADD_TOKEN_CMT_ST(timerstop, *cString::sprintf("%02d:%02d", timer->Stop() / 100, timer->Stop() % 100));
cString day("");
cString dayName("");
@@ -1651,46 +1864,46 @@ bool cCeMenuTimers::Parse(bool forced) {
strftime(buffer3, sizeof(buffer3), "%Y", &tm_r);
int year = atoi(buffer3);
- tokenContainer->AddStringToken((int)eCeMenuTimersST::day, *day);
- tokenContainer->AddStringToken((int)eCeMenuTimersST::dayname, *dayName);
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::month, month);
- tokenContainer->AddStringToken((int)eCeMenuTimersST::monthname, buffer2);
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::year, year);
+ ADD_TOKEN_CMT_ST(day, *day);
+ ADD_TOKEN_CMT_ST(dayname, *dayName);
+ ADD_TOKEN_CMT_IT(month, month);
+ ADD_TOKEN_CMT_ST(monthname, buffer2);
+ ADD_TOKEN_CMT_IT(year, year);
const cChannel *channel = timer->Channel();
if (channel) {
- tokenContainer->AddStringToken((int)eCeMenuTimersST::channelname, channel->Name());
+ ADD_TOKEN_CMT_ST(channelname, channel->Name());
cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eCeMenuTimersST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::channellogoexists, imgCache->LogoExists(*channelID));
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::channelnumber, channel->Number());
+ ADD_TOKEN_CMT_ST(channelid, *channelID);
+ ADD_TOKEN_CMT_IT(channellogoexists, imgCache->LogoExists(*channelID));
+ ADD_TOKEN_CMT_IT(channelnumber, channel->Number());
}
const cEvent *event = timer->Event();
if (event) {
- tokenContainer->AddStringToken((int)eCeMenuTimersST::eventtitle, event->Title());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::eventstart, *event->GetTimeString());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::eventstop, *event->GetEndTimeString());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::eventshorttext, event->ShortText());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::eventdescription, event->Description());
+ ADD_TOKEN_CMT_ST(eventtitle, event->Title());
+ ADD_TOKEN_CMT_ST(eventstart, *event->GetTimeString());
+ ADD_TOKEN_CMT_ST(eventstop, *event->GetEndTimeString());
+ ADD_TOKEN_CMT_ST(eventshorttext, event->ShortText());
+ ADD_TOKEN_CMT_ST(eventdescription, event->Description());
if (LoadFullScrapInfo(event, NULL))
SetScraperPosterBannerTimer(tokenContainer);
}
cEpgTimer_Interface_V1* epgTimer;
if (epgTimer = dynamic_cast<cEpgTimer_Interface_V1*>((cTimer*)timer)) {
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::isvdrrunning, epgTimer->isVdrRunning());
- tokenContainer->AddIntToken((int)eCeMenuTimersIT::isremote, epgTimer->isRemote());
+ ADD_TOKEN_CMT_IT(isvdrrunning, epgTimer->isVdrRunning());
+ ADD_TOKEN_CMT_IT(isremote, epgTimer->isRemote());
stringstream state;
state << epgTimer->State();
- tokenContainer->AddStringToken((int)eCeMenuTimersST::state, state.str().c_str());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::stateinfo, epgTimer->StateInfo());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::vdrname, epgTimer->VdrName());
+ ADD_TOKEN_CMT_ST(state, state.str().c_str());
+ ADD_TOKEN_CMT_ST(stateinfo, epgTimer->StateInfo());
+ ADD_TOKEN_CMT_ST(vdrname, epgTimer->VdrName());
char tp[2]; sprintf(tp, "%c", epgTimer->Type());
- tokenContainer->AddStringToken((int)eCeMenuTimersST::type, tp);
+ ADD_TOKEN_CMT_ST(type, tp);
stringstream action;
action << epgTimer->Action();
- tokenContainer->AddStringToken((int)eCeMenuTimersST::action, action.str().c_str());
+ ADD_TOKEN_CMT_ST(action, action.str().c_str());
}
return true;
@@ -1721,46 +1934,14 @@ cLeMenuRecordings::~cLeMenuRecordings(void) {
void cLeMenuRecordings::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{name}", (int)eLeMenuRecordingsST::name);
- tokenContainer->DefineStringToken("{epgname}", (int)eLeMenuRecordingsST::epgname);
- tokenContainer->DefineStringToken("{shorttext}", (int)eLeMenuRecordingsST::shorttext);
- tokenContainer->DefineStringToken("{description}", (int)eLeMenuRecordingsST::description);
- tokenContainer->DefineStringToken("{date}", (int)eLeMenuRecordingsST::date);
- tokenContainer->DefineStringToken("{time}", (int)eLeMenuRecordingsST::time);
- tokenContainer->DefineStringToken("{durationminutes}", (int)eLeMenuRecordingsST::durationminutes);
- tokenContainer->DefineStringToken("{durationeventminutes}", (int)eLeMenuRecordingsST::durationeventminutes);
- tokenContainer->DefineStringToken("{thumbnailpath}", (int)eLeMenuRecordingsST::thumbnailpath);
- tokenContainer->DefineStringToken("{posterpath}", (int)eLeMenuRecordingsST::posterpath);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeMenuRecordingsIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeMenuRecordingsIT::current);
- tokenContainer->DefineIntToken("{new}", (int)eLeMenuRecordingsIT::isnew);
- tokenContainer->DefineIntToken("{separator}", (int)eLeMenuRecordingsIT::separator);
- tokenContainer->DefineIntToken("{percentseen}", (int)eLeMenuRecordingsIT::percentseen);
- tokenContainer->DefineIntToken("{watched}", (int)eLeMenuRecordingsIT::watched);
- tokenContainer->DefineIntToken("{cutted}", (int)eLeMenuRecordingsIT::cutted);
- tokenContainer->DefineIntToken("{folder}", (int)eLeMenuRecordingsIT::folder);
- tokenContainer->DefineIntToken("{daynumeric}", (int)eLeMenuRecordingsIT::daynumeric);
- tokenContainer->DefineIntToken("{month}", (int)eLeMenuRecordingsIT::month);
- tokenContainer->DefineIntToken("{year}", (int)eLeMenuRecordingsIT::year);
- tokenContainer->DefineIntToken("{duration}", (int)eLeMenuRecordingsIT::duration);
- tokenContainer->DefineIntToken("{durationhours}", (int)eLeMenuRecordingsIT::durationhours);
- tokenContainer->DefineIntToken("{durationevent}", (int)eLeMenuRecordingsIT::durationevent);
- tokenContainer->DefineIntToken("{durationeventhours}", (int)eLeMenuRecordingsIT::durationeventhours);
- tokenContainer->DefineIntToken("{numrecordingsfolder}", (int)eLeMenuRecordingsIT::numrecordingsfolder);
- tokenContainer->DefineIntToken("{newrecordingsfolder}", (int)eLeMenuRecordingsIT::newrecordingsfolder);
- tokenContainer->DefineIntToken("{hasposterthumbnail}", (int)eLeMenuRecordingsIT::hasposterthumbnail);
- tokenContainer->DefineIntToken("{thumbnailwidth}", (int)eLeMenuRecordingsIT::thumbnailwidth);
- tokenContainer->DefineIntToken("{thumbnailheight}", (int)eLeMenuRecordingsIT::thumbnailheight);
- tokenContainer->DefineIntToken("{hasposter}", (int)eLeMenuRecordingsIT::hasposter);
- tokenContainer->DefineIntToken("{posterwidth}", (int)eLeMenuRecordingsIT::posterwidth);
- tokenContainer->DefineIntToken("{posterheight}", (int)eLeMenuRecordingsIT::posterheight);
- tokenContainer->DefineIntToken("{fps}", (int)eLeMenuRecordingsIT::framesPerSecond);
- tokenContainer->DefineIntToken("{isHD}", (int)eLeMenuRecordingsIT::isHD);
- tokenContainer->DefineIntToken("{isUHD}", (int)eLeMenuRecordingsIT::isUHD);
- tokenContainer->DefineIntToken("{isRadio}", (int)eLeMenuRecordingsIT::isRadio);
- tokenContainer->DefineIntToken("{isRecording}", (int)eLeMenuRecordingsIT::isRecording);
- tokenContainer->DefineStringToken("{recchannelname}", (int)eLeMenuRecordingsST::recchannelname);
- tokenContainer->DefineStringToken("{recchannelid}", (int)eLeMenuRecordingsST::recchannelid);
+
+ // fill tokens common for eCeMenuRecordingsIT, eCeMenuRecordingsST, eLeMenuRecordingsIT, eLeMenuRecordingsST
+ DEF_TOK_CONT_MR(TOKEN_LMR_IT, TOKEN_LMR_ST);
+
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LMR_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LMR_IT::current);
+ tokenContainer->DefineIntToken("{separator}", (int)TOKEN_LMR_IT::separator);
+
InheritTokenContainer();
}
@@ -1785,14 +1966,13 @@ bool cLeMenuRecordings::Parse(bool forced) {
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::current, current);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::separator, !selectable);
+ ADD_TOKEN_LMR_IT(nummenuitem, num);
+ ADD_TOKEN_LMR_IT(current, current);
+ ADD_TOKEN_LMR_IT(separator, !selectable);
bool isFolder = (total > 0) ? true : false;
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::folder, isFolder);
-
+ ADD_TOKEN_LMR_IT(folder, isFolder);
char *recName = RecName(recording->Name(), level);
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::name, recName);
+ ADD_TOKEN_LMR_ST(name, recName);
const cRecording *usedRecording = recording;
@@ -1814,7 +1994,8 @@ bool cLeMenuRecordings::Parse(bool forced) {
delete folderInfo;
}
}
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isnew, usedRecording->IsNew());
+
+ ADD_TOKEN_LMR_IT(isnew, usedRecording->IsNew());
int percSeen = 0;
#if APIVERSNUM < 20108
@@ -1827,26 +2008,14 @@ bool cLeMenuRecordings::Parse(bool forced) {
percSeen = (double)framesSeen / (double)framesTotal * 100;
}
#endif
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::percentseen, percSeen);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::newrecordingsfolder, New);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::numrecordingsfolder, total);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::cutted, usedRecording->IsEdited());
-
- int recDuration = usedRecording->LengthInSeconds();
- bool watched = false;
- if (usedRecording->IsEdited()) {
- if (percSeen >= 85)
- watched = true;
- } else {
- int watchedLimit = recDuration * 85 / 100 - (Setup.MarginStop + 5)*60;
- int watchedTime = percSeen * recDuration / 100;
- if (watchedLimit > 0 && watchedTime > 0 && (watchedTime > watchedLimit))
- watched = true;
- }
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::watched, watched);
- const cEvent *event = NULL;
- const cRecordingInfo *info = usedRecording->Info();
+ // do the same stuff as in cCeMenuRecordings::Parse() (part 1)
+ int recDuration = usedRecording->LengthInSeconds(); \
+ ADD_TOKEN_MR1(TOKEN_LMR_IT);
+
+ const cEvent *event = NULL; \
+ const cRecordingInfo *info = usedRecording->Info(); \
+
if (!info) {
delete[] recName;
return true;
@@ -1856,14 +2025,14 @@ bool cLeMenuRecordings::Parse(bool forced) {
delete[] recName;
return true;
}
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::epgname, info->Title() ? info->Title() : recName);
+ ADD_TOKEN_LMR_ST(epgname, info->Title() ? info->Title() : recName);
delete[] recName;
if (info) {
- if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelname, info->ChannelName());
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelid, info->ChannelID().ToString());
- } else {
+ if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
+ ADD_TOKEN_LMR_ST(recchannelname, info->ChannelName());
+ ADD_TOKEN_LMR_ST(recchannelid, info->ChannelID().ToString());
+ } else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByChannelID(info->ChannelID());
@@ -1871,10 +2040,10 @@ bool cLeMenuRecordings::Parse(bool forced) {
const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
if (channel) {
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelname, channel->Name());
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::recchannelid, *channel->GetChannelID().ToString());
- }
- }
+ ADD_TOKEN_LMR_ST(recchannelname, channel->Name());
+ ADD_TOKEN_LMR_ST(recchannelid, *channel->GetChannelID().ToString());
+ }
+ }
}
cString recDate = event->GetDateString();
@@ -1885,33 +2054,8 @@ bool cLeMenuRecordings::Parse(bool forced) {
recTime = TimeString(start);
}
- time_t startTime = event->StartTime();
- if (!startTime)
- startTime = usedRecording->Start();
- struct tm * sStartTime = localtime(&startTime);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::year, sStartTime->tm_year + 1900);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::daynumeric, sStartTime->tm_mday);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::month, sStartTime->tm_mon+1);
-
- int duration = event->Duration() / 60;
- recDuration = (recDuration>0)?(recDuration / 60):0;
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::date, *recDate);
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::time, *recTime);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::duration, recDuration);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::durationhours, recDuration / 60);
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::durationminutes, *cString::sprintf("%.2d", recDuration%60));
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::durationevent, duration);
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::durationeventhours, duration / 60);
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::durationeventminutes, *cString::sprintf("%.2d", duration%60));
-
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::shorttext, info->ShortText());
- tokenContainer->AddStringToken((int)eLeMenuRecordingsST::description, info->Description());
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::framesPerSecond, info->FramesPerSecond());
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isHD, RecordingIsHD(event)); // detect HD from 'info'
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); // detect Radio from 'info' and FPS
- tokenContainer->AddIntToken((int)eLeMenuRecordingsIT::isRecording, usedRecording->IsInUse() & ruTimer);
- SetScraperRecordingPoster(tokenContainer, usedRecording, true);
+ // do the same stuff as in cCeMenuRecordings::Parse() (part 2)
+ ADD_TOKEN_MR2(TOKEN_LMR_IT, TOKEN_LMR_ST);
return true;
}
@@ -1995,48 +2139,16 @@ cCeMenuRecordings::~cCeMenuRecordings(void) {
void cCeMenuRecordings::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{name}", (int)eCeMenuRecordingsST::name);
- tokenContainer->DefineStringToken("{epgname}", (int)eCeMenuRecordingsST::epgname);
- tokenContainer->DefineStringToken("{shorttext}", (int)eCeMenuRecordingsST::shorttext);
- tokenContainer->DefineStringToken("{description}", (int)eCeMenuRecordingsST::description);
- tokenContainer->DefineStringToken("{date}", (int)eCeMenuRecordingsST::date);
- tokenContainer->DefineStringToken("{time}", (int)eCeMenuRecordingsST::time);
- tokenContainer->DefineStringToken("{durationminutes}", (int)eCeMenuRecordingsST::durationminutes);
- tokenContainer->DefineStringToken("{durationeventminutes}", (int)eCeMenuRecordingsST::durationeventminutes);
- tokenContainer->DefineStringToken("{thumbnailpath}", (int)eCeMenuRecordingsST::thumbnailpath);
- tokenContainer->DefineStringToken("{posterpath}", (int)eCeMenuRecordingsST::posterpath);
- tokenContainer->DefineIntToken("{menuitemx}", (int)eCeMenuRecordingsIT::menuitemx);
- tokenContainer->DefineIntToken("{menuitemy}", (int)eCeMenuRecordingsIT::menuitemy);
- tokenContainer->DefineIntToken("{menuitemwidth}", (int)eCeMenuRecordingsIT::menuitemwidth);
- tokenContainer->DefineIntToken("{menuitemheight}", (int)eCeMenuRecordingsIT::menuitemheight);
- tokenContainer->DefineIntToken("{numitem}", (int)eCeMenuRecordingsIT::numitem);
- tokenContainer->DefineIntToken("{new}", (int)eCeMenuRecordingsIT::isnew);
- tokenContainer->DefineIntToken("{percentseen}", (int)eCeMenuRecordingsIT::percentseen);
- tokenContainer->DefineIntToken("{watched}", (int)eCeMenuRecordingsIT::watched);
- tokenContainer->DefineIntToken("{cutted}", (int)eCeMenuRecordingsIT::cutted);
- tokenContainer->DefineIntToken("{folder}", (int)eCeMenuRecordingsIT::folder);
- tokenContainer->DefineIntToken("{daynumeric}", (int)eCeMenuRecordingsIT::daynumeric);
- tokenContainer->DefineIntToken("{month}", (int)eCeMenuRecordingsIT::month);
- tokenContainer->DefineIntToken("{year}", (int)eCeMenuRecordingsIT::year);
- tokenContainer->DefineIntToken("{duration}", (int)eCeMenuRecordingsIT::duration);
- tokenContainer->DefineIntToken("{durationhours}", (int)eCeMenuRecordingsIT::durationhours);
- tokenContainer->DefineIntToken("{durationevent}", (int)eCeMenuRecordingsIT::durationevent);
- tokenContainer->DefineIntToken("{durationeventhours}", (int)eCeMenuRecordingsIT::durationeventhours);
- tokenContainer->DefineIntToken("{numrecordingsfolder}", (int)eCeMenuRecordingsIT::numrecordingsfolder);
- tokenContainer->DefineIntToken("{newrecordingsfolder}", (int)eCeMenuRecordingsIT::newrecordingsfolder);
- tokenContainer->DefineIntToken("{hasposterthumbnail}", (int)eCeMenuRecordingsIT::hasposterthumbnail);
- tokenContainer->DefineIntToken("{thumbnailwidth}", (int)eCeMenuRecordingsIT::thumbnailwidth);
- tokenContainer->DefineIntToken("{thumbnailheight}", (int)eCeMenuRecordingsIT::thumbnailheight);
- tokenContainer->DefineIntToken("{hasposter}", (int)eCeMenuRecordingsIT::hasposter);
- tokenContainer->DefineIntToken("{posterwidth}", (int)eCeMenuRecordingsIT::posterwidth);
- tokenContainer->DefineIntToken("{posterheight}", (int)eCeMenuRecordingsIT::posterheight);
- tokenContainer->DefineIntToken("{fps}", (int)eCeMenuRecordingsIT::framesPerSecond);
- tokenContainer->DefineIntToken("{isHD}", (int)eCeMenuRecordingsIT::isHD);
- tokenContainer->DefineIntToken("{isUHD}", (int)eCeMenuRecordingsIT::isUHD);
- tokenContainer->DefineIntToken("{isRadio}", (int)eCeMenuRecordingsIT::isRadio);
- tokenContainer->DefineIntToken("{isRecording}", (int)eCeMenuRecordingsIT::isRecording);
- tokenContainer->DefineStringToken("{recchannelname}", (int)eCeMenuRecordingsST::recchannelname);
- tokenContainer->DefineStringToken("{recchannelid}", (int)eCeMenuRecordingsST::recchannelid);
+
+ // fill tokens common for eCeMenuRecordingsIT, eCeMenuRecordingsST, eLeMenuRecordingsIT, eLeMenuRecordingsST
+ DEF_TOK_CONT_MR(TOKEN_CMR_IT, TOKEN_CMR_ST);
+
+ tokenContainer->DefineIntToken("{menuitemx}", (int)TOKEN_CMR_IT::menuitemx);
+ tokenContainer->DefineIntToken("{menuitemy}", (int)TOKEN_CMR_IT::menuitemy);
+ tokenContainer->DefineIntToken("{menuitemwidth}", (int)TOKEN_CMR_IT::menuitemwidth);
+ tokenContainer->DefineIntToken("{menuitemheight}", (int)TOKEN_CMR_IT::menuitemheight);
+ tokenContainer->DefineIntToken("{numitem}", (int)TOKEN_CMR_IT::numitem);
+
InheritTokenContainer();
}
@@ -2057,7 +2169,7 @@ bool cCeMenuRecordings::Parse(bool forced) {
tokenContainer->Clear();
SetListTokens(tokenContainer);
bool isFolder = (total > 0) ? true : false;
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::folder, isFolder);
+ ADD_TOKEN_CMR_IT(folder, isFolder);
string name = recording->Name() ? recording->Name() : "";
string buffer = "";
@@ -2103,8 +2215,8 @@ bool cCeMenuRecordings::Parse(bool forced) {
}
}
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::name, buffer.c_str());
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isnew, usedRecording->IsNew());
+ ADD_TOKEN_CMR_ST(name, buffer.c_str());
+ ADD_TOKEN_CMR_IT(isnew, usedRecording->IsNew());
int percSeen = 0;
#if APIVERSNUM < 20108
@@ -2117,34 +2229,22 @@ bool cCeMenuRecordings::Parse(bool forced) {
percSeen = (double)framesSeen / (double)framesTotal * 100;
}
#endif
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::percentseen, percSeen);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::newrecordingsfolder, New);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::numrecordingsfolder, total);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::cutted, usedRecording->IsEdited());
-
- int recDuration = usedRecording->LengthInSeconds();
- bool watched = false;
- if (usedRecording->IsEdited()) {
- if (percSeen >= 85)
- watched = true;
- } else {
- int watchedLimit = recDuration * 85 / 100 - (Setup.MarginStop + 5)*60;
- int watchedTime = percSeen * recDuration / 100;
- if (watchedLimit > 0 && watchedTime > 0 && (watchedTime > watchedLimit))
- watched = true;
- }
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::watched, watched);
- const cEvent *event = NULL;
- const cRecordingInfo *info = usedRecording->Info();
+ // do the same stuff as in cLeMenuRecordings::Parse() (part 1)
+ int recDuration = usedRecording->LengthInSeconds(); \
+ ADD_TOKEN_MR1(TOKEN_CMR_IT);
+
+ const cEvent *event = NULL; \
+ const cRecordingInfo *info = usedRecording->Info(); \
+
if (!info) return true;
event = info->GetEvent();
if (!event) return true;
if (info) {
if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) {
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, info->ChannelName());
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, info->ChannelID().ToString());
+ ADD_TOKEN_CMR_ST(recchannelname, info->ChannelName());
+ ADD_TOKEN_CMR_ST(recchannelid, info->ChannelID().ToString());
} else {
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_CHANNELS_READ;
@@ -2153,13 +2253,13 @@ bool cCeMenuRecordings::Parse(bool forced) {
const cChannel *channel = Channels.GetByChannelID(info->ChannelID());
#endif
if (channel) {
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelname, channel->Name());
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::recchannelid, *channel->GetChannelID().ToString());
+ ADD_TOKEN_CMR_ST(recchannelname, channel->Name());
+ ADD_TOKEN_CMR_ST(recchannelid, *channel->GetChannelID().ToString());
}
}
}
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::epgname, info->Title() ? info->Title() : buffer.c_str());
+ ADD_TOKEN_CMR_ST(epgname, info->Title() ? info->Title() : buffer.c_str());
cString recDate = event->GetDateString();
cString recTime = event->GetTimeString();
if (strstr(*recDate, "1970")) {
@@ -2168,34 +2268,8 @@ bool cCeMenuRecordings::Parse(bool forced) {
recTime = TimeString(start);
}
- time_t startTime = event->StartTime();
- if (!startTime)
- startTime = usedRecording->Start();
- struct tm * sStartTime = localtime(&startTime);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::year, sStartTime->tm_year + 1900);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::daynumeric, sStartTime->tm_mday);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::month, sStartTime->tm_mon+1);
-
- int duration = event->Duration() / 60;
- recDuration = (recDuration>0)?(recDuration / 60):0;
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::date, *recDate);
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::time, *recTime);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::duration, recDuration);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::durationhours, recDuration / 60);
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::durationminutes, *cString::sprintf("%.2d", recDuration%60));
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::durationevent, duration);
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::durationeventhours, duration / 60);
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::durationeventminutes, *cString::sprintf("%.2d", duration%60));
-
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::shorttext, info->ShortText());
- tokenContainer->AddStringToken((int)eCeMenuRecordingsST::description, info->Description());
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::framesPerSecond, info->FramesPerSecond());
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isHD, RecordingIsHD(event)); // detect HD from 'info'
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); // detect Radio from 'info' and FPS
- tokenContainer->AddIntToken((int)eCeMenuRecordingsIT::isRecording, usedRecording->IsInUse() & ruTimer);
-
- SetScraperRecordingPoster(tokenContainer, usedRecording, false);
+ // do the same stuff as in cLeMenuRecordings::Parse() (part 2)
+ ADD_TOKEN_MR2(TOKEN_CMR_IT, TOKEN_CMR_ST);
return true;
}
@@ -2299,9 +2373,9 @@ cLeAudioTracks::~cLeAudioTracks(void) {
void cLeAudioTracks::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{title}", (int)eLeDisplayTracksST::title);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeDisplayTracksIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeDisplayTracksIT::current);
+ tokenContainer->DefineStringToken("{title}", (int)TOKEN_LDT_ST::title);
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LDT_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LDT_IT::current);
InheritTokenContainer();
}
@@ -2317,9 +2391,9 @@ bool cLeAudioTracks::Parse(bool forced) {
if (!dirty)
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeDisplayTracksIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeDisplayTracksIT::current, current);
- tokenContainer->AddStringToken((int)eLeDisplayTracksST::title, text);
+ ADD_TOKEN_LDT_IT(nummenuitem, num);
+ ADD_TOKEN_LDT_IT(current, current);
+ ADD_TOKEN_LDT_ST(title, text);
return true;
}
@@ -2339,20 +2413,20 @@ cLeChannelList::~cLeChannelList(void) {
void cLeChannelList::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{name}", (int)eLeChannelListST::name);
- tokenContainer->DefineStringToken("{channelid}", (int)eLeChannelListST::channelid);
- tokenContainer->DefineStringToken("{presenteventtitle}", (int)eLeChannelListST::presenteventtitle);
- tokenContainer->DefineStringToken("{presenteventstart}", (int)eLeChannelListST::presenteventstart);
- tokenContainer->DefineStringToken("{presenteventstop}", (int)eLeChannelListST::presenteventstop);
- tokenContainer->DefineStringToken("{nexteventtitle}", (int)eLeChannelListST::nexteventtitle);
- tokenContainer->DefineStringToken("{nexteventstart}", (int)eLeChannelListST::nexteventstart);
- tokenContainer->DefineStringToken("{nexteventstop}", (int)eLeChannelListST::nexteventstop);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeChannelListIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeChannelListIT::current);
- tokenContainer->DefineIntToken("{number}", (int)eLeChannelListIT::number);
- tokenContainer->DefineIntToken("{channellogoexists}", (int)eLeChannelListIT::channellogoexists);
- tokenContainer->DefineIntToken("{presenteventelapsed}", (int)eLeChannelListIT::presenteventelapsed);
- tokenContainer->DefineIntToken("{presenteventremaining}", (int)eLeChannelListIT::presenteventremaining);
+ tokenContainer->DefineStringToken("{name}", (int)TOKEN_LCL_ST::name);
+ tokenContainer->DefineStringToken("{channelid}", (int)TOKEN_LCL_ST::channelid);
+ tokenContainer->DefineStringToken("{presenteventtitle}", (int)TOKEN_LCL_ST::presenteventtitle);
+ tokenContainer->DefineStringToken("{presenteventstart}", (int)TOKEN_LCL_ST::presenteventstart);
+ tokenContainer->DefineStringToken("{presenteventstop}", (int)TOKEN_LCL_ST::presenteventstop);
+ tokenContainer->DefineStringToken("{nexteventtitle}", (int)TOKEN_LCL_ST::nexteventtitle);
+ tokenContainer->DefineStringToken("{nexteventstart}", (int)TOKEN_LCL_ST::nexteventstart);
+ tokenContainer->DefineStringToken("{nexteventstop}", (int)TOKEN_LCL_ST::nexteventstop);
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LCL_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LCL_IT::current);
+ tokenContainer->DefineIntToken("{number}", (int)TOKEN_LCL_IT::number);
+ tokenContainer->DefineIntToken("{channellogoexists}", (int)TOKEN_LCL_IT::channellogoexists);
+ tokenContainer->DefineIntToken("{presenteventelapsed}", (int)TOKEN_LCL_IT::presenteventelapsed);
+ tokenContainer->DefineIntToken("{presenteventremaining}", (int)TOKEN_LCL_IT::presenteventremaining);
InheritTokenContainer();
}
@@ -2367,13 +2441,13 @@ bool cLeChannelList::Parse(bool forced) {
if (!dirty)
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeChannelListIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeChannelListIT::current, current);
- tokenContainer->AddIntToken((int)eLeChannelListIT::number, channel->Number());
- tokenContainer->AddStringToken((int)eLeChannelListST::name, channel->Name());
+ ADD_TOKEN_LCL_IT(nummenuitem, num);
+ ADD_TOKEN_LCL_IT(current, current);
+ ADD_TOKEN_LCL_IT(number, channel->Number());
+ ADD_TOKEN_LCL_ST(name, channel->Name());
cString channelID = channel->GetChannelID().ToString();
- tokenContainer->AddStringToken((int)eLeChannelListST::channelid, *channelID);
- tokenContainer->AddIntToken((int)eLeChannelListIT::channellogoexists, imgCache->LogoExists(*channelID));
+ ADD_TOKEN_LCL_ST(channelid, *channelID);
+ ADD_TOKEN_LCL_IT(channellogoexists, imgCache->LogoExists(*channelID));
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_SCHEDULES_READ;
@@ -2386,19 +2460,19 @@ bool cLeChannelList::Parse(bool forced) {
if (schedule) {
const cEvent *presentEvent = schedule->GetPresentEvent();
if (presentEvent) {
- tokenContainer->AddStringToken((int)eLeChannelListST::presenteventtitle, presentEvent->Title());
- tokenContainer->AddStringToken((int)eLeChannelListST::presenteventstart, *presentEvent->GetTimeString());
- tokenContainer->AddStringToken((int)eLeChannelListST::presenteventstop, *presentEvent->GetEndTimeString());
- tokenContainer->AddIntToken((int)eLeChannelListIT::presenteventelapsed, (time(0) - presentEvent->StartTime())/60);
- tokenContainer->AddIntToken((int)eLeChannelListIT::presenteventremaining, presentEvent->Duration()/60 - (time(0) - presentEvent->StartTime())/60);
+ ADD_TOKEN_LCL_ST(presenteventtitle, presentEvent->Title());
+ ADD_TOKEN_LCL_ST(presenteventstart, *presentEvent->GetTimeString());
+ ADD_TOKEN_LCL_ST(presenteventstop, *presentEvent->GetEndTimeString());
+ ADD_TOKEN_LCL_IT(presenteventelapsed, (time(0) - presentEvent->StartTime())/60);
+ ADD_TOKEN_LCL_IT(presenteventremaining, presentEvent->Duration()/60 - (time(0) - presentEvent->StartTime())/60);
}
const cList<cEvent> *events = schedule->Events();
if (events && presentEvent) {
const cEvent *nextEvent = events->Next(presentEvent);
if (nextEvent) {
- tokenContainer->AddStringToken((int)eLeChannelListST::nexteventtitle, nextEvent->Title());
- tokenContainer->AddStringToken((int)eLeChannelListST::nexteventstart, *nextEvent->GetTimeString());
- tokenContainer->AddStringToken((int)eLeChannelListST::nexteventstop, *nextEvent->GetEndTimeString());
+ ADD_TOKEN_LCL_ST(nexteventtitle, nextEvent->Title());
+ ADD_TOKEN_LCL_ST(nexteventstart, *nextEvent->GetTimeString());
+ ADD_TOKEN_LCL_ST(nexteventstop, *nextEvent->GetEndTimeString());
}
}
}
@@ -2424,10 +2498,10 @@ cLeGroupList::~cLeGroupList(void) {
void cLeGroupList::SetTokenContainer(void) {
tokenContainer = new skindesignerapi::cTokenContainer();
- tokenContainer->DefineStringToken("{groupname}", (int)eLeGroupListST::groupname);
- tokenContainer->DefineIntToken("{numchannels}", (int)eLeGroupListIT::numchannels);
- tokenContainer->DefineIntToken("{nummenuitem}", (int)eLeGroupListIT::nummenuitem);
- tokenContainer->DefineIntToken("{current}", (int)eLeGroupListIT::current);
+ tokenContainer->DefineStringToken("{groupname}", (int)TOKEN_LGL_ST::groupname);
+ tokenContainer->DefineIntToken("{numchannels}", (int)TOKEN_LGL_IT::numchannels);
+ tokenContainer->DefineIntToken("{nummenuitem}", (int)TOKEN_LGL_IT::nummenuitem);
+ tokenContainer->DefineIntToken("{current}", (int)TOKEN_LGL_IT::current);
InheritTokenContainer();
}
@@ -2443,9 +2517,11 @@ bool cLeGroupList::Parse(bool forced) {
if (!dirty)
return false;
tokenContainer->Clear();
- tokenContainer->AddIntToken((int)eLeGroupListIT::nummenuitem, num);
- tokenContainer->AddIntToken((int)eLeGroupListIT::current, current);
- tokenContainer->AddIntToken((int)eLeGroupListIT::numchannels, numChannels);
- tokenContainer->AddStringToken((int)eLeGroupListST::groupname, group);
+ ADD_TOKEN_LGL_IT(nummenuitem, num);
+ ADD_TOKEN_LGL_IT(current, current);
+ ADD_TOKEN_LGL_IT(numchannels, numChannels);
+ ADD_TOKEN_LGL_ST(groupname, group);
return true;
}
+
+// vim: ts=4 sw=4 et