diff --git a/data/locale/english.locale b/data/locale/english.locale index 22d5a9ed5..e1467ac84 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1046,7 +1046,7 @@ rfmod.standby Enable modulator rfmod.test Test pattern extra.zapit_scanpids Scan/Use pids extra.zapit_rezap_time Re-Zap on emu switch time -extra.zapit_hvoltage High (13.5/18.5) voltage +extra.zapit_hvoltage 18V for rotor moving extra.key_unlock Unlock key servicemenu.imageinfo Image info imageinfo.creator Creator: diff --git a/lib/libtuxtxt/tuxtxt.cpp b/lib/libtuxtxt/tuxtxt.cpp index f056a1ffd..346cd2f6a 100644 --- a/lib/libtuxtxt/tuxtxt.cpp +++ b/lib/libtuxtxt/tuxtxt.cpp @@ -14,9 +14,12 @@ ******************************************************************************/ #include "tuxtxt.h" -#include #include "driver/framebuffer.h" #include "teletext.h" +#include +#include + +extern cVideo * videoDecoder; void FillRect(int x, int y, int w, int h, int color) { @@ -1601,11 +1604,6 @@ int tuxtx_main(int _rc, int pid, int page) rc = _rc; lfb = (unsigned char *) CFrameBuffer::getInstance()->getFrameBufferPointer(); - int x = CFrameBuffer::getInstance()->getScreenX(); - int y = CFrameBuffer::getInstance()->getScreenY(); - int w = CFrameBuffer::getInstance()->getScreenWidth(); - int h = CFrameBuffer::getInstance()->getScreenHeight(); - tuxtxt_cache.vtxtpid = pid; if(tuxtxt_cache.vtxtpid == 0) @@ -1632,15 +1630,22 @@ int tuxtx_main(int _rc, int pid, int page) /* set variable screeninfo for double buffering */ var_screeninfo.yoffset = 0; #if 0 - sx = 80; - sy = 40; - ex = var_screeninfo.xres - sx; - ey = var_screeninfo.yres - sy; -#endif sx = x + 10; sy = y + 10; ex = x + w - 10; ey = y + h - 10; +#endif + int x = CFrameBuffer::getInstance()->getScreenX(); + int y = CFrameBuffer::getInstance()->getScreenY(); + int w = CFrameBuffer::getInstance()->getScreenWidth(); + int h = CFrameBuffer::getInstance()->getScreenHeight(); + + int tx = (w - (h * 4 / 3)) / 2; + sx = x + tx; + ex = x + w - tx; + sy = y; + ey = y + h; +printf("[tuxtxt] screen is %dx%d at %dx%d border %d\n", ex-sx, ey-sy, sx, sy, tx); /* initialisations */ transpmode = 0; @@ -2015,7 +2020,8 @@ int Init() setfontwidth(fontwidth_normal); fontwidth_topmenumain = (TV43STARTX-sx) / 40; fontwidth_topmenusmall = (ex- TOPMENUSTARTX) / TOPMENUCHARS; - fontwidth_small = (TV169FULLSTARTX-sx) / 40; + //fontwidth_small = (TV169FULLSTARTX-sx) / 40; + fontwidth_small = (CFrameBuffer::getInstance()->getScreenWidth()/2) / 40; ymosaic[0] = 0; /* y-offsets for 2*3 mosaic */ ymosaic[1] = (fontheight + 1) / 3; ymosaic[2] = (fontheight * 2 + 1) / 3; @@ -3890,26 +3896,28 @@ void SwitchScreenMode(int newscreenmode) { fw = fontwidth_topmenumain; fh = fontheight; - tw = TV43WIDTH; displaywidth= (TV43STARTX -sx); StartX = sx; //+ (((ex-sx) - (40*fw+2+tw)) / 2); /* center screen */ tx = TV43STARTX; ty = TV43STARTY; + tw = TV43WIDTH; th = TV43HEIGHT; } else /* 2: split with full height tv picture */ { + StartX = CFrameBuffer::getInstance()->getScreenX(); fw = fontwidth_small; fh = fontheight; tx = TV169FULLSTARTX; ty = TV169FULLSTARTY; tw = TV169FULLWIDTH; th = TV169FULLHEIGHT; - displaywidth= (TV169FULLSTARTX-sx); + displaywidth = CFrameBuffer::getInstance()->getScreenWidth()/2; } setfontwidth(fw); + videoDecoder->Pig(tx, ty, tw, th, CFrameBuffer::getInstance()->getScreenWidth(true), CFrameBuffer::getInstance()->getScreenHeight(true)); #if 0 int sm = 0; ioctl(pig, VIDIOC_OVERLAY, &sm); @@ -3929,6 +3937,16 @@ void SwitchScreenMode(int newscreenmode) #if 0 ioctl(pig, VIDIOC_OVERLAY, &screenmode); #endif + videoDecoder->Pig(-1, -1, -1, -1); + + int x = CFrameBuffer::getInstance()->getScreenX(); + int y = CFrameBuffer::getInstance()->getScreenY(); + int w = CFrameBuffer::getInstance()->getScreenWidth(); + int h = CFrameBuffer::getInstance()->getScreenHeight(); + + int tx = (w - (h * 4 / 3)) / 2; + sx = x + tx; + ex = x + w - tx; setfontwidth(fontwidth_normal); displaywidth= (ex-sx); @@ -5117,12 +5135,14 @@ void RenderPage() setfontwidth(fontwidth_normal); fontwidth_topmenumain = (TV43STARTX-sx) / (40-nofirst); fontwidth_topmenusmall = (ex- TOPMENUSTARTX) / TOPMENUCHARS; - fontwidth_small = (TV169FULLSTARTX-sx) / (40-nofirst); + //fontwidth_small = (TV169FULLSTARTX-sx) / (40-nofirst); + fontwidth_small = (CFrameBuffer::getInstance()->getScreenWidth()/2) / (40-nofirst); switch(screenmode) { case 0: setfontwidth(fontwidth_normal) ; displaywidth= (ex -sx);break; case 1: setfontwidth(fontwidth_topmenumain); displaywidth= (TV43STARTX -sx);break; - case 2: setfontwidth(fontwidth_small) ; displaywidth= (TV169FULLSTARTX-sx);break; + //case 2: setfontwidth(fontwidth_small) ; displaywidth= (TV169FULLSTARTX-sx);break; + case 2: setfontwidth(fontwidth_small) ; displaywidth= (CFrameBuffer::getInstance()->getScreenWidth()/2);break; } if (transpmode || (boxed && !screenmode)) { diff --git a/lib/libtuxtxt/tuxtxt.h b/lib/libtuxtxt/tuxtxt.h index aa6a85daf..b61468b8e 100644 --- a/lib/libtuxtxt/tuxtxt.h +++ b/lib/libtuxtxt/tuxtxt.h @@ -84,14 +84,17 @@ int displaywidth; #define fontwidth_small_lcd 8 #define TV43STARTX (ex - 146) //(StartX + 2 + (40-nofirst)*fontwidth_topmenumain + (40*fontwidth_topmenumain/abx)) -#define TV169FULLSTARTX (sx+ 8*40) //(sx +(ex +1 - sx)/2) #define TVENDX ex #define TVENDY (StartY + 25*fontheight) #define TV43WIDTH 144 /* 120 */ #define TV43HEIGHT 116 /* 96 */ #define TV43STARTY (TVENDY - TV43HEIGHT) + +//#define TV169FULLSTARTX (sx+ 8*40) //(sx +(ex +1 - sx)/2) +#define TV169FULLSTARTX (CFrameBuffer::getInstance()->getScreenX() + CFrameBuffer::getInstance()->getScreenWidth()/2) #define TV169FULLSTARTY sy -#define TV169FULLWIDTH (ex - sx)/2 +//#define TV169FULLWIDTH (ex - sx)/2 +#define TV169FULLWIDTH (CFrameBuffer::getInstance()->getScreenWidth()/2) #define TV169FULLHEIGHT (ey - sy) #define TOPMENUSTARTX TV43STARTX+2 diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 481c1d58f..77365a946 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -682,6 +682,7 @@ int CChannelList::show() else if ( msg == CRCInput::RC_spkr ) { new_mode_active = (new_mode_active ? 0 : 1); paintHead(); + showChannelLogo(); } else if (CRCInput::isNumeric(msg) && (this->historyMode || g_settings.sms_channel)) { if (this->historyMode) { //numeric zap @@ -941,7 +942,7 @@ int CChannelList::hasChannelID(t_channel_id channel_id) // for adjusting bouquet's channel list after numzap or quickzap void CChannelList::setSelected( int nChannelNr) { -printf("CChannelList::setSelected me %s %d -> %s\n", name.c_str(), nChannelNr, (nChannelNr < chanlist.size() && chanlist[nChannelNr] != NULL) ? chanlist[nChannelNr]->getName().c_str() : "********* NONE *********"); +//printf("CChannelList::setSelected me %s %d -> %s\n", name.c_str(), nChannelNr, (nChannelNr < chanlist.size() && chanlist[nChannelNr] != NULL) ? chanlist[nChannelNr]->getName().c_str() : "********* NONE *********"); selected = nChannelNr; //FIXME real difference between tuned and selected ?! tuned = nChannelNr; diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 85dc6fa91..9ce9321e1 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -336,7 +336,7 @@ void CVideoSettings::nextMode(void) g_settings.video_Mode = VIDEOMENU_VIDEOMODE_OPTIONS[curmode].key; CVFD::getInstance()->ShowText((char *)text); videoDecoder->SetVideoSystem(g_settings.video_Mode); - //videoDecoder->SetVideoMode((analog_mode_t) g_settings.analog_mode);//FIXME + ShowHintUTF(LOCALE_VIDEOMENU_VIDEOMODE, text, 450, 2); } @@ -415,13 +415,12 @@ bool CVideoSettings::changeNotify(const neutrino_locale_t OptionName, void *) else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_VIDEOMENU_VIDEOMODE)) { videoDecoder->SetVideoSystem(g_settings.video_Mode); - //videoDecoder->SetVideoMode((analog_mode_t) g_settings.analog_mode);//FIXME + if (prev_video_mode != g_settings.video_Mode) { frameBuffer->paintBackground(); if (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_VIDEOMODE_OK), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NEUTRINO_ICON_INFO) != CMessageBox::mbrYes) { g_settings.video_Mode = prev_video_mode; videoDecoder->SetVideoSystem(g_settings.video_Mode); - //videoDecoder->SetVideoMode((analog_mode_t) g_settings.analog_mode);//FIXME } else prev_video_mode = g_settings.video_Mode; } @@ -1153,6 +1152,7 @@ void CNeutrinoApp::InitScanSettings(CMenuWidget &settings) motorMenu->addItem(GenericMenuSeparatorLine); motorMenu->addItem(new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_ROTATION_SPEED, (int *)&zapitCfg.motorRotationSpeed, true, 0, 64, NULL) ); + motorMenu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_HVOLTAGE, (int *)&zapitCfg.highVoltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); //motorMenu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_USE_GOTOXX, (int *)&zapitCfg.useGotoXX, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); CStringInput * toff; @@ -1542,7 +1542,6 @@ void CNeutrinoApp::InitMiscSettings(CMenuWidget &miscSettings) miscSettingsGeneral->addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, true, g_settings.shutdown_count, miscSettings_shutdown_count)); miscSettingsGeneral->addItem(new CMenuOptionChooser(LOCALE_EXTRA_STARTSTANDBY, &g_settings.power_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - //miscSettings.addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SAT_DISPLAY, &g_settings.infobar_sat_display, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); miscSettingsGeneral->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ROTORSWAP, &g_settings.rotor_swap, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); miscSettingsGeneral->addItem(new CMenuOptionChooser(LOCALE_INFOVIEWER_SUBCHAN_DISP_POS, &g_settings.infobar_subchan_disp_pos, INFOBAR_SUBCHAN_DISP_POS_OPTIONS, INFOBAR_SUBCHAN_DISP_POS_OPTIONS_COUNT, true)); @@ -1619,10 +1618,9 @@ void CNeutrinoApp::InitMiscSettings(CMenuWidget &miscSettings) miscSettingsInfobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_CASYSTEM_DISPLAY, &g_settings.casystem_display, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); miscSettingsInfobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_DISP_LOG, &g_settings.infobar_show_channellogo, LOCALE_MISCSETTINGS_INFOBAR_DISP_OPTIONS, LOCALE_MISCSETTINGS_INFOBAR_DISP_OPTIONS_COUNT, true)); miscSettingsInfobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_VIRTUAL_ZAP_MODE, &g_settings.virtual_zap_mode, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + miscSettingsInfobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SAT_DISPLAY, &g_settings.infobar_sat_display, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); miscSettings.addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_INFOBAR, true, NULL, miscSettingsInfobar, NULL, CRCInput::RC_1)); - - #if 0 CCpuFreqNotifier * cpuNotifier = new CCpuFreqNotifier(); miscSettings.addItem(new CMenuOptionChooser(LOCALE_CPU_FREQ_NORMAL, &g_settings.cpufreq, CPU_FREQ_OPTIONS, CPU_FREQ_OPTION_COUNT, true, cpuNotifier)); diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index c35c87cd9..138783d22 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -764,7 +764,8 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms) if (currentVoltage == voltage) return; - printf("[fe%d] voltage %s high %d\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18", highVoltage); + printf("[fe%d] voltage %s\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18"); + //printf("[fe%d] voltage %s high %d\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18", highVoltage); //int val = highVoltage; //fop(ioctl, FE_ENABLE_HIGH_LNB_VOLTAGE, val); @@ -881,7 +882,7 @@ void CFrontend::sendMotorCommand(uint8_t cmdtype, uint8_t address, uint8_t comma cmd.msg[3] = parameter1; cmd.msg[4] = parameter2; cmd.msg_len = 3 + num_parameters; - secSetVoltage(SEC_VOLTAGE_13, 15); + secSetVoltage(highVoltage ? SEC_VOLTAGE_18 : SEC_VOLTAGE_13, 15); secSetTone(SEC_TONE_OFF, 25); for(i = 0; i <= repeat; i++) @@ -898,7 +899,7 @@ void CFrontend::positionMotor(uint8_t motorPosition) }; if (motorPosition != 0) { - secSetVoltage(SEC_VOLTAGE_13, 15); + secSetVoltage(highVoltage ? SEC_VOLTAGE_18 : SEC_VOLTAGE_13, 15); secSetTone(SEC_TONE_OFF, 25); cmd.msg[3] = motorPosition;