diff options
Diffstat (limited to 'menusetup.c')
-rw-r--r-- | menusetup.c | 222 |
1 files changed, 163 insertions, 59 deletions
diff --git a/menusetup.c b/menusetup.c index ddf9613..dd98538 100644 --- a/menusetup.c +++ b/menusetup.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: menusetup.c 0.2 2004/10/10 12:23:20 hflor Exp $ + * $Id: menusetup.c 0.5 2005/11/17 21:05:05 hflor Exp $ */ #include "menusetup.h" @@ -11,14 +11,19 @@ #include "menuundelete.h" #include "i18n.h" #include "vdrtools.h" +#include "menueditkeys.h" +#include "menunoselectitem.h" #include <vdr/plugin.h> +#include <vdr/interface.h> +#include <typeinfo> // --- cMenuSetupUndelete ------------------------------------------------------- -cMenuSetupUndelete::cMenuSetupUndelete(void) +cMenuSetupUndelete::cMenuSetupUndelete(int FunctionToChange) { -#ifdef PL_Debug2 - dsyslog("%s: cMenuSetupUndelete::cMenuSetupUndelete", plugin_name); +#ifdef UND_Debug + objID = ++cMenuSetupUndelete_nextID; + d2syslog("cMenuSetupUndelete::cMenuSetupUndelete", "%s", ""); #endif store = false; @@ -27,25 +32,36 @@ cMenuSetupUndelete::cMenuSetupUndelete(void) // var pos7 StoreValue (commandline_preference); - StoreValue (confirmdel); - StoreValue (confirmdeldir); - StoreValue (confirmundel); - StoreValue (confirmundeldir); + StoreValue (confirmpurge); + StoreValue (confirmpurgedir); + StoreValue (confirmpurgeall); + StoreValue (confirmsalvage); + StoreValue (confirmsalvagedir); + StoreValue (confirmsalvageall); + StoreValue (firstsalvage); + for (int i = 2; i < MaxFunctionName; i++) + StoreValue (functionkey[i]); StoreValueFile (mainmenu_name); StoreValue (mainmenu_visible); + StoreValue (numkey); + StoreValue (okkey); + for (int i = 0; i < 2; i++) + { + StoreValue (functionline_b_e[i]); + StoreValue (functionline_num[i]); + } StoreValue (verbose); #undef StoreValue #undef StoreValueFile - Set(); + show_setupfunction = FunctionToChange > 0; + Set(FunctionToChange); } cMenuSetupUndelete::~cMenuSetupUndelete(void) { -#ifdef PL_Debug2 - dsyslog("%s: cMenuSetupUndelete::~cMenuSetupUndelete store=%s", plugin_name, store ? "true" : "false"); -#endif + d2syslog("cMenuSetupUndelete::~cMenuSetupUndelete", "store=%s", store ? "true" : "false"); if (!store) { @@ -54,12 +70,24 @@ cMenuSetupUndelete::~cMenuSetupUndelete(void) // var pos8 RestoreValue (commandline_preference); - RestoreValue (confirmdel); - RestoreValue (confirmdeldir); - RestoreValue (confirmundel); - RestoreValue (confirmundeldir); + RestoreValue (confirmpurge); + RestoreValue (confirmpurgedir); + RestoreValue (confirmpurgeall); + RestoreValue (confirmsalvage); + RestoreValue (confirmsalvagedir); + RestoreValue (confirmsalvageall); + RestoreValue (firstsalvage); + for (int i = 2; i < MaxFunctionName; i++) + RestoreValue (functionkey[i]); RestoreValueFile (mainmenu_name); RestoreValue (mainmenu_visible); + RestoreValue (numkey); + RestoreValue (okkey); + for (int i = 0; i < 2; i++) + { + RestoreValue (functionline_b_e[i]); + RestoreValue (functionline_num[i]); + } RestoreValue (verbose); #undef RestoreValue @@ -69,21 +97,37 @@ cMenuSetupUndelete::~cMenuSetupUndelete(void) void cMenuSetupUndelete::Store(void) { -#ifdef PL_Debug2 - dsyslog("%s: cMenuSetupUndelete::Store", plugin_name); -#endif + d2syslog("cMenuSetupUndelete::Store", "%s", ""); #define SaveValue(T, N) if (T.u != T.o) SetupStore(N, T.u); #define SaveValueFile(T, N) if (strcmp(T.u, T.o)) SetupStore(N, T.u); // var pos9 SaveValue (commandline_preference, "commandline"); - SaveValue (confirmdel, "confdel"); - SaveValue (confirmdeldir, "confdeldir"); - SaveValue (confirmundel, "confundel"); - SaveValue (confirmundeldir, "confundeldir"); + SaveValue (confirmpurge, "confpurge1"); + SaveValue (confirmpurgedir, "confpurge2"); + SaveValue (confirmpurgeall, "confpurge3"); + SaveValue (confirmsalvage, "confsalvage1"); + SaveValue (confirmsalvagedir, "confsalvage2"); + SaveValue (confirmsalvageall, "confsalvage3"); + SaveValue (firstsalvage, "firstsalvage"); + SaveValue (functionkey[2], "functionkey02"); + SaveValue (functionkey[3], "functionkey03"); + SaveValue (functionkey[4], "functionkey04"); + SaveValue (functionkey[5], "functionkey05"); + SaveValue (functionkey[6], "functionkey06"); + SaveValue (functionkey[7], "functionkey07"); + SaveValue (functionkey[8], "functionkey08"); + SaveValue (functionkey[9], "functionkey09"); + SaveValue (functionkey[10], "functionkey10"); SaveValueFile (mainmenu_name, "name"); SaveValue (mainmenu_visible, "visible"); + SaveValue (numkey, "numkey"); + SaveValue (okkey, "okkey"); + SaveValue (functionline_b_e[0], "purgebe"); + SaveValue (functionline_num[0], "purgenum"); + SaveValue (functionline_b_e[1], "salvagebe"); + SaveValue (functionline_num[1], "salvagenum"); SaveValue (verbose, "verbose"); #undef SaveValue @@ -92,12 +136,10 @@ void cMenuSetupUndelete::Store(void) store = true; } -void cMenuSetupUndelete::Set(void) +void cMenuSetupUndelete::Set(int FunctionToSelect) { -#ifdef PL_Debug2 - dsyslog("%s: cMenuSetupUndelete::Set Current=%d", plugin_name, Current()); -#endif int current = Current(); + d2syslog("cMenuSetupUndelete::Set", "Current=%d", current); Clear(); #define DisplayLine(T) !T.h && (!commandline_preference.u || !T.c) @@ -109,61 +151,123 @@ void cMenuSetupUndelete::Set(void) Add(new cMenuEditBoolItem(tr("Setup$Visible in Mainmenu"), &mainmenu_visible.u)); if (DisplayLine(mainmenu_name) && mainmenu_visible.u) Add(new cMenuEditStrItem (tr("Setup$ Name for Mainmenu"), mainmenu_name.u, sizeof(mainmenu_name.u), tr(FileNameChars))); - if (DisplayLine(confirmdel)) - Add(new cMenuEditBoolItem(tr("Setup$Confirm delete deleted recordings"), &confirmdel.u)); - if (DisplayLine(confirmdeldir)) - Add(new cMenuEditBoolItem(tr("Setup$Confirm delete directories"), &confirmdeldir.u)); - if (DisplayLine(confirmundel)) - Add(new cMenuEditBoolItem(tr("Setup$Confirm undelete deleted recordings"), &confirmundel.u)); - if (DisplayLine(confirmundeldir)) - Add(new cMenuEditBoolItem(tr("Setup$Confirm undelete directories"), &confirmundeldir.u)); + if (DisplayLine(confirmpurge)) + Add(new cMenuEditBoolItem(tr("Setup$Confirm purge deleted recordings"), &confirmpurge.u)); + if (DisplayLine(confirmpurgedir)) + Add(new cMenuEditBoolItem(tr("Setup$Confirm purge directories"), &confirmpurgedir.u)); + if (DisplayLine(confirmpurgeall)) + Add(new cMenuEditBoolItem(tr("Setup$Confirm purge all deleted recordings"), &confirmpurgeall.u)); + if (DisplayLine(confirmsalvage)) + Add(new cMenuEditBoolItem(tr("Setup$Confirm salvage deleted recordings"), &confirmsalvage.u)); + if (DisplayLine(confirmsalvagedir)) + Add(new cMenuEditBoolItem(tr("Setup$Confirm salvage directories"), &confirmsalvagedir.u)); + if (DisplayLine(confirmsalvageall)) + Add(new cMenuEditBoolItem(tr("Setup$Confirm salvage all deleted recordings"), &confirmsalvageall.u)); + if (DisplayLine(functionline_b_e[0])) + Add(new cMenuEditStraItem(tr("Setup$Purgeline position"), &functionline_b_e[0].u, 4, FunctionLine)); + if (DisplayLine(functionline_num[0]) && functionline_b_e[0].u == 0x3) + Add(new cMenuEditIntItem (tr("Setup$ Display bottom purge ex lines"), &functionline_num[0].u, 1, 200)); + if (DisplayLine(functionline_b_e[1])) + Add(new cMenuEditStraItem(tr("Setup$Salvageline position"), &functionline_b_e[1].u, 4, FunctionLine)); + if (DisplayLine(functionline_num[1]) && functionline_b_e[1].u == 0x3) + Add(new cMenuEditIntItem (tr("Setup$ Display bottom salvage ex lines"), &functionline_num[1].u, 1, 200)); + if ((DisplayLine(functionline_b_e[0]) || DisplayLine(functionline_b_e[1])) && DisplayLine(firstsalvage) && ((functionline_b_e[0].u & functionline_b_e[1].u & 0x1) != 0x0 || (functionline_b_e[0].u & functionline_b_e[1].u & 0x2) != 0x0)) + Add(new cMenuEditBoolItem(tr("Setup$ inward lines"), &firstsalvage.u, tr("Choise$purge"), tr("Choise$salvage"))); + if (FunctionToSelect > 0) + current = Count(); // pre select this line for display + Add(new cMenuEditBoolItem(tr("Setup$Change assigned functionkeys"), &show_setupfunction)); + if (show_setupfunction) + { + for (int i = 2; i < MaxFunctionName; i++) + { + if (FunctionToSelect == i) + current = Count(); + char *name = NULL; + asprintf(&name, tr("Setup$ Key for function-%s"), FunctionName[i]); + Add(new cMenuEditKeysItem(name, &functionkey[i].u)); + free(name); + } + Add(new cMenuOsdNoSelectItem(tr("Setup$ ** Spezial handled keys **"))); + if (FunctionToSelect == 1 && okkey.u == 1) + current = Count(); + Add(new cMenuEditStraItem(tr("Setup$ OK-key function"), &okkey.u, MaxFunctionName, FunctionName)); + if (FunctionToSelect == 1 && numkey.u == 1) + current = Count(); + Add(new cMenuEditStraItem(tr("Setup$ Numerickey select the entry and"), &numkey.u, 4, FunctionName)); + } if (DisplayLine(verbose)) Add(new cMenuEditBoolItem(tr("Setup$Verbose Log Mode"), &verbose.u)); #undef DisplayLine -#ifdef PL_Debug2 - dsyslog("%s: Count=%d", plugin_name, Count()); -#endif + d2syslog("cMenuSetupUndelete::Set", "Count=%d", Count()); SetCurrent(Get(current)); + Display(); } eOSState cMenuSetupUndelete::ProcessKey(eKeys Key) { -#ifdef PL_Debug3 - bool noneKey = Key == kNone; - if (!noneKey) - dsyslog("%s: cMenuSetupUndelete::ProcessKey Key=%s", plugin_name, KeyName(Key)); -#endif + d3ProcessKey1("cMenuSetupUndelete::ProcessKey"); + static bool oldhelpkeys; + bool helpkeys; int m_commandline_preference = commandline_preference.u; int m_mainmenu_visible = mainmenu_visible.u; + int m_show_setupfunction = show_setupfunction; + int m_purge_b_e = functionline_b_e[0].u; + int m_salvage_b_e = functionline_b_e[1].u; - eOSState state = cMenuSetupPage::ProcessKey(Key); -#ifdef PL_Debug3 - if (!noneKey || (state != osUnknown && state != osContinue)) + eOSState state = osUnknown; + + if (Key == kOk) { - dsyslog("%s: cMenuSetupUndelete::ProcessKey OSState=%s", plugin_name, OSStateName(state)); - noneKey = false; + int function1 = 0; + int function2 = 0; + for (int i = 2; i < MaxFunctionName; i++) + if (functionkey[i].u) + for (int j = i + 1; j < MaxFunctionName; j++) + if (functionkey[j].u && functionkey[i].u == functionkey[j].u && (i != 6 || j != 7) && (i != 8 || j != 9)) + { + function1 = i; + function2 = j; + i = j = MaxFunctionName; + } + if (function1) + { + show_setupfunction = true; + Set(function2); + char *info = NULL; + asprintf(&info, tr("Error$Key for funtion %s and %s identical."), FunctionName[function1], FunctionName[function2]); + INFO(info); + free(info); + state = osContinue; + } } -#endif - if (m_commandline_preference != commandline_preference.u || m_mainmenu_visible != mainmenu_visible.u) - { + if (state == osUnknown) + state = cMenuSetupPage::ProcessKey(Key); + d3ProcessKey2("cMenuSetupUndelete::ProcessKey"); + + if (m_commandline_preference != commandline_preference.u || m_mainmenu_visible != mainmenu_visible.u || m_show_setupfunction != show_setupfunction || m_purge_b_e != functionline_b_e[0].u || m_salvage_b_e != functionline_b_e[1].u) Set(); - Display(); + + helpkeys = typeid(*Get(Current())) == typeid(cMenuEditKeysItem); + if (oldhelpkeys != helpkeys) + { + oldhelpkeys = helpkeys; + if (helpkeys) + SetHelp(tr("Setup$Select"), tr("Setup$Select"), tr("Setup$Select"), tr("Setup$Select")); + else + SetHelp(NULL, NULL, NULL, NULL); } switch (state) { - case osUser1: state = AddSubMenu(new cMenuUndelete); - break; - default: break; + case osUser1: state = AddSubMenu(new cMenuUndelete); + break; + default: break; } -#ifdef PL_Debug3 - if (!noneKey || (state != osUnknown && state != osContinue)) - dsyslog("%s: cMenuSetupUndelete::ProcessKey returned OSState=%s", plugin_name, OSStateName(state)); -#endif + d3ProcessKey3("cMenuSetupUndelete::ProcessKey"); return state; } |