void OSD::write(uint8_t c) { if(c == '|') { ClosePanel(); //It does all needed to finish auto increment and change current row OpenPanel(); //It does all needed to re-enable auto increment } else { spi_transfer(MAX7456_DMDI_reg); spi_transfer(c); } }
void CompatModePanel::Refresh() { Int32 mode; mAM->GetFrontActivityScreenCompatMode(&mode); if (mode == IActivityManager::COMPAT_MODE_ALWAYS || mode == IActivityManager::COMPAT_MODE_NEVER) { // No longer have something to switch. ClosePanel(); return; } Boolean on = (mode == IActivityManager::COMPAT_MODE_ENABLED); ICheckable::Probe(mOnButton.Get())->SetChecked(on); ICheckable::Probe(mOnButton.Get())->SetChecked(!on); }
void KeyScan_PoweroffFlow(void) { #if (KEYSCAN_POWEROFF_DET == ENABLE) UINT32 i; debug_err(("*********KeyScan_PoweroffFlow\r\n")); GPIOMap_TurnOffLCDBacklight();//for test if(GPIOMap_GetAcc12V()==FALSE) { TimerDelayMs(500); if(GPIOMap_GetAcc12V()==TRUE) { debug_err(("*********KeyScan_PoweroffFlow return \r\n")); GPIOMap_TurnOnLCDBacklight();//for test return; } } gBKeyscanDetACCEn = FALSE; // stop recording before powering off if video is recording now if (Primary_GetCurrentMode() == PRIMARY_MODE_MOVIE) { if (gUIAviIsRecording==TRUE) { Ux_PostEvent(NVTEVT_KEY_ENTER, 2, NVTEVT_KEY_PRESS, FLGKEY_PRESSED); } } //#NT#2009/03/23#Janice ::wait primary tsk idle for change mode busy Primary_CheckIdle(PRI_TIME_INFINITE); //#NT#2007/07/24#Janice -begin //make sure is not bad card,then check fst finish if (GetFSStatus() == FS_INIT_OK) { // Wait for filesystem done,if normal power off,else skip wait if(!g_bFilesysAbortCmd) { //check fst busy,wait inifinit would lock keyscantsk if (FilesysWaitCmdFinish(FST_TIME_NO_WAIT) == FST_STA_BUSY) { KeyScan_Poweroff(); //force power off make sure KeyScan_DetPoweroff would enter KeyScan_PoweroffFlow again return; } } } //#NT#2007/07/24#Janice -end // Pause KeyScan timer timer_pausePlay(g_uiKeyScanTimerID, _TIMER_PAUSE); // Terminate all task first debug_err(("*********AppInit_Close\r\n")); AppInit_Close(); // Save menu info debug_err(("*********Save_MenuInfo\r\n")); Save_MenuInfo(); KeyScan_PlaySound(KEYSCAN_SOUND_STARTUP); // Display poweroff logo if (GPIOMap_IsLCDBacklightOn() == FALSE && KeyScan_IsTVPlugIn() == FALSE && KeyScan_IsHDMIPlugIn() == FALSE) { //OpenPanel(&g_LCDCtrlObj, &g_LCDSize); //SysInit_DisplaySplashScreen(LOGO_POWEROFF,0,0); //UI_ClearOSD(_OSD_INDEX_TRANSPART); // clear OSD //ide_disable_osd(IDE_OSDID_1); //ide_enable_video(IDE_VIDEOID_1); //TimerDelayMs(100); //GPIOMap_TurnOnLCDBacklight(); } else { //SysInit_DisplaySplashScreen(LOGO_POWEROFF,0,0); //UI_ClearOSD(_OSD_INDEX_TRANSPART); // clear OSD } //TimerDelayMs(500); UI_ClearOSD(_OSD_INDEX_TRANSPART); // clear OSD ide_disable_video(IDE_VIDEOID_1); ide_disable_video(IDE_VIDEOID_2); //TimerDelayMs(10); TimerDelayMs(30); // Clear screen if (KeyScan_IsHDMIPlugIn() == TRUE) { UI_ClearOSD(_OSD_INDEX_BLACK); ide_wait_frame_end(); CloseTVHDMI(); } else if (KeyScan_IsTVPlugIn() == TRUE) UI_ClearOSD(_OSD_INDEX_BLACK); //for TV & HDMI.(sent black pattern when power off) else UI_ClearOSD(_OSD_INDEX_WHITE); //for Toppoly LCD.(need to sent white pattern when power off) // Close Panel ClosePanel(); TimerDelayMs(700); //for (i=0x10000; i>0; i--); // Panel enter sleep mode Lens_Shutter_Move(CLOSE); //GPIOMap_TurnOffLCDPower(); //TimerDelayMs(200); // Retract lens Photo_OpticalZoom_Retract(); // Turn off LCD, CCD... GPIOMap_TurnOffCCDPower(); // Turn off green and red LED KeyScan_TurnOffLED(KEYSCAN_LED_GREEN); KeyScan_TurnOffLED(KEYSCAN_LED_RED); pad_setPullUpDown(PAD_TV_DETECT, PAD_PULLDOWN);//jacky lan // set NAND write protect to stop NAND (write) accessing GPIOMap_SetNANDWp(); debug_err(("*********rtc_poweroffPWR\r\n")); // Power off #if 0 GPIOMap_SetPoweroffCtrlLow(); #else rtc_poweroffPWR(); #endif // Loop forever while (1) { debug_err(("*")); } #endif //KEYSCAN_POWEROFF_DET }
void KeyScan_DetTV(void) { BOOL bCurTVDet, bCurTVStatus; IMEIDE_ATTR ImeIdeAttr; UINT32 i, uiWindowEn; PrimaryModeID CurrMode; TV_DEVICE_OBJ TVObj; AUDIO_OUTPUT AudioOutput; IPL_OBJ IplObj; DisplaySizeInfor Displaysizeinfor; static BOOL first_2 = TRUE; static UINT32 changModeDelay =0; if ((KeyScan_IsUSBPlug() == TRUE) || (KeyScan_IsHDMIPlugIn() == TRUE)) return; if(gbKeyscanDetTvEn==FALSE) return ; bCurTVDet = GPIOMap_DetTV(); //bCurTVStatus = (BOOL)(bCurTVDet & bLastTVDet); bCurTVStatus = TRUE; if (bCurTVStatus != bLastTVStatus) { //-----------jack lan --------------------- KeyScan_SetDetGSPNAVIEn(FALSE); ide_disable_video(IDE_VIDEOID_1); ide_disable_video(IDE_VIDEOID_2); if((gUIAviIsRecording == TRUE)||(first_2==TRUE)) { first_2=FALSE; gbKscanTVPlug = TRUE; //Ux_PostEvent(NVTEVT_MOVIEAUTORECORDSTOP, 0); // for(changModeDelay=0;changModeDelay<300;changModeDelay++) //{} debug_msg("Keyscan TV:%d..\r\n",gbKscanTVPlug); } else { gbKscanTVPlug = FALSE; } //--------------------------------------- CurrMode = Primary_GetCurrentMode(); // Enter dummy mode first Primary_ChangeMode(PRIMARY_MODE_DUMMY); Primary_Wait4ChangeModeDone(); // TV is plugging in if (bCurTVStatus == TRUE) { debug_err(("TV is plugged, GPIOMap_DetTV = %d\r\n", bCurTVDet)); bTVStatus = TRUE; // Turn off LCD backlight GPIOMap_TurnOffLCDBacklight(); ide_disable_video(IDE_VIDEOID_1); ide_disable_video(IDE_VIDEOID_2); // Close LCD panel ClosePanel(); GPIOMap_TurnOffLCDPower(); pinmux_select_lcd(PINMUX_GPIO); // Disable all windows uiWindowEn = ide_get_window_en(); ide_set_allwindow_dis(); ide_set_load(); ide_wait_frame_end(); TVObj.bIDESrcPLL2 = g_LCDCtrlObj.bIDESrcPLL2; TVObj.uiIDESrcCLK = g_LCDCtrlObj.uiIDESrcCLK; TVObj.uiTVFSADJ = TV_FSADJ_3_0_K;//TV_FSADJ_3_3_K; // Init TV object if (Get_TVModeIndex() == TV_MODE_NTSC) { // NTSC InitTVNTSC_OBJ(&TVObj); OpenTVNTSC(&g_LCDSize); uiCurrentTVMode = TV_MODE_NTSC; } else { // PAL InitTVPAL_OBJ(&TVObj); OpenTVPAL(&g_LCDSize); uiCurrentTVMode = TV_MODE_PAL; } // Scaling OSD to new size KeyScan_ScaleDisplay(); #if 0 switch (Primary_GetCurrentMode()) { // If you won't call playback task to display last image in preview mode, // you don't have to call PB_SetIMEIDESize() in PHOTO mode. case PRIMARY_MODE_PHOTO: IplObj.uiCmd = IPL_CMD_CHG_SIZE_IME1; IplObj.uiImeOutWidth1 = g_LCDSize.uiWidth; IplObj.uiImeOutHeight1 = g_LCDSize.uiHeight; IPL_SetCmd(&IplObj); Displaysizeinfor.DisplayInHsize = g_LCDSize.uiWidth; Displaysizeinfor.DisplayInVsize = g_LCDSize.uiHeight; Displaysizeinfor.DisplayInLineoffset = g_LCDSize.uiWidth; Displaysizeinfor.DisplayOutHsize = g_LCDSize.uiWinWidth; Displaysizeinfor.DisplayOutVsize = g_LCDSize.uiWinHeight; PhotoDisplay_ChgSize(&Displaysizeinfor,TRUE); ImeIdeAttr.uiImeOutH = g_LCDSize.uiWidth; ImeIdeAttr.uiImeOutV = g_LCDSize.uiHeight; ImeIdeAttr.uiIdeOutH = g_LCDSize.uiWinWidth; ImeIdeAttr.uiIdeOutV = g_LCDSize.uiWinHeight; PB_SetIMEIDESize(&ImeIdeAttr); break; case PRIMARY_MODE_MOVIE: // Set to 1/4 size to reduce memory bandwith requirement IplObj.uiCmd = IPL_CMD_CHG_SIZE_IME1; IplObj.uiImeOutWidth1 = g_LCDSize.uiWidth >> 1; IplObj.uiImeOutHeight1 = g_LCDSize.uiHeight >> 1; IPL_SetCmd(&IplObj); Displaysizeinfor.DisplayInHsize = g_LCDSize.uiWidth >> 1; Displaysizeinfor.DisplayInVsize = g_LCDSize.uiHeight >> 1; Displaysizeinfor.DisplayInLineoffset = g_LCDSize.uiWidth; Displaysizeinfor.DisplayOutHsize = g_LCDSize.uiWinWidth; Displaysizeinfor.DisplayOutVsize = g_LCDSize.uiWinHeight; PhotoDisplay_ChgSize(&Displaysizeinfor,TRUE); break; case PRIMARY_MODE_PLAYBACK: //Todo: FlowPB_UpdateThumbRect(); ImeIdeAttr.uiImeOutH = g_LCDSize.uiWidth; ImeIdeAttr.uiImeOutV = g_LCDSize.uiHeight; ImeIdeAttr.uiIdeOutH = g_LCDSize.uiWinWidth; ImeIdeAttr.uiIdeOutV = g_LCDSize.uiWinHeight; PB_SetIMEIDESize(&ImeIdeAttr); break; default: break; } #endif // Enable IDE ide_wait_frame_end(); //ide_set_en(TRUE); // Delay to wait for TV DAC stable for (i=16; i>0; i--) { ide_wait_frame_end(); } ide_set_en(TRUE); // Enable all windows ide_set_allwindow_en(uiWindowEn); ide_set_load(); // forced set to playback mode //CurrMode = PRIMARY_MODE_PLAYBACK; }
/** Detect HDMI is plugging in or unplugged Detect HDMI is plugging in or unplugged. @param void @return void */ void KeyScan_DetHDMI(void) { BOOL bCurHDMIDet, bCurHDMIStatus; UINT32 i, uiWindowEn; PrimaryModeID CurrMode; IPL_OBJ IplObj; IMEIDE_ATTR ImeIdeAttr; //#NT#2009/08/18#Klins Chen#[0006129] -begin //#Add to select audio channel to HDMI interface AUDIO_SETTING AudioSetting; AudioSetting.SamplingRate = AUDIO_SR_32000; // Sampling rate = Clock / 256 //#NT#2009/08/18#Klins Chen#[0006129] -end if ((KeyScan_IsUSBPlug() ==TRUE) || (KeyScan_IsTVPlugIn()==TRUE)) { return; } bCurHDMIDet = GPIOMap_DetHDMI(); bCurHDMIStatus = (BOOL)(bCurHDMIDet & bLastHDMIDet); if (bCurHDMIStatus != bLastHDMIStatus) { // Get current mode CurrMode = Primary_GetCurrentMode(); Primary_ChangeMode(PRIMARY_MODE_DUMMY); Primary_Wait4ChangeModeDone(); // HDMI is plugging in if (bCurHDMIStatus == TRUE) { debug_err(("# HDMI is plugging in #\n\r")); bHDMIStatus = TRUE; // Turn off LCD backlight GPIOMap_TurnOffLCDBacklight(); ide_disable_video(IDE_VIDEOID_1); ide_disable_video(IDE_VIDEOID_2); // Close LCD panel ClosePanel(); GPIOMap_TurnOffLCDPower(); pinmux_select_lcd(PINMUX_GPIO); // Disable all windows uiWindowEn = ide_get_window_en(); ide_set_allwindow_dis(); ide_set_load(); ide_wait_frame_end(); //Init HDMI // This settings is customized by project InitTVHDMI(HDMI_1280X720P60, HDMI_AUDIO32KHZ); OpenTVHDMI(&g_LCDCtrlObj,&g_LCDSize); //#NT#2010/04/26#Klins Chen -begin #if (_CEC_CONTROL_ == ENABLE) cec_open(); cec_setDeviceVendorID(CECVENDOR_NONE); cec_hookRemoteCallBack(KeyScan_parseRemoteKey, NULL); #endif //#NT#2010/04/26#Klins Chen -end //Display ratio ImgCapture_SetParameter(_DispRatio, _Ratio_16_9); // Scaling OSD to new size KeyScan_ScaleDisplay(); // Enable IDE ide_waitFrameEnd(); ide_setEn(TRUE); // Delay to wait for IDE stable for (i=6; i>0; i--) { ide_wait_frame_end(); } // Enable all windows ide_set_allwindow_en(uiWindowEn); ide_set_load(); //#NT#2009/11/24#Philex - begin // change audio output path/sampling rate AudioSetting.Output = AUDIO_OUTPUT_NONE; KeyScan_HDMIAudioSetting(AudioSetting, TRUE); //#NT#2009/11/24#Philex - end // forced set to playback mode CurrMode = PRIMARY_MODE_PLAYBACK; } // HDMI is unplugged else { debug_err(("# HDMI is unplugged #\n\r")); bHDMIStatus = FALSE; ide_disable_video(IDE_VIDEOID_1); ide_disable_video(IDE_VIDEOID_2); //#NT#2010/04/26#Klins Chen -begin #if (_CEC_CONTROL_ == ENABLE) cec_hookRemoteCallBack(NULL, NULL); cec_close(); #endif //#NT#2010/04/26#Klins Chen -end // Close HDMI ide_wait_frame_end(); CloseTVHDMI(); // Disable all windows uiWindowEn = ide_get_window_en(); ide_set_allwindow_dis(); ide_set_load(); ide_wait_frame_end(); // Open LCD panel GPIOMap_TurnOnLCDPower(); OpenPanel(&g_LCDCtrlObj, &g_LCDSize); //Display ratio #if (_LCDTYPE_ == _LCDTYPE_TXDT300C_) ImgCapture_SetParameter(_DispRatio, _Ratio_16_9); #else ImgCapture_SetParameter(_DispRatio, _Ratio_4_3); #endif // Scaling OSD to new size KeyScan_ScaleDisplay(); //ImeIdeAttr.uiImeOutH = g_LCDSize.uiWidth; //ImeIdeAttr.uiImeOutV = g_LCDSize.uiHeight; //ImeIdeAttr.uiIdeOutH = g_LCDSize.uiWinWidth; //ImeIdeAttr.uiIdeOutV = g_LCDSize.uiWinHeight; // Enable IDE ide_wait_frame_end(); ide_setEn(TRUE); // Delay 6 IDE frames to avoid seeing garbage display for (i=6; i>0; i--) { ide_wait_frame_end(); } // Enable all windows ide_set_allwindow_en(uiWindowEn); ide_set_load(); //#NT#2009/08/18#Klins Chen#[0006129] -begin //#Add to select audio channel to HDMI interface AudioSetting.Output = AUDIO_OUTPUT_SPK; KeyScan_HDMIAudioSetting(AudioSetting, FALSE); //#NT#2009/08/18#Klins Chen#[0006129] -end TimerDelayMs(150); // delay time before turn on LCD backlight } Primary_ChangeMode(CurrMode); Primary_Wait4ChangeModeDone(); } bLastHDMIDet = bCurHDMIDet; bLastHDMIStatus = bCurHDMIStatus; }