gui/motorcontrol, gui/scan: switch to CSignalBox

Signed-off-by: Thilo Graf <dbt@novatux.de>

Conflicts:
	src/gui/scan.cpp


Origin commit data
------------------
Branch: ni/coolstream
Commit: 5b5fed3bd7
Author: martii <m4rtii@gmx.de>
Date: 2013-12-18 (Wed, 18 Dec 2013)



------------------
This commit was generated by Migit
This commit is contained in:
martii
2013-12-18 20:42:02 +01:00
committed by Thilo Graf
parent e40a2c3057
commit 54a91da22e
4 changed files with 26 additions and 117 deletions

View File

@@ -65,8 +65,6 @@ CMotorControl::CMotorControl(int tnum)
CMotorControl::~CMotorControl() CMotorControl::~CMotorControl()
{ {
printf("CMotorControl::~CMotorControl\n"); printf("CMotorControl::~CMotorControl\n");
delete sigscale;
delete snrscale;
} }
void CMotorControl::Init(void) void CMotorControl::Init(void)
@@ -91,10 +89,7 @@ void CMotorControl::Init(void)
motorPosition = 1; motorPosition = 1;
satellitePosition = 0; satellitePosition = 0;
stepDelay = 10; stepDelay = 10;
sigscale = new CProgressBar(/*true, BAR_WIDTH, BAR_HEIGHT*/); signalbox = NULL;
sigscale->setBlink();
snrscale = new CProgressBar(/*true, BAR_WIDTH, BAR_HEIGHT*/);
snrscale->setBlink();
} }
int CMotorControl::exec(CMenuTarget* parent, const std::string &) 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(); hide();
frontend->setTsidOnid(0); frontend->setTsidOnid(0);
@@ -456,10 +453,6 @@ void CMotorControl::paintHead()
void CMotorControl::paintMenu() 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); frameBuffer->paintBoxRel(x, y + hheight, width, height - hheight, COL_MENUCONTENT_PLUS_0, RADIUS_LARGE, CORNER_BOTTOM);
ypos = y + hheight + (mheight >> 1) - 10; ypos = y + hheight + (mheight >> 1) - 10;
@@ -586,53 +579,17 @@ void CMotorControl::stopSatFind(void)
void CMotorControl::showSNR () void CMotorControl::showSNR ()
{ {
char percent[10]; if (signalbox == NULL){
int barwidth = 100; int xpos1 = x + 10;
uint16_t ssig, ssnr; signalbox = new CSignalBox(xpos1, y + height - mheight - 5, width - 2*(xpos1-x), g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(), frontend, false);
int sig, snr; signalbox->setScaleWidth(60); /*%*/
int posx_sig, posx_snr, posy; signalbox->setColorBody(COL_MENUCONTENT_PLUS_0);
signalbox->setTextColor(COL_MENUCONTENT_TEXT);
int sw; signalbox->doPaintBg(true);
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 (lastsnr != snr) { signalbox->paint(false);
lastsnr = snr; g_snr = signalbox->getSNRValue();
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);
}
} }
void CMotorControl::readNetwork() void CMotorControl::readNetwork()

View File

@@ -66,10 +66,9 @@ class CMotorControl : public CMenuTarget
uint8_t motorPosition; uint8_t motorPosition;
int32_t satellitePosition; int32_t satellitePosition;
int satfindpid; int satfindpid;
int lastsnr, lastsig;
int g_sig, g_snr, last_snr, moving; int g_sig, g_snr, last_snr, moving;
std::string network; std::string network;
CProgressBar *snrscale, *sigscale; CSignalBox *signalbox;
void paintHead(void); void paintHead(void);
void paintMenu(void); void paintMenu(void);
void paintStatus(void); void paintStatus(void);

View File

@@ -80,20 +80,13 @@ CScanTs::CScanTs(int dtype)
radar = 0; radar = 0;
total = done = 0; total = done = 0;
freqready = 0; freqready = 0;
deltype = dtype; deltype = dtype;
sigscale = new CProgressBar(); signalbox = NULL;
sigscale->setBlink();
snrscale = new CProgressBar();
snrscale->setBlink();
memset(&TP, 0, sizeof(TP)); // valgrind memset(&TP, 0, sizeof(TP)); // valgrind
} }
CScanTs::~CScanTs() CScanTs::~CScanTs()
{ {
delete sigscale;
delete snrscale;
} }
void CScanTs::prev_next_TP( bool up) 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); ypos_radar = y + hheight + (mheight >> 1);
xpos1 = x + 10; xpos1 = x + 10;
sigscale->reset();
snrscale->reset();
lastsig = lastsnr = -1;
if (!frameBuffer->getActive()) if (!frameBuffer->getActive())
return menu_return::RETURN_EXIT_ALL; return menu_return::RETURN_EXIT_ALL;
@@ -349,6 +338,8 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey)
} while (!(msg == CRCInput::RC_timeout)); } while (!(msg == CRCInput::RC_timeout));
} }
delete signalbox;
signalbox = NULL;
hide(); hide();
CZapit::getInstance()->scanPids(scan_pids); CZapit::getInstance()->scanPids(scan_pids);
@@ -558,51 +549,14 @@ int CScanTs::greater_xpos(int xpos, const neutrino_locale_t txt)
void CScanTs::showSNR () void CScanTs::showSNR ()
{ {
char percent[10]; if (signalbox == NULL){
int barwidth = 150;
uint16_t ssig, ssnr;
int sig, snr;
int posx, posy;
int sw;
CFrontend * frontend = CServiceScan::getInstance()->GetFrontend(); CFrontend * frontend = CServiceScan::getInstance()->GetFrontend();
ssig = frontend->getSignalStrength(); signalbox = new CSignalBox(xpos1, y + height - mheight - 5, width - 2*(xpos1-x), g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(), frontend, false);
ssnr = frontend->getSignalNoiseRatio(); signalbox->setScaleWidth(60); /*%*/
snr = (ssnr & 0xFFFF) * 100 / 65535; signalbox->setColorBody(COL_MENUCONTENT_PLUS_0);
sig = (ssig & 0xFFFF) * 100 / 65535; signalbox->setTextColor(COL_MENUCONTENT_TEXT);
signalbox->doPaintBg(true);
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 (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);
} }

View File

@@ -65,9 +65,8 @@ class CScanTs : public CMenuTarget
bool istheend; bool istheend;
uint32_t total; uint32_t total;
uint32_t done; uint32_t done;
int lastsnr, lastsig;
int tuned; int tuned;
CProgressBar *snrscale, *sigscale; CSignalBox *signalbox;
void paint(bool fortest = false); void paint(bool fortest = false);
void paintLineLocale(int x, int * y, int width, const neutrino_locale_t l); void paintLineLocale(int x, int * y, int width, const neutrino_locale_t l);