gui/scan_setup: show unit for motor speed

Origin commit data
------------------
Commit: a0f2960501
Author: martii <m4rtii@gmx.de>
Date: 2013-12-21 (Sat, 21 Dec 2013)
This commit is contained in:
martii
2013-12-21 22:34:32 +01:00
committed by Jacek Jendrzej
parent 2d0d36789c
commit abc5f1bc00
5 changed files with 23 additions and 6 deletions

View File

@@ -437,7 +437,7 @@ extra.zap_cycle Zap nur in Bouquet
extra.zapit_fe_timeout Tuning Timeout
extra.zapit_hvoltage High (13.5/ 18.5) Voltage
extra.zapit_make_bouquet Kanalliste auffüllen
extra.zapit_motor_speed Rotor Drehzeit (10 = 1°/ sec)
extra.zapit_motor_speed Rotor Drehzeit
extra.zapit_scanpids PIDs scannen/nutzen
extra.zapit_sdt_changed Kanalliste wird neu geladen.
fan_speed CPU-Lüftergeschwindigkeit

View File

@@ -437,7 +437,7 @@ extra.zap_cycle Zap cycle
extra.zapit_fe_timeout Tune timeout
extra.zapit_hvoltage 18V for rotor moving
extra.zapit_make_bouquet Make Remaining Channels list
extra.zapit_motor_speed Motor moving speed (10 = 1deg/sec)
extra.zapit_motor_speed Motor moving speed
extra.zapit_scanpids Scan/Use pids
extra.zapit_sdt_changed Channels changed, reload settings.
fan_speed CPU Fan speed

View File

@@ -606,6 +606,13 @@ int CScanSetup::showScanMenuFrontendSetup()
return res;
}
static std::string rotationSpeed2str(int i)
{
char s[40];
snprintf(s, sizeof(s), "%d.%d°/s", i / 10, i % 10);
return std::string(s);
}
int CScanSetup::showFrontendSetup(int number)
{
int shortcut = 1;
@@ -737,6 +744,7 @@ int CScanSetup::showFrontendSetup(int number)
setupMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SATSETUP_EXTENDED_MOTOR));
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_MOTOR_SPEED, (int *)&fe_config.motorRotationSpeed, allow_moptions, 0, 64, NULL);
nc->setNumberFormat(rotationSpeed2str);
nc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_SPEED);
setupMenu->addItem(nc);
msettings.Add(nc);

View File

@@ -1159,6 +1159,7 @@ CMenuOptionNumberChooser::CMenuOptionNumberChooser(const neutrino_locale_t name,
optionString = non_localized_name;
numberFormat = "%d";
numberFormatFunction = NULL;
observ = Observ;
slider_on = sliderOn;
}
@@ -1187,11 +1188,15 @@ int CMenuOptionNumberChooser::exec(CMenuTarget*)
int CMenuOptionNumberChooser::paint(bool selected)
{
const char * l_option;
char option_value[11];
char option_value[40];
if ((localized_value_name == NONEXISTANT_LOCALE) || ((*optionValue) != localized_value))
{
sprintf(option_value, numberFormat.c_str(), ((*optionValue) + display_offset));
if (numberFormatFunction) {
std::string s = numberFormatFunction(*optionValue + display_offset);
strncpy(option_value, s.c_str(), s.length());
} else
sprintf(option_value, numberFormat.c_str(), *optionValue + display_offset);
l_option = option_value;
}
else
@@ -1243,7 +1248,10 @@ int CMenuOptionNumberChooser::getWidth(void)
width += (w1 > w2) ? w1 : w2;
if (numberFormat != "%d") {
if (numberFormatFunction) {
std::string s = numberFormatFunction(0);
width += g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth(s.c_str(), true) - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth("0", true); // arbitrary
} else if (numberFormat != "%d") {
char format[numberFormat.length()];
snprintf(format, numberFormat.length(), numberFormat.c_str(), 0);
width += g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth(format, true) - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getRenderWidth("0", true);

View File

@@ -299,7 +299,7 @@ private:
bool slider_on;
CChangeObserver * observ;
std::string numberFormat;
std::string (*numberFormatFunction)(int num);
public:
CMenuOptionNumberChooser(const neutrino_locale_t name, int * const OptionValue, const bool Active, const int min_value, const int max_value, CChangeObserver * const Observ = NULL, const int print_offset = 0, const int special_value = 0, const neutrino_locale_t special_value_name = NONEXISTANT_LOCALE, const char * non_localized_name = NULL, bool sliderOn = false );
@@ -309,6 +309,7 @@ private:
int isMenueOptionChooser(void) const{return 1;}
int getWidth(void);
void setNumberFormat(std::string format) { numberFormat = format; }
void setNumberFormat(std::string (*fun)(int)) { numberFormatFunction = fun; }
};
class CMenuOptionChooser : public CAbstractMenuOptionChooser