summaryrefslogtreecommitdiff
path: root/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'setup.c')
-rw-r--r--setup.c209
1 files changed, 209 insertions, 0 deletions
diff --git a/setup.c b/setup.c
new file mode 100644
index 0000000..57d2168
--- /dev/null
+++ b/setup.c
@@ -0,0 +1,209 @@
+#include "setup.h"
+
+cTvguideSetup::cTvguideSetup() {
+ tmpTvguideConfig = tvguideConfig;
+ Setup();
+}
+
+cTvguideSetup::~cTvguideSetup() {
+}
+
+
+void cTvguideSetup::Setup(void) {
+ int currentItem = Current();
+ Clear();
+
+ Add(new cOsdItem(tr("General Settings")));
+ Add(new cOsdItem(tr("Screen Presentation")));
+ Add(new cOsdItem(tr("Fonts and Fontsizes")));
+
+ SetCurrent(Get(currentItem));
+ Display();
+}
+
+eOSState cTvguideSetup::ProcessKey(eKeys Key) {
+ bool hadSubMenu = HasSubMenu();
+ eOSState state = cMenuSetupPage::ProcessKey(Key);
+ if (hadSubMenu && Key == kOk)
+ Store();
+
+ if (!hadSubMenu && (state == osUnknown || Key == kOk)) {
+ if ((Key == kOk && !hadSubMenu)) {
+ const char* ItemText = Get(Current())->Text();
+ if (strcmp(ItemText, tr("General Settings")) == 0)
+ state = AddSubMenu(new cMenuSetupGeneral(&tmpTvguideConfig));
+ if (strcmp(ItemText, tr("Screen Presentation")) == 0)
+ state = AddSubMenu(new cMenuSetupScreenLayout(&tmpTvguideConfig));
+ if (strcmp(ItemText, tr("Fonts and Fontsizes")) == 0)
+ state = AddSubMenu(new cMenuSetupFont(&tmpTvguideConfig));
+ }
+ }
+ return state;
+}
+
+void cTvguideSetup::Store(void) {
+
+ tvguideConfig = tmpTvguideConfig;
+
+ SetupStore("themeIndex", tvguideConfig.themeIndex);
+ SetupStore("useBlending", tvguideConfig.useBlending);
+ SetupStore("roundedCorners", tvguideConfig.roundedCorners);
+ SetupStore("timeFormat", tvguideConfig.timeFormat);
+ SetupStore("channelCols", tvguideConfig.channelCols);
+ SetupStore("displayTime", tvguideConfig.displayTime);
+ SetupStore("bigStepHours", tvguideConfig.bigStepHours);
+ SetupStore("hugeStepHours", tvguideConfig.hugeStepHours);
+ SetupStore("jumpChannels", tvguideConfig.jumpChannels);
+ SetupStore("hideChannelLogos", tvguideConfig.hideChannelLogos);
+ SetupStore("logoExtension", tvguideConfig.logoExtension);
+ SetupStore("logoWidth", tvguideConfig.logoWidth);
+ SetupStore("logoHeight", tvguideConfig.logoHeight);
+ SetupStore("hideEpgImages", tvguideConfig.hideEpgImages);
+ SetupStore("epgImageWidth", tvguideConfig.epgImageWidth);
+ SetupStore("epgImageHeight", tvguideConfig.epgImageHeight);
+ SetupStore("epgImageHeight", tvguideConfig.epgImageHeight);
+ SetupStore("timeColWidth", tvguideConfig.timeColWidth);
+ SetupStore("headerHeight", tvguideConfig.headerHeight);
+ SetupStore("footerHeight", tvguideConfig.footerHeight);
+ SetupStore("fontIndex", tvguideConfig.fontIndex);
+ SetupStore("fontHeaderSize", tvguideConfig.fontHeaderSize);
+ SetupStore("fontGridSize", tvguideConfig.fontGridSize);
+ SetupStore("fontGridSmallSize", tvguideConfig.fontGridSmallSize);
+ SetupStore("fontTimeLineWeekdaySize", tvguideConfig.fontTimeLineWeekdaySize);
+ SetupStore("fontTimeLineDateSize", tvguideConfig.fontTimeLineDateSize);
+ SetupStore("fontTimeLineTimeSize", tvguideConfig.fontTimeLineTimeSize);
+ SetupStore("fontButtonSize", tvguideConfig.fontButtonSize);
+ SetupStore("fontDetailViewSize", tvguideConfig.fontDetailViewSize);
+ SetupStore("fontDetailHeaderSize", tvguideConfig.fontDetailHeaderSize);
+ SetupStore("fontMessageBoxSize", tvguideConfig.fontMessageBoxSize);
+ SetupStore("fontMessageBoxLargeSize", tvguideConfig.fontMessageBoxLargeSize);
+}
+
+cMenuSetupSubMenu::cMenuSetupSubMenu(const char* Title, cTvguideConfig* data) : cOsdMenu(Title, 30) {
+ tmpTvguideConfig = data;
+}
+
+cOsdItem *cMenuSetupSubMenu::InfoItem(const char *label, const char *value) {
+ cOsdItem *item;
+ item = new cOsdItem(cString::sprintf("%s: %s", label, value));
+ item->SetSelectable(false);
+ return item;
+}
+
+eOSState cMenuSetupSubMenu::ProcessKey(eKeys Key) {
+ eOSState state = cOsdMenu::ProcessKey(Key);
+ if (state == osUnknown) {
+ switch (Key) {
+ case kOk:
+ return osBack;
+ default:
+ break;
+ }
+ }
+ return state;
+}
+
+//------------------------------------------------------------------------------------------------------------------
+
+cMenuSetupGeneral::cMenuSetupGeneral(cTvguideConfig* data) : cMenuSetupSubMenu(tr("General Settings"), data) {
+ timeFormatItems[0] = "12h";
+ timeFormatItems[1] = "24h";
+
+ Set();
+}
+
+void cMenuSetupGeneral::Set(void) {
+ int currentItem = Current();
+ Clear();
+
+ Add(new cMenuEditIntItem(tr("Number of Channels / Columns"), &tmpTvguideConfig->channelCols, 3, 8));
+ Add(new cMenuEditIntItem(tr("Channels to Jump (Keys Green / Yellow)"), &tmpTvguideConfig->jumpChannels, 2, 30));
+ Add(new cMenuEditIntItem(tr("Time to display vertically in minutes"), &tmpTvguideConfig->displayTime, 120, 320));
+ Add(new cMenuEditIntItem(tr("Big Step (Keys 1 / 3) in hours"), &tmpTvguideConfig->bigStepHours, 1, 12));
+ Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48));
+ Add(new cMenuEditStraItem(tr("Time Format (12h/24h)"), &tmpTvguideConfig->timeFormat, 2, timeFormatItems));
+
+ SetCurrent(Get(currentItem));
+ Display();
+}
+
+//------------------------------------------------------------------------------------------------------------------
+
+cMenuSetupScreenLayout::cMenuSetupScreenLayout(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Screen Presentation"), data) {
+ themes.Load(*cString("tvguide"));
+ hideChannelLogosItems[0] = trVDR("yes");
+ hideChannelLogosItems[1] = trVDR("no");
+ logoExtensionItems[0] = "png";
+ logoExtensionItems[1] = "jpg";
+ Set();
+}
+
+void cMenuSetupScreenLayout::Set(void) {
+ int currentItem = Current();
+ Clear();
+ if (themes.NumThemes())
+ Add(new cMenuEditStraItem(tr("Theme"), &tmpTvguideConfig->themeIndex, themes.NumThemes(), themes.Descriptions()));
+ Add(new cMenuEditBoolItem(tr("Use color gradients"), &tmpTvguideConfig->useBlending));
+ Add(new cMenuEditBoolItem(tr("Rounded Corners"), &tmpTvguideConfig->roundedCorners));
+ Add(new cMenuEditIntItem(tr("Width of Timeline"), &tmpTvguideConfig->timeColWidth, 50, 300));
+ Add(new cMenuEditIntItem(tr("Height of Header"), &tmpTvguideConfig->headerHeight, 50, 300));
+ Add(new cMenuEditIntItem(tr("Height of Footer"), &tmpTvguideConfig->footerHeight, 50, 300));
+
+ const char *indent = " ";
+ Add(new cMenuEditStraItem(tr("Show Channel Logos"), &tmpTvguideConfig->hideChannelLogos, 2, hideChannelLogosItems));
+ if (!tmpTvguideConfig->hideChannelLogos) {
+ Add(InfoItem(tr("Logo Path used"), *tvguideConfig.logoPath));
+ Add(new cMenuEditStraItem(*cString::sprintf("%s%s", indent, tr("Logo Extension")), &tmpTvguideConfig->logoExtension, 2, logoExtensionItems));
+ Add(new cMenuEditIntItem(*cString::sprintf("%s%s", indent, tr("Logo width")), &tmpTvguideConfig->logoWidth, 0, 350));
+ Add(new cMenuEditIntItem(*cString::sprintf("%s%s", indent, tr("Logo height")), &tmpTvguideConfig->logoHeight, 0, 250));
+ }
+
+ Add(new cMenuEditStraItem(tr("Show EPG Images"), &tmpTvguideConfig->hideEpgImages, 2, hideChannelLogosItems));
+ if (!tmpTvguideConfig->hideEpgImages) {
+ Add(InfoItem(tr("EPG Images Path used"), *tvguideConfig.epgImagePath));
+ Add(new cMenuEditIntItem(*cString::sprintf("%s%s", indent, tr("EPG Image width")), &tmpTvguideConfig->epgImageWidth, 0, 800));
+ Add(new cMenuEditIntItem(*cString::sprintf("%s%s", indent, tr("EPG Image height")), &tmpTvguideConfig->epgImageHeight, 0, 800));
+ }
+
+ SetCurrent(Get(currentItem));
+ Display();
+}
+
+eOSState cMenuSetupScreenLayout::ProcessKey(eKeys Key) {
+ eOSState state = cOsdMenu::ProcessKey(Key);
+ if (Key == kOk) {
+ state = osBack;
+ } else if (Key != kNone) {
+ Set();
+ }
+ return state;
+}
+
+//------------------------------------------------------------------------------------------------------------------
+
+cMenuSetupFont::cMenuSetupFont(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Fonts and Fontsizes"), data) {
+ cFont::GetAvailableFontNames(&fontNames);
+ fontNames.Insert(strdup(tvguideConfig.fontNameDefault));
+ Set();
+}
+
+void cMenuSetupFont::Set(void) {
+ int currentItem = Current();
+ Clear();
+
+ Add(new cMenuEditStraItem(tr("Font"), &tmpTvguideConfig->fontIndex, fontNames.Size(), &fontNames[0]));
+ Add(new cMenuEditIntItem(tr("Channel Header Font Size"), &tmpTvguideConfig->fontHeaderSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Grid Font Size"), &tmpTvguideConfig->fontGridSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Grid Font Small Size"), &tmpTvguideConfig->fontGridSmallSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Timeline Weekday Font Size"), &tmpTvguideConfig->fontTimeLineWeekdaySize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Timeline Date Font Size"), &tmpTvguideConfig->fontTimeLineDateSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Timeline Time Font Size"), &tmpTvguideConfig->fontTimeLineTimeSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Button Font Size"), &tmpTvguideConfig->fontButtonSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Detail EPG View Font Size"), &tmpTvguideConfig->fontDetailViewSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Detail EPG View Header Font Size"), &tmpTvguideConfig->fontDetailHeaderSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Message Font Size"), &tmpTvguideConfig->fontMessageBoxSize, 10, 70));
+ Add(new cMenuEditIntItem(tr("Message Large Font Size"), &tmpTvguideConfig->fontMessageBoxLargeSize, 10, 70));
+
+ SetCurrent(Get(currentItem));
+ Display();
+} \ No newline at end of file