diff options
-rw-r--r-- | ambithread.c | 21 | ||||
-rw-r--r-- | main_menu.c | 2 | ||||
-rw-r--r-- | vdrboblight.c | 86 |
3 files changed, 66 insertions, 43 deletions
diff --git a/ambithread.c b/ambithread.c index dbecf9b..64ef3a0 100644 --- a/ambithread.c +++ b/ambithread.c @@ -230,6 +230,7 @@ int cAmbiThread::getOsd3DMode() switch(cfg.osd3DMode) { case osdAuto: + int tempOsd3DMode; SoftHDDevice_Osd3DModeService_v1_1_t req; req.GetMode = true; if (!softHdPlugin->Service(OSD1_3DMODE_SERVICE, &req)) { @@ -238,7 +239,6 @@ int cAmbiThread::getOsd3DMode() } // (0=off, 1=SBS, 2=Top Bottom) - int tempOsd3DMode; switch (req.Mode) { case 0: tempOsd3DMode = osdOff; @@ -374,7 +374,10 @@ int cAmbiThread::putData() else if(cfg.viewMode == vmAtmo) { int row = 0; - Pixel* p; + Pixel* p; + + int scanWidth = 0; + int scanHeight = 0; for (int y = 0; y < imageHeight; y++) { // skip horizontal cinebars @@ -394,19 +397,13 @@ int cAmbiThread::putData() rgb[0] = p->r; rgb[1] = p->g; rgb[2] = p->b; - bob.writeColor(rgb, x - yBarWidth, y - xBarHeight); + bob.writeColor(rgb, x - yBarWidth, y - xBarHeight); + scanWidth = x - yBarWidth; + scanHeight = y- xBarHeight; } } if (barsChanged || osd3dChanged) { - int width = imageWidth - (2*yBarWidth); - int height = imageHeight - (2*xBarHeight); - if(osd3DMode == 1) { - width = width/2; - } - else if(osd3DMode == 2) { - height = height/2; - } - bob.setScanRange(width, height); + bob.setScanRange(scanWidth, scanHeight); if (barsChanged) barsChanged = false; if (osd3dChanged) osd3dChanged = false; diff --git a/main_menu.c b/main_menu.c index 23658ee..aeaceb9 100644 --- a/main_menu.c +++ b/main_menu.c @@ -17,7 +17,7 @@ void cBoblightPluginMenu::Create(void) { SetMenuCategory(mcPluginSetup); Clear(); - Add(new cMenuEditStraItem(tr("3D Mode"), &cfg.osd3dMode, cAmbiService::osdCount, cAmbiService::osd3dModes)); + Add(new cMenuEditStraItem(tr("3D Mode"), &cfg.osd3DMode, cAmbiService::osdCount, cAmbiService::osd3dModes)); Add(new cMenuEditStraItem(tr("View Mode"), &cfg.viewMode, cAmbiService::vmCount, cAmbiService::viewModes)); Add(new cMenuEditStraItem(tr("Startup View Mode"), &cfg.startupViewMode, cAmbiService::vmCount, cAmbiService::viewModes)); diff --git a/vdrboblight.c b/vdrboblight.c index 7316606..2907b49 100644 --- a/vdrboblight.c +++ b/vdrboblight.c @@ -166,7 +166,59 @@ bool cPluginBoblight::Service(const char* Id, void* Data) cString cPluginBoblight::SVDRPCommand(const char* Command, const char* Option, int &ReplyCode) { - if (!strcasecmp(Command, "MODE")) + if (!strcasecmp(Command, "3D")) + { + if (Option && strcasecmp(Option, "hsbs") == 0) + { + cfg.osd3DMode = cAmbiService::osdHSBS; + + ReplyCode = 550; + return "3d-hsbs"; + } + else if (Option && strcasecmp(Option, "hou") == 0) + { + cfg.osd3DMode = cAmbiService::osdHOU; + + ReplyCode = 550; + return "3d-hou"; + } + else if (Option && strcasecmp(Option, "off") == 0) + { + cfg.osd3DMode = cAmbiService::osdOff; + + ReplyCode = 550; + return "3d-off"; + } + else if (Option && strcasecmp(Option, "auto") == 0) + { + cfg.osd3DMode = cAmbiService::osdAuto; + + ReplyCode = 550; + return "3d-auto"; + } + else if(!Option || !strlen(Option)) { + switch(cfg.osd3DMode) { + case cAmbiService::osdAuto: + ReplyCode = 554; + return "auto"; + case cAmbiService::osdOff: + ReplyCode = 555; + return "off"; + case cAmbiService::osdHSBS: + ReplyCode = 556; + return "hsbs"; + case cAmbiService::osdHOU: + ReplyCode = 557; + return "hou"; + } + } + else + { + ReplyCode = 901; + return "Error: Unexpected option"; + } + } + else if (!strcasecmp(Command, "MODE")) { if (Option && strcasecmp(Option, "atmo") == 0) { @@ -198,34 +250,6 @@ cString cPluginBoblight::SVDRPCommand(const char* Command, const char* Option, i ReplyCode = 550; return "detach"; } - else if (Option && strcasecmp(Option, "3d-hsbs") == 0) - { - cfg.osd3DMode = cAmbiService::osdHSBS; - - ReplyCode = 550; - return "3d-hsbs"; - } - else if (Option && strcasecmp(Option, "3d-hou") == 0) - { - cfg.osd3DMode = cAmbiService::osdHOU; - - ReplyCode = 550; - return "3d-hou"; - } - else if (Option && strcasecmp(Option, "3d-off") == 0) - { - cfg.osd3DMode = cAmbiService::osdOff; - - ReplyCode = 550; - return "3d-off"; - } - else if (Option && strcasecmp(Option, "3d-auto") == 0) - { - cfg.osd3DMode = cAmbiService::osdAuto; - - ReplyCode = 550; - return "3d-auto"; - } else if(!Option || !strlen(Option)) { switch(cfg.viewMode) { case cAmbiService::vmAtmo: @@ -257,7 +281,9 @@ const char** cPluginBoblight::SVDRPHelpPages(void) static const char* HelpPages[] = { "MODE <mode>\n" - " Set mode {atmo|fixed|black|detach}\n", + " Set mode {atmo|fixed|black|detach}\n" + "3D <mode>\n" + " Set 3D mode {auto|off|hsbs|hou}\n", 0 }; |