diff options
author | louis <louis.braun@gmx.de> | 2014-01-17 16:11:12 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2014-01-17 16:11:12 +0100 |
commit | 662a17df88a607e0179b2bb63cd984fafcc5d784 (patch) | |
tree | fdadf1aa85b4d3a9d4a7e8f14c5013f68500b75e | |
parent | 497f95aa6f06d41496de23ad4ddf5229d33dbbe5 (diff) | |
download | vdr-plugin-tvguide-662a17df88a607e0179b2bb63cd984fafcc5d784.tar.gz vdr-plugin-tvguide-662a17df88a607e0179b2bb63cd984fafcc5d784.tar.bz2 |
Added possibility to create timer from favorites results
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | recmenuitem.h | 5 | ||||
-rw-r--r-- | recmenumanager.c | 33 | ||||
-rw-r--r-- | recmenumanager.h | 1 | ||||
-rw-r--r-- | recmenus.c | 11 | ||||
-rw-r--r-- | recmenus.h | 5 |
6 files changed, 45 insertions, 11 deletions
@@ -107,3 +107,4 @@ Version 1.1.0 are displayed - Favorites menu with EPG Search favorite timers with blue key - Display baseline for current time +- Added possibility to create timer from favorites results diff --git a/recmenuitem.h b/recmenuitem.h index 68d08aa..7f67777 100644 --- a/recmenuitem.h +++ b/recmenuitem.h @@ -15,6 +15,7 @@ enum eRecMenuState { rmsRefresh, rmsContinue, rmsClose, + rmsDisabled, //INSTANT TIMER rmsInstantRecord, rmsInstantRecordFolder, @@ -69,7 +70,9 @@ enum eRecMenuState { rmsTimelineTimerEdit, rmsTimelineTimerSave, rmsTimelineTimerDelete, - rmsDisabled, + //FAVORITES + rmsFavoritesRecord, + rmsFavoritesRecordConfirm, }; enum eDependend { diff --git a/recmenumanager.c b/recmenumanager.c index da6af92..4a8d119 100644 --- a/recmenumanager.c +++ b/recmenumanager.c @@ -9,6 +9,7 @@ cRecMenuManager::cRecMenuManager(void) { active = false;
activeMenu = NULL;
activeMenuBuffer = NULL;
+ activeMenuBuffer2 = NULL;
recManager = new cRecManager();
recManager->SetEPGSearchPlugin();
timerConflicts = NULL;
@@ -315,6 +316,7 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) { //caller: cRecMenuSearchTimerEdit, cRecMenuSearchTimerTemplatesCreate, cRecMenuSearchTimers, cRecMenuFavorites
//show results of currently choosen search timer
cTVGuideSearchTimer searchTimer;
+ bool showRecIcon = false;
if (cRecMenuSearchTimerEdit *menu = dynamic_cast<cRecMenuSearchTimerEdit*>(activeMenu)) {
searchTimer = menu->GetSearchTimer();
} else if (cRecMenuSearchTimers *menu = dynamic_cast<cRecMenuSearchTimers*>(activeMenu)) {
@@ -326,6 +328,7 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) { searchTimer.Parse(true);
} else if (cRecMenuFavorites *menu = dynamic_cast<cRecMenuFavorites*>(activeMenu)) {
searchTimer = menu->GetFavorite();
+ showRecIcon = true;
} else break;
int numSearchResults = 0;
std::string searchString = searchTimer.BuildSearchString();
@@ -333,7 +336,7 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) { if (numSearchResults) {
activeMenuBuffer = activeMenu;
activeMenuBuffer->Hide();
- activeMenu = new cRecMenuSearchTimerResults(searchTimer.SearchString(), searchResult, numSearchResults);
+ activeMenu = new cRecMenuSearchTimerResults(searchTimer.SearchString(), searchResult, numSearchResults, "", showRecIcon?rmsFavoritesRecord:rmsDisabled);
activeMenu->Display();
} else {
activeMenuBuffer = activeMenu;
@@ -531,10 +534,10 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) { } else break;
if (!ev)
break;
- cTimer *timer = recManager->createTimer(ev, "");
+ recManager->createTimer(ev, "");
activeMenuBuffer = activeMenu;
activeMenuBuffer->Hide();
- activeMenu = new cRecMenuSearchConfirmTimer(ev);
+ activeMenu = new cRecMenuSearchConfirmTimer(ev, rmsSearchRecordConfirm);
activeMenu->Display();
break;}
case rmsSearchRecordConfirm:
@@ -695,6 +698,30 @@ eOSState cRecMenuManager::StateMachine(eRecMenuState nextState) { activeMenu->Display();
break; }
/**********************************************************************************************
+ * FAVORITES
+ *********************************************************************************************/
+ case rmsFavoritesRecord: {
+ //caller: cRecMenuSearchTimerResults
+ const cEvent *ev = NULL;
+ if (cRecMenuSearchTimerResults *menu = dynamic_cast<cRecMenuSearchTimerResults*>(activeMenu)) {
+ ev = menu->GetEvent();
+ } else break;
+ if (!ev)
+ break;
+ recManager->createTimer(ev, "");
+ activeMenuBuffer2 = activeMenu;
+ activeMenuBuffer2->Hide();
+ activeMenu = new cRecMenuSearchConfirmTimer(ev, rmsFavoritesRecordConfirm);
+ activeMenu->Display();
+ break;}
+ case rmsFavoritesRecordConfirm:
+ delete activeMenu;
+ activeMenu = activeMenuBuffer2;
+ activeMenuBuffer2 = NULL;
+ activeMenu->Show();
+ break;
+
+ /**********************************************************************************************
* COMMON
*********************************************************************************************/
case rmsClose: {
diff --git a/recmenumanager.h b/recmenumanager.h index 030b6bd..b212ecc 100644 --- a/recmenumanager.h +++ b/recmenumanager.h @@ -13,6 +13,7 @@ private: bool active;
cRecMenu *activeMenu;
cRecMenu *activeMenuBuffer;
+ cRecMenu *activeMenuBuffer2;
const cEvent *event;
cRecManager *recManager;
cTVGuideTimerConflicts *timerConflicts;
@@ -958,8 +958,9 @@ cRecMenuSearchTimerTemplatesCreate::cRecMenuSearchTimerTemplatesCreate(TVGuideEP // --- cRecMenuSearchTimerResults --------------------------------------------------------- -cRecMenuSearchTimerResults::cRecMenuSearchTimerResults(std::string searchString, const cEvent **searchResults, int numResults, std::string templateName) { +cRecMenuSearchTimerResults::cRecMenuSearchTimerResults(std::string searchString, const cEvent **searchResults, int numResults, std::string templateName, eRecMenuState action2) { this->searchResults = searchResults; + this->action2 = action2; SetWidthPercent(70); cString message1 = tr("search results for Search Timer"); cString message2 = tr("search result for Search Timer"); @@ -979,7 +980,7 @@ cRecMenuSearchTimerResults::cRecMenuSearchTimerResults(std::string searchString, SetFooter(buttons); if (searchResults && (numResults > 0)) { for (int i=0; i<numResults; i++) { - if (!AddMenuItemInitial(new cRecMenuItemEvent(searchResults[i], rmsSearchShowInfo, rmsDisabled, (i==0)?true:false))) + if (!AddMenuItemInitial(new cRecMenuItemEvent(searchResults[i], rmsSearchShowInfo, action2, (i==0)?true:false))) break; } } @@ -990,7 +991,7 @@ cRecMenuSearchTimerResults::cRecMenuSearchTimerResults(std::string searchString, cRecMenuItem *cRecMenuSearchTimerResults::GetMenuItem(int number) { if ((number >= 0) && (number < numResults)) { - cRecMenuItem *result = new cRecMenuItemEvent(searchResults[number], rmsSearchShowInfo, rmsDisabled, false); + cRecMenuItem *result = new cRecMenuItemEvent(searchResults[number], rmsSearchShowInfo, action2, false); return result; } return NULL; @@ -1192,7 +1193,7 @@ const cEvent *cRecMenuSearchResults::GetEvent(void) { // --- cRecMenuSearchConfirmTimer --------------------------------------------------------- -cRecMenuSearchConfirmTimer::cRecMenuSearchConfirmTimer(const cEvent *event) { +cRecMenuSearchConfirmTimer::cRecMenuSearchConfirmTimer(const cEvent *event, eRecMenuState nextAction) { SetWidthPercent(50); cString channelName = Channels.GetByChannelID(event->ChannelID())->Name(); cString message = tr("Timer created"); @@ -1207,7 +1208,7 @@ cRecMenuSearchConfirmTimer::cRecMenuSearchConfirmTimer(const cEvent *event) { cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*text); infoItem->CalculateHeight(width - 2 * border); AddMenuItem(infoItem); - AddMenuItem(new cRecMenuItemButton(tr("OK"), rmsSearchRecordConfirm, true, true)); + AddMenuItem(new cRecMenuItemButton(tr("OK"), nextAction, true, true)); CalculateHeight(); CreatePixmap(); Arrange(); @@ -291,8 +291,9 @@ class cRecMenuSearchTimerResults: public cRecMenu { private:
const cEvent **searchResults;
int numResults;
+ eRecMenuState action2;
public:
- cRecMenuSearchTimerResults(std::string searchString, const cEvent **searchResults, int numResults, std::string templateName = "");
+ cRecMenuSearchTimerResults(std::string searchString, const cEvent **searchResults, int numResults, std::string templateName = "", eRecMenuState action2 = rmsDisabled);
cRecMenuItem *GetMenuItem(int number);
int GetTotalNumMenuItems(void);
virtual ~cRecMenuSearchTimerResults(void) {
@@ -379,7 +380,7 @@ public: // --- cRecMenuSearchConfirmTimer ---------------------------------------------------------
class cRecMenuSearchConfirmTimer: public cRecMenu {
public:
- cRecMenuSearchConfirmTimer(const cEvent *event);
+ cRecMenuSearchConfirmTimer(const cEvent *event, eRecMenuState nextAction);
virtual ~cRecMenuSearchConfirmTimer(void) {};
};
|