From 54a91da22e1511ec421b48d4f1a1eb3d4e6fd266 Mon Sep 17 00:00:00 2001 From: martii Date: Wed, 18 Dec 2013 20:42:02 +0100 Subject: [PATCH] gui/motorcontrol, gui/scan: switch to CSignalBox Signed-off-by: Thilo Graf Conflicts: src/gui/scan.cpp Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5b5fed3bd7b9b00915a99a99a017cf51dd2bad40 Author: martii Date: 2013-12-18 (Wed, 18 Dec 2013) ------------------ This commit was generated by Migit --- src/gui/motorcontrol.cpp | 69 ++++++++-------------------------------- src/gui/motorcontrol.h | 3 +- src/gui/scan.cpp | 68 +++++++-------------------------------- src/gui/scan.h | 3 +- 4 files changed, 26 insertions(+), 117 deletions(-) diff --git a/src/gui/motorcontrol.cpp b/src/gui/motorcontrol.cpp index 68ae0add9..ab86826c2 100644 --- a/src/gui/motorcontrol.cpp +++ b/src/gui/motorcontrol.cpp @@ -65,8 +65,6 @@ CMotorControl::CMotorControl(int tnum) CMotorControl::~CMotorControl() { printf("CMotorControl::~CMotorControl\n"); - delete sigscale; - delete snrscale; } void CMotorControl::Init(void) @@ -91,10 +89,7 @@ void CMotorControl::Init(void) motorPosition = 1; satellitePosition = 0; stepDelay = 10; - sigscale = new CProgressBar(/*true, BAR_WIDTH, BAR_HEIGHT*/); - sigscale->setBlink(); - snrscale = new CProgressBar(/*true, BAR_WIDTH, BAR_HEIGHT*/); - snrscale->setBlink(); + signalbox = NULL; } int CMotorControl::exec(CMenuTarget* parent, const std::string &) @@ -313,6 +308,8 @@ int CMotorControl::exec(CMenuTarget* parent, const std::string &) } } + delete signalbox; + signalbox = NULL; hide(); frontend->setTsidOnid(0); @@ -456,10 +453,6 @@ void CMotorControl::paintHead() void CMotorControl::paintMenu() { - sigscale->reset(); - snrscale->reset(); - lastsnr = lastsig = -1; - frameBuffer->paintBoxRel(x, y + hheight, width, height - hheight, COL_MENUCONTENT_PLUS_0, RADIUS_LARGE, CORNER_BOTTOM); ypos = y + hheight + (mheight >> 1) - 10; @@ -584,55 +577,19 @@ void CMotorControl::stopSatFind(void) #endif } -void CMotorControl::showSNR() +void CMotorControl::showSNR () { - char percent[10]; - int barwidth = 100; - uint16_t ssig, ssnr; - int sig, snr; - int posx_sig, posx_snr, posy; - - int sw; - - ssig = frontend->getSignalStrength(); - ssnr = frontend->getSignalNoiseRatio(); - - snr = (ssnr & 0xFFFF) * 100 / 65535; - sig = (ssig & 0xFFFF) * 100 / 65535; - if(sig < 5) - return; - g_sig = ssig & 0xFFFF; - g_snr = snr; - - posy = y + height - mheight - 5; - //TODO: move sig/snr display into its own class, similar or same code also to find in scan.cpp - if (lastsig != sig) { - lastsig = sig; - posx_sig = x + 10; - sprintf(percent, "%d%% SIG", sig); - sw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth ("100% SIG"); - - sigscale->setProgress(posx_sig-1, posy, BAR_WIDTH, BAR_HEIGHT, sig, 100); - sigscale->paint(); - - posx_sig += barwidth + 3; - frameBuffer->paintBoxRel(posx_sig, posy - 2, sw+4, mheight, COL_MENUCONTENT_PLUS_0); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString (posx_sig+2, posy + mheight, sw, percent, COL_MENUCONTENT_TEXT); + if (signalbox == NULL){ + int xpos1 = x + 10; + signalbox = new CSignalBox(xpos1, y + height - mheight - 5, width - 2*(xpos1-x), g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(), frontend, false); + signalbox->setScaleWidth(60); /*%*/ + signalbox->setColorBody(COL_MENUCONTENT_PLUS_0); + signalbox->setTextColor(COL_MENUCONTENT_TEXT); + signalbox->doPaintBg(true); } - if (lastsnr != snr) { - lastsnr = snr; - posx_snr = x + 10 + 210; - sprintf(percent, "%d%% SNR", snr); - sw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth ("100% SNR"); - - snrscale->setProgress(posx_snr-1, posy, BAR_WIDTH, BAR_HEIGHT, snr, 100); - snrscale->paint(); - - posx_snr += barwidth + 3; - frameBuffer->paintBoxRel(posx_snr, posy - 2, sw+4, mheight, COL_MENUCONTENT_PLUS_0); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString (posx_snr+2, posy + mheight, sw, percent, COL_MENUCONTENT_TEXT); - } + signalbox->paint(false); + g_snr = signalbox->getSNRValue(); } void CMotorControl::readNetwork() diff --git a/src/gui/motorcontrol.h b/src/gui/motorcontrol.h index c595308ee..5ca924dc8 100644 --- a/src/gui/motorcontrol.h +++ b/src/gui/motorcontrol.h @@ -66,10 +66,9 @@ class CMotorControl : public CMenuTarget uint8_t motorPosition; int32_t satellitePosition; int satfindpid; - int lastsnr, lastsig; int g_sig, g_snr, last_snr, moving; std::string network; - CProgressBar *snrscale, *sigscale; + CSignalBox *signalbox; void paintHead(void); void paintMenu(void); void paintStatus(void); diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 9c49918b2..e96934ff3 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -80,20 +80,13 @@ CScanTs::CScanTs(int dtype) radar = 0; total = done = 0; freqready = 0; - deltype = dtype; - sigscale = new CProgressBar(); - sigscale->setBlink(); - - snrscale = new CProgressBar(); - snrscale->setBlink(); + signalbox = NULL; memset(&TP, 0, sizeof(TP)); // valgrind } CScanTs::~CScanTs() { - delete sigscale; - delete snrscale; } void CScanTs::prev_next_TP( bool up) @@ -201,10 +194,6 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) ypos_radar = y + hheight + (mheight >> 1); xpos1 = x + 10; - sigscale->reset(); - snrscale->reset(); - lastsig = lastsnr = -1; - if (!frameBuffer->getActive()) return menu_return::RETURN_EXIT_ALL; @@ -349,6 +338,8 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) } while (!(msg == CRCInput::RC_timeout)); } + delete signalbox; + signalbox = NULL; hide(); CZapit::getInstance()->scanPids(scan_pids); @@ -558,51 +549,14 @@ int CScanTs::greater_xpos(int xpos, const neutrino_locale_t txt) void CScanTs::showSNR () { - char percent[10]; - int barwidth = 150; - uint16_t ssig, ssnr; - int sig, snr; - int posx, posy; - int sw; - - CFrontend * frontend = CServiceScan::getInstance()->GetFrontend(); - ssig = frontend->getSignalStrength(); - ssnr = frontend->getSignalNoiseRatio(); - snr = (ssnr & 0xFFFF) * 100 / 65535; - sig = (ssig & 0xFFFF) * 100 / 65535; - - posy = y + height - mheight - 5; - //TODO: move sig/snr display into its own class, similar or same code also to find in motorcontrol - if (lastsig != sig) { - lastsig = sig; - posx = x + 20; - sprintf(percent, "%d%%", sig); - sw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth ("100%"); - sigscale->setProgress(posx - 1, posy+2, BAR_WIDTH, BAR_HEIGHT, sig, 100); - sigscale->paint(); - - posx = posx + barwidth + 3; - frameBuffer->paintBoxRel(posx, posy -1, sw, mheight-8, COL_MENUCONTENT_PLUS_0); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString (posx+2, posy + mheight-(mheight-BAR_HEIGHT)/4, sw, percent, COL_MENUCONTENTDARK_TEXT); - - frameBuffer->paintBoxRel(posx+(4*fw), posy - 2, 4*fw, mheight, COL_MENUCONTENT_PLUS_0); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString (posx+2+(4*fw), posy + mheight-(mheight-BAR_HEIGHT)/4, 4*fw, "SIG", COL_MENUCONTENT_TEXT); - + if (signalbox == NULL){ + CFrontend * frontend = CServiceScan::getInstance()->GetFrontend(); + signalbox = new CSignalBox(xpos1, y + height - mheight - 5, width - 2*(xpos1-x), g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(), frontend, false); + signalbox->setScaleWidth(60); /*%*/ + signalbox->setColorBody(COL_MENUCONTENT_PLUS_0); + signalbox->setTextColor(COL_MENUCONTENT_TEXT); + signalbox->doPaintBg(true); } - if (lastsnr != snr) { - lastsnr = snr; - posx = x + 20 + (20 * fw); - sprintf(percent, "%d%%", snr); - sw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth ("100%"); - snrscale->setProgress(posx - 1, posy+2, BAR_WIDTH, BAR_HEIGHT, snr, 100); - snrscale->paint(); - posx = posx + barwidth + 3; - frameBuffer->paintBoxRel(posx, posy - 1, sw, mheight-8, COL_MENUCONTENT_PLUS_0, 0, true); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString (posx + 2, posy + mheight-(mheight-BAR_HEIGHT)/4, sw, percent, COL_MENUCONTENTDARK_TEXT, 0, true); - - frameBuffer->paintBoxRel(posx+(4*fw), posy - 2, 4*fw, mheight, COL_MENUCONTENT_PLUS_0); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString (posx+2+(4*fw), posy + mheight-(mheight-BAR_HEIGHT)/4, 4*fw, "SNR", COL_MENUCONTENT_TEXT); - - } + signalbox->paint(false); } diff --git a/src/gui/scan.h b/src/gui/scan.h index 0a7288f5f..721e0cb33 100644 --- a/src/gui/scan.h +++ b/src/gui/scan.h @@ -65,9 +65,8 @@ class CScanTs : public CMenuTarget bool istheend; uint32_t total; uint32_t done; - int lastsnr, lastsig; int tuned; - CProgressBar *snrscale, *sigscale; + CSignalBox *signalbox; void paint(bool fortest = false); void paintLineLocale(int x, int * y, int width, const neutrino_locale_t l);