diff options
author | Andreas Regel <andreas.regel@powarman.de> | 2008-04-27 18:44:00 +0200 |
---|---|---|
committer | Andreas Regel <andreas.regel@powarman.de> | 2008-04-27 18:44:00 +0200 |
commit | cac6362d2207752926f9339c1c547d60d5c2a6a0 (patch) | |
tree | c8c4ae6d3b5e0bca179b3b28468f6aca736d14c7 /setup.c | |
parent | 4df61fcc16983f71ca5ab1d539840f7d04b9d48f (diff) | |
download | vdr-plugin-osdpip-cac6362d2207752926f9339c1c547d60d5c2a6a0.tar.gz vdr-plugin-osdpip-cac6362d2207752926f9339c1c547d60d5c2a6a0.tar.bz2 |
Release version 0.0.9v0.0.9
- dropped support for VDR version lower than 1.3.47.
- Now using palette replacemen introduced in VDR 1.4.27, so palette
setting workaround is not needed any longer. This simplifies code a
bit.
- added support for VDR 1.6. Now 1.4 and 1.6 are supported (tested with
1.4.7 and 1.6.0)
- added gettext localization support introduced with VDR 1.5.7.
- Do not decode B frames when dropping them.
- Use cCondWait::SleepMs instead of usleep.
- Fixed automatic closing of OSD after some minutes.
- Fixed showing wrong channel information.
- Added missing inclusion of <vdr/device.h>.
- Added new colour reduction mode using 256 dithered colours (thanks to
Martin Wache).
- Added french translations (thanks to micky979)
Diffstat (limited to 'setup.c')
-rw-r--r-- | setup.c | 204 |
1 files changed, 103 insertions, 101 deletions
@@ -7,119 +7,121 @@ #include <vdr/config.h> #include "setup.h" +#include "i18n.h" -const int kColorDepths = 4; +const int kColorDepths = 5; const int kSizes = 11; const int kFrameModes = 3; const int kFrameDrops = 4; const int kShowInfoTypes = 4; const int kInfoPositions = 4; -const char * ColorDepthItems[] = {NULL, NULL, NULL, NULL, NULL}; // initialized later +const char * ColorDepthItems[] = {NULL, NULL, NULL, NULL, NULL, NULL}; // initialized later const char * ShowInfoItems[] = {NULL, NULL, NULL, NULL, NULL}; // initialized later const char * InfoPositionItems[] = {NULL, NULL, NULL, NULL, NULL}; // initialized later const char * FrameDropItems[] = {NULL, NULL, NULL, NULL, NULL}; // initialized later const char * SizeItems[] = { - "100x80", - "120x96", - "140x112", - "160x128", - "180x144", - "200x160", - "220x176", - "240x192", - "260x208", - "280x224", - "300x240", - NULL + "100x80", + "120x96", + "140x112", + "160x128", + "180x144", + "200x160", + "220x176", + "240x192", + "260x208", + "280x224", + "300x240", + NULL }; const char * FrameModeItems[] = { - "I", - "I, P", - "I, P, B" + "I", + "I, P", + "I, P, B" }; cOsdPipSetup OsdPipSetup; cOsdPipSetup::cOsdPipSetup(void) { - XPosition = 50; - YPosition = 50; - CropLeft = 5; - CropRight = 5; - CropTop = 5; - CropBottom = 5; - ColorDepth = kDepthGrey16; - Size = 5; - FrameMode = kFrameModeI; - FrameDrop = -1; - SwapFfmpeg = 1; - ShowInfo = 1; - InfoWidth = 400; - InfoPosition = kInfoBottomLeft; + XPosition = 50; + YPosition = 50; + CropLeft = 5; + CropRight = 5; + CropTop = 5; + CropBottom = 5; + ColorDepth = kDepthGrey16; + Size = 5; + FrameMode = kFrameModeI; + FrameDrop = -1; + SwapFfmpeg = 1; + ShowInfo = 1; + InfoWidth = 400; + InfoPosition = kInfoBottomLeft; } bool cOsdPipSetup::SetupParse(const char *Name, const char *Value) { - if (strcmp(Name, "XPosition") == 0) XPosition = atoi(Value); - else if (strcmp(Name, "YPosition") == 0) YPosition = atoi(Value); - else if (strcmp(Name, "CropLeft") == 0) CropLeft = atoi(Value); - else if (strcmp(Name, "CropRight") == 0) CropRight = atoi(Value); - else if (strcmp(Name, "CropTop") == 0) CropTop = atoi(Value); - else if (strcmp(Name, "CropBottom") == 0) CropBottom = atoi(Value); - else if (strcmp(Name, "ColorDepth") == 0) ColorDepth = atoi(Value); - else if (strcmp(Name, "Size") == 0) Size = atoi(Value); - else if (strcmp(Name, "FrameMode") == 0) FrameMode = atoi(Value); - else if (strcmp(Name, "FrameDrop") == 0) FrameDrop = atoi(Value); - else if (strcmp(Name, "SwapFfmpeg") == 0) SwapFfmpeg = atoi(Value); - else if (strcmp(Name, "ShowInfo") == 0) ShowInfo = atoi(Value); - else if (strcmp(Name, "InfoWidth") == 0) InfoWidth = atoi(Value); - else if (strcmp(Name, "InfoPosition") == 0) InfoPosition = atoi(Value); - else return false; - return true; + if (strcmp(Name, "XPosition") == 0) XPosition = atoi(Value); + else if (strcmp(Name, "YPosition") == 0) YPosition = atoi(Value); + else if (strcmp(Name, "CropLeft") == 0) CropLeft = atoi(Value); + else if (strcmp(Name, "CropRight") == 0) CropRight = atoi(Value); + else if (strcmp(Name, "CropTop") == 0) CropTop = atoi(Value); + else if (strcmp(Name, "CropBottom") == 0) CropBottom = atoi(Value); + else if (strcmp(Name, "ColorDepth") == 0) ColorDepth = atoi(Value); + else if (strcmp(Name, "Size") == 0) Size = atoi(Value); + else if (strcmp(Name, "FrameMode") == 0) FrameMode = atoi(Value); + else if (strcmp(Name, "FrameDrop") == 0) FrameDrop = atoi(Value); + else if (strcmp(Name, "SwapFfmpeg") == 0) SwapFfmpeg = atoi(Value); + else if (strcmp(Name, "ShowInfo") == 0) ShowInfo = atoi(Value); + else if (strcmp(Name, "InfoWidth") == 0) InfoWidth = atoi(Value); + else if (strcmp(Name, "InfoPosition") == 0) InfoPosition = atoi(Value); + else return false; + return true; } cOsdPipSetupPage::cOsdPipSetupPage(void) { - m_NewOsdPipSetup = OsdPipSetup; - m_NewOsdPipSetup.FrameDrop += 1; - - ColorDepthItems[0] = tr("Greyscale (16)"); - ColorDepthItems[1] = tr("Greyscale (256)"); - ColorDepthItems[2] = tr("Color (256, fixed)"); - ColorDepthItems[3] = tr("Color (128, variable)"); - - ShowInfoItems[0] = tr("no"); - ShowInfoItems[1] = tr("channel only"); - ShowInfoItems[2] = tr("simple"); - ShowInfoItems[3] = tr("complete"); - - InfoPositionItems[0] = tr("top left"); - InfoPositionItems[1] = tr("top right"); - InfoPositionItems[2] = tr("bottom left"); - InfoPositionItems[3] = tr("bottom right"); - - FrameDropItems[0] = tr("automatic"); - FrameDropItems[1] = tr("none"); - FrameDropItems[2] = tr("1 frame"); - FrameDropItems[3] = tr("2 frames"); - - Add(new cMenuEditIntItem(tr("X Position"), &m_NewOsdPipSetup.XPosition, 0, 600)); - Add(new cMenuEditIntItem(tr("Y Position"), &m_NewOsdPipSetup.YPosition, 0, 470)); - Add(new cMenuEditIntItem(tr("Crop left"), &m_NewOsdPipSetup.CropLeft, 0, 80)); - Add(new cMenuEditIntItem(tr("Crop right"), &m_NewOsdPipSetup.CropRight, 0, 80)); - Add(new cMenuEditIntItem(tr("Crop at top"), &m_NewOsdPipSetup.CropTop, 0, 80)); - Add(new cMenuEditIntItem(tr("Crop at bottom"), &m_NewOsdPipSetup.CropBottom, 0, 80)); - Add(new cMenuEditStraItem(tr("Color depth"), &m_NewOsdPipSetup.ColorDepth, kColorDepths, ColorDepthItems)); - Add(new cMenuEditStraItem(tr("Size"), &m_NewOsdPipSetup.Size, kSizes, SizeItems)); - Add(new cMenuEditStraItem(tr("Frames to display"), &m_NewOsdPipSetup.FrameMode, kFrameModes, FrameModeItems)); - Add(new cMenuEditStraItem(tr("Drop frames"), &m_NewOsdPipSetup.FrameDrop, kFrameDrops, FrameDropItems)); - Add(new cMenuEditBoolItem(tr("Swap FFMPEG output"), &m_NewOsdPipSetup.SwapFfmpeg)); - Add(new cMenuEditStraItem(tr("Show info window"), &m_NewOsdPipSetup.ShowInfo, kShowInfoTypes, ShowInfoItems)); - Add(new cMenuEditIntItem(tr("Info window width"), &m_NewOsdPipSetup.InfoWidth, 200, 600)); - Add(new cMenuEditStraItem(tr("Info window position"), &m_NewOsdPipSetup.InfoPosition, kInfoPositions, InfoPositionItems)); + m_NewOsdPipSetup = OsdPipSetup; + m_NewOsdPipSetup.FrameDrop += 1; + + ColorDepthItems[0] = tr("Greyscale (16)"); + ColorDepthItems[1] = tr("Greyscale (256)"); + ColorDepthItems[2] = tr("Color (256, fixed)"); + ColorDepthItems[3] = tr("Color (128, variable)"); + ColorDepthItems[4] = tr("Color (256, dithered)"); + + ShowInfoItems[0] = trVDR("no"); + ShowInfoItems[1] = tr("channel only"); + ShowInfoItems[2] = tr("simple"); + ShowInfoItems[3] = tr("complete"); + + InfoPositionItems[0] = tr("top left"); + InfoPositionItems[1] = tr("top right"); + InfoPositionItems[2] = tr("bottom left"); + InfoPositionItems[3] = tr("bottom right"); + + FrameDropItems[0] = tr("automatic"); + FrameDropItems[1] = tr("none"); + FrameDropItems[2] = tr("1 frame"); + FrameDropItems[3] = tr("2 frames"); + + Add(new cMenuEditIntItem(tr("X Position"), &m_NewOsdPipSetup.XPosition, 0, 600)); + Add(new cMenuEditIntItem(tr("Y Position"), &m_NewOsdPipSetup.YPosition, 0, 470)); + Add(new cMenuEditIntItem(tr("Crop left"), &m_NewOsdPipSetup.CropLeft, 0, 80)); + Add(new cMenuEditIntItem(tr("Crop right"), &m_NewOsdPipSetup.CropRight, 0, 80)); + Add(new cMenuEditIntItem(tr("Crop at top"), &m_NewOsdPipSetup.CropTop, 0, 80)); + Add(new cMenuEditIntItem(tr("Crop at bottom"), &m_NewOsdPipSetup.CropBottom, 0, 80)); + Add(new cMenuEditStraItem(tr("Color depth"), &m_NewOsdPipSetup.ColorDepth, kColorDepths, ColorDepthItems)); + Add(new cMenuEditStraItem(tr("Size"), &m_NewOsdPipSetup.Size, kSizes, SizeItems)); + Add(new cMenuEditStraItem(tr("Frames to display"), &m_NewOsdPipSetup.FrameMode, kFrameModes, FrameModeItems)); + Add(new cMenuEditStraItem(tr("Drop frames"), &m_NewOsdPipSetup.FrameDrop, kFrameDrops, FrameDropItems)); + Add(new cMenuEditBoolItem(tr("Swap FFMPEG output"), &m_NewOsdPipSetup.SwapFfmpeg)); + Add(new cMenuEditStraItem(tr("Show info window"), &m_NewOsdPipSetup.ShowInfo, kShowInfoTypes, ShowInfoItems)); + Add(new cMenuEditIntItem(tr("Info window width"), &m_NewOsdPipSetup.InfoWidth, 200, 600)); + Add(new cMenuEditStraItem(tr("Info window position"), &m_NewOsdPipSetup.InfoPosition, kInfoPositions, InfoPositionItems)); } cOsdPipSetupPage::~cOsdPipSetupPage() @@ -128,22 +130,22 @@ cOsdPipSetupPage::~cOsdPipSetupPage() void cOsdPipSetupPage::Store(void) { - OsdPipSetup = m_NewOsdPipSetup; - OsdPipSetup.FrameDrop -= 1; - - SetupStore("XPosition", OsdPipSetup.XPosition); - SetupStore("YPosition", OsdPipSetup.YPosition); - SetupStore("CropLeft", OsdPipSetup.CropLeft); - SetupStore("CropRight", OsdPipSetup.CropRight); - SetupStore("CropTop", OsdPipSetup.CropTop); - SetupStore("CropBottom", OsdPipSetup.CropBottom); - SetupStore("ColorDepth", OsdPipSetup.ColorDepth); - SetupStore("Size", OsdPipSetup.Size); - SetupStore("FrameMode", OsdPipSetup.FrameMode); - SetupStore("FrameDrop", OsdPipSetup.FrameDrop); - SetupStore("SwapFfmpeg", OsdPipSetup.SwapFfmpeg); - SetupStore("ShowInfo", OsdPipSetup.ShowInfo); - SetupStore("InfoWidth", OsdPipSetup.InfoWidth); - SetupStore("InfoPosition", OsdPipSetup.InfoPosition); + OsdPipSetup = m_NewOsdPipSetup; + OsdPipSetup.FrameDrop -= 1; + + SetupStore("XPosition", OsdPipSetup.XPosition); + SetupStore("YPosition", OsdPipSetup.YPosition); + SetupStore("CropLeft", OsdPipSetup.CropLeft); + SetupStore("CropRight", OsdPipSetup.CropRight); + SetupStore("CropTop", OsdPipSetup.CropTop); + SetupStore("CropBottom", OsdPipSetup.CropBottom); + SetupStore("ColorDepth", OsdPipSetup.ColorDepth); + SetupStore("Size", OsdPipSetup.Size); + SetupStore("FrameMode", OsdPipSetup.FrameMode); + SetupStore("FrameDrop", OsdPipSetup.FrameDrop); + SetupStore("SwapFfmpeg", OsdPipSetup.SwapFfmpeg); + SetupStore("ShowInfo", OsdPipSetup.ShowInfo); + SetupStore("InfoWidth", OsdPipSetup.InfoWidth); + SetupStore("InfoPosition", OsdPipSetup.InfoPosition); } |