INT32 UIFlowWndPhoto_OnCustom1(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { UINT32 uiKeyAct; uiKeyAct = paramNum ? paramArray[0] : 0; #if((_MODEL_DSC_ == _MODEL_DUAL_F6PLUS_)||(_MODEL_DSC_ == _MODEL_DUAL_V18_DT_)||(_MODEL_DSC_ == _MODEL_DUAL_HLYD_)\ ||(_MODEL_DSC_ == _MODEL_DUAL_G2800_)||(_MODEL_DSC_ == _MODEL_DUAL_NAZHIDA_)\ ||(_MODEL_DSC_ ==_MODEL_CARDV_S650_)||(_MODEL_DSC_ == _MODEL_DUAL_HLYD_MUBEN_)\ ||(_MODEL_DSC_ == _MODEL_DUAL_QIZHENG_M1_)||(_MODEL_DSC_ == _MODEL_DUAL_790S_)\ ||(_MODEL_DSC_ == _MODEL_DUAL_V18_LYSZ_)||(_MODEL_DSC_==_MODEL_DUAL_89M3_)\ ||(_MODEL_DSC_ == _MODEL_DUAL_SAIBOSHI_)) switch (uiKeyAct) { case NVTEVT_KEY_PRESS: if((KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { if(GPIOMap_IsLCDBacklightOn()==TRUE) GPIOMap_TurnOffLCDBacklight(); else GPIOMap_TurnOnLCDBacklight(); } break; } #endif return NVTEVT_CONSUME; }
void TouchPanel_InteruptHandle(UINT32 X_press,UINT32 Y_press) /// 15ms one time { UINT32 value; UINT8 x_low_press; UINT8 x_high_press; UINT8 y_low_press; UINT8 y_high_press; //UINT32 X_press,Y_press; static BOOL tp_press=FALSE; static BOOL tp_press_move=FALSE; static UINT32 press_counter=1,press_counter_move=1; static BOOL have_key_flag=FALSE; static BOOL first=TRUE; UINT32 current_tick; static UINT32 x_press_pre,y_press_pre; static UINT32 x_press_move_pre,y_press_move_pre; static BOOL first_press=TRUE; FLOAT distance,speed,sum,horizontal,vertical; UINT32 UI_X, UI_Y; static BOOL IngerTouchKeyEvent=FALSE; static UINT32 tpPressStatus; if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); } else { //if((abs(X_press-x_press_pre)<18)&&(abs(Y_press-y_press_pre)<18)) { press_counter++; //press_counter_move=1; tp_press_move=FALSE; if(press_counter>=4 && press_counter<1000) { have_key_flag=TRUE; //if(tp_press==FALSE) { tp_press=TRUE; press_counter=1000; UI_X=X_press; UI_Y=Y_press; debug_msg("gesture press only \r\n"); UISound_Play(DEMOSOUND_SOUND_KEY_TONE); Ux_PostEvent(NVTEVT_KEY_TP, 3, GESTURE_RELEASE,UI_X,UI_Y); press_counter = 1; } } } #if 0 if(1)//(IngerTouchKeyEvent==FALSE) { if(have_key_flag==FALSE) { //press_counter++; if((abs(X_press-x_press_pre)<18)&&(abs(Y_press-y_press_pre)<18)) { press_counter++; //press_counter_move=1; tp_press_move=FALSE; if(press_counter>=6 && press_counter<1000) { have_key_flag=TRUE; //if(tp_press==FALSE) { tp_press=TRUE; press_counter=1000; UI_X=X_press; UI_Y=Y_press; debug_msg("gesture press only \r\n"); UISound_Play(DEMOSOUND_SOUND_KEY_TONE); Ux_PostEvent(NVTEVT_KEY_TP, 3, GESTURE_PRESSONLY,UI_X,UI_Y); } } } x_press_pre=X_press; y_press_pre=Y_press; UI_X=X_press; UI_Y=Y_press; debug_msg("key press: %d %d %d %d, counter:%d\r\n",UI_X,UI_Y,x_press_move_pre,y_press_move_pre,press_counter); } else if((have_key_flag==TRUE)) { press_counter++; sum=(X_press-x_press_move_pre)*(X_press-x_press_move_pre)+(Y_press-y_press_move_pre)*(Y_press-y_press_move_pre); distance=sqrt(sum); speed=distance/press_counter; vertical=(FLOAT)abs(Y_press-y_press_move_pre); horizontal=(FLOAT)abs(X_press-x_press_move_pre); debug_msg("key release: %d %d %d %d, counter:%d, dis:%f, speed:%f, sum:%f\r\n",x_press_move_pre,y_press_move_pre,X_press,Y_press,press_counter,distance,speed,sum); debug_msg("vertical: %f,horizontal:%f \r\n",vertical/distance,horizontal/distance); { if(tp_press==TRUE) { tp_press=FALSE; debug_msg("gesture release \r\n"); UI_X=X_press; UI_Y=Y_press; Ux_PostEvent(NVTEVT_KEY_TP, 3, GESTURE_RELEASE,UI_X,UI_Y); } } if(tp_press==TRUE) { tp_press=FALSE; } press_counter=1; have_key_flag=FALSE; } } #endif } System_ResetPowerSaveCount(); }
void UI_DetCustomerModeKey(void) { static UINT32 uiDownKey = KEYSCAN_CUSTOMER_UNKNOWN; static UINT32 uiDownState = KEYSCAN_CUSTOMER_INIT_STATE; static UINT32 uiDownKeyPressCount = 0; static UINT32 uiUpKey = KEYSCAN_CUSTOMER_UNKNOWN; static UINT32 uiUpState = KEYSCAN_CUSTOMER_INIT_STATE; static UINT32 uiUpKeyPressCount = 0; UINT32 uiADCValue; uiADCValue=adc_readData(1); if((uiADCValue>(KEY_ADC_DOWN-KEY_ADC_RANGE))&&(uiADCValue<(KEY_ADC_DOWN+KEY_ADC_RANGE))) { // Debounce if (uiDownKey == KEYSCAN_CUSTOMER_PRESSED) { if (uiDownState == KEYSCAN_CUSTOMER_RELEASE_STATE) { uiDownKeyPressCount++; debug_err(("uiDownKeyPressCount : %d....%d\r\n",uiDownKeyPressCount,KEYSCAN_CUSTOMER_COUNT)); if (uiDownKeyPressCount > KEYSCAN_CUSTOMER_COUNT) { uiDownState = KEYSCAN_CUSTOMER_PRESS_STATE; } } if(uiDownState == KEYSCAN_CUSTOMER_PRESS_STATE) { //uiKeyCode = FLGKEY_KEY_POWER; uiDownKeyPressCount = 0; uiDownKey = KEYSCAN_CUSTOMER_UNKNOWN; uiDownState = KEYSCAN_CUSTOMER_INIT_STATE; UISound_Play(DEMOSOUND_SOUND_KEY_TONE); if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } else { Ux_PostEvent(NVTEVT_KEY_DOWN, 1, NVTEVT_KEY_CONTINUE); } } } else { uiDownKey = KEYSCAN_PWRKEY_PRESSED; } } else { // Debounce if (uiDownKey == KEYSCAN_CUSTOMER_RELEASED) { if (uiDownState == KEYSCAN_CUSTOMER_INIT_STATE) { uiDownState = KEYSCAN_CUSTOMER_RELEASE_STATE; } if (uiDownKeyPressCount) { uiDownKeyPressCount = 0; UISound_Play(DEMOSOUND_SOUND_KEY_TONE); if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } else { Ux_PostEvent(NVTEVT_KEY_DOWN, 1, NVTEVT_KEY_PRESS); } } } else { uiDownKey = KEYSCAN_CUSTOMER_RELEASED; } } if((uiADCValue>(KEY_ADC_UP-KEY_ADC_RANGE))&&(uiADCValue<(KEY_ADC_UP+KEY_ADC_RANGE))) { // Debounce if (uiUpKey == KEYSCAN_CUSTOMER_PRESSED) { if (uiUpState == KEYSCAN_CUSTOMER_RELEASE_STATE) { uiUpKeyPressCount++; debug_err(("uiUpKeyPressCount : %d....%d\r\n",uiUpKeyPressCount,KEYSCAN_CUSTOMER_COUNT)); if (uiUpKeyPressCount > KEYSCAN_CUSTOMER_COUNT) { uiUpState = KEYSCAN_CUSTOMER_PRESS_STATE; } } if(uiUpState == KEYSCAN_CUSTOMER_PRESS_STATE) { //uiKeyCode = FLGKEY_KEY_POWER; uiUpKeyPressCount = 0; uiUpKey = KEYSCAN_CUSTOMER_UNKNOWN; uiUpState = KEYSCAN_CUSTOMER_INIT_STATE; UISound_Play(DEMOSOUND_SOUND_KEY_TONE); if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } else { Ux_PostEvent(NVTEVT_KEY_UP, 1, NVTEVT_KEY_CONTINUE); } } } else { uiUpKey = KEYSCAN_PWRKEY_PRESSED; } } else { // Debounce if (uiUpKey == KEYSCAN_CUSTOMER_RELEASED) { if (uiUpState == KEYSCAN_CUSTOMER_INIT_STATE) { uiUpState = KEYSCAN_CUSTOMER_RELEASE_STATE; } if (uiUpKeyPressCount) { uiUpKeyPressCount = 0; UISound_Play(DEMOSOUND_SOUND_KEY_TONE); if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } else { Ux_PostEvent(NVTEVT_KEY_UP, 1, NVTEVT_KEY_PRESS); } } } else { uiUpKey = KEYSCAN_CUSTOMER_RELEASED; } } }
INT32 System_UserKeyFilter(NVTEVT evt, UINT32 paramNum, UINT32 *paramArray) { UINT32 key = evt; if(IN_RANGE_EVENT(key, NVTEVT_KEY_STATUS_START, NVTEVT_KEY_STATUS_END)) //Status class { System_ResetDetCloseLenCount(); System_ResetPowerSaveCount(); #if (STATUSKEY_FUNCTION == ENABLE) DBG_IND("^Bgroup key event=0x%x\r\n", key); if(g_bConsumeStatus) { g_bConsumeStatus = 0; } else { UINT32 uiDscMode = Input_Key2Mode(key); DBG_IND("^YDscMode=0x%x\r\n", uiDscMode); //FlowMode_OnKeyMode(uiDscMode); UI_Switch_DscMode(uiDscMode,DSCMODE_SWITCH_FORCE,DSCMODE_SWITCHDIR_DONT_CARE); } #endif return NVTEVT_CONSUME; } else if(IN_RANGE_EVENT(key, NVTEVT_KEY_BUTTON_START, NVTEVT_KEY_BUTTON_END)) //Button class { if(IN_RANGE_EVENT(key, NVTEVT_KEY_PRESS_START, NVTEVT_KEY_PRESS_END)) //Press key { #if (_MODEL_DSC_ == _MODEL_CARDV_) #else if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); return NVTEVT_CONSUME; } #endif if(key == NVTEVT_KEY_POWER) { return NVTEVT_CONSUME; } System_ResetDetCloseLenCount(); if(GxPower_GetControl(GXPWR_CTRL_SLEEP_LEVEL) > 1) // drop key if sleep level > 1 { //NOTE! do not set GXPWR_CTRL_SLEEP_RESET before get GXPWR_CTRL_SLEEP_LEVEL, // because GXPWR_CTRL_SLEEP_LEVEL status maybe alter by sleep wakeup flow~ System_ResetPowerSaveCount(); return NVTEVT_CONSUME; } else { System_ResetPowerSaveCount(); if (m_uiAnyKeyUnlockEn) { Ux_PostEvent(NVTEVT_KEY_PRESS_START, 1, key); return NVTEVT_CONSUME; } return NVTEVT_PASS; } } else if(IN_RANGE_EVENT(key, NVTEVT_KEY_CONTINUE_START, NVTEVT_KEY_CONTINUE_END)) //Contine key { if(key == NVTEVT_KEY_POWER_CONT) { return NVTEVT_CONSUME; } System_ResetDetCloseLenCount(); System_ResetPowerSaveCount(); return NVTEVT_PASS; } else if(IN_RANGE_EVENT(key, NVTEVT_KEY_RELEASE_START, NVTEVT_KEY_RELEASE_END)) //Release key { if(key == NVTEVT_KEY_POWER_REL) { System_ResetDetCloseLenCount(); if(GxPower_GetControl(GXPWR_CTRL_SLEEP_LEVEL) > 1) // drop key if sleep level > 1 { //NOTE! do not set GXPWR_CTRL_SLEEP_RESET before get GXPWR_CTRL_SLEEP_LEVEL, // because GXPWR_CTRL_SLEEP_LEVEL status maybe alter by sleep wakeup flow~ System_ResetPowerSaveCount(); } else { //g_bIsExitSystemWithPowerKey = TRUE; if (System_GetState(SYS_STATE_CURRMODE)==PRIMARY_MODE_MOVIE) { switch(gMovData.State) { case MOV_ST_REC: case MOV_ST_REC|MOV_ST_ZOOM: //MediaRec_Stop(MEDIAREC_WAIT_END); FlowMovie_StopRec(); break; } } System_PowerOff(SYS_POWEROFF_NORMAL); } return NVTEVT_CONSUME; } System_ResetDetCloseLenCount(); System_ResetPowerSaveCount(); return NVTEVT_PASS; } } return NVTEVT_PASS; }
void UI_DetPwrKey(void) { if(!UI_IsForceLock()) { #if 1 { static UINT32 uiPowerKey = KEYSCAN_PWRKEY_UNKNOWN; static UINT32 uiPWRState = KEYSCAN_PWROFF_INIT_STATE; static UINT32 uiPowerKeyPressCount = 0; if ( rtc_getPWRStatus()) { // Reset shutdown timer rtc_resetShutdownTimer(); // Debounce if (uiPowerKey == KEYSCAN_PWRKEY_PRESSED) { if (uiPWRState == KEYSCAN_PWROFF_RELEASE_STATE) { uiPowerKeyPressCount++; debug_err(("uiPowerKeyPressCount : %d....%d\r\n",uiPowerKeyPressCount,KEYSCAN_POWEROFF_COUNT)); if (uiPowerKeyPressCount > KEYSCAN_POWEROFF_COUNT) { uiPWRState = KEYSCAN_PWROFF_PRESS_STATE; } } if(uiPWRState == KEYSCAN_PWROFF_PRESS_STATE) { //uiKeyCode = FLGKEY_KEY_POWER; uiPowerKeyPressCount = 0; //rtc_resetShutdownTimer(); Delay_DelayMs(200); //System_PowerOff(SYS_POWEROFF_NORMAL); //Ux_SendEvent(0, NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start Ux_PostEvent(NVTEVT_KEY_POWER_REL, 1, NVTEVT_KEY_PRESS); } } else { uiPowerKey = KEYSCAN_PWRKEY_PRESSED; } } else { // Debounce if (uiPowerKey == KEYSCAN_PWRKEY_RELEASED) { if (uiPWRState == KEYSCAN_PWROFF_INIT_STATE) { uiPWRState = KEYSCAN_PWROFF_RELEASE_STATE; } if (uiPowerKeyPressCount) { uiPowerKeyPressCount = 0; #if (_MODEL_DSC_ == _MODEL_CARDV_) UISound_Play(DEMOSOUND_SOUND_KEY_TONE); #else if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } else { UISound_Play(DEMOSOUND_SOUND_KEY_TONE); //******PW84_KEY_D**************************** // #if( KEY_BOARD_TYPE==PW84_KEY_BOARD_D_V01) //Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_PRESS); //*****for 6 keys ************** // Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); // #else //******default**************************** Ux_PostEvent(NVTEVT_KEY_MODE, 1, NVTEVT_KEY_PRESS); // #endif } #endif } } else { uiPowerKey = KEYSCAN_PWRKEY_RELEASED; } } } #else GxKey_DetPwrKey(); #endif } }
INT32 PipView_OnDraw(DISPSRV_DRAW* pDraw) //PIP = Picture In Picture { ER er; UINT32 i,n=(pDraw->bDualSrc==TRUE)?2:1; UINT32 uiLockIdx[2]; PIP_DST_RATIO RatioDst; //display buffer ratio PIP_SRC_RATIO RatioSrc[2]={0}; //1st source and 2nd source COORDTS_HANDLE hTs = NULL; COORDTS_CREATE Create={0}; COORDTS_ORIGIN Origin={0}; COORDTS_TARGET Target={0}; COORDTS_TRANS Trans={0}; IMG_BUF* pSrc=NULL; IMG_BUF* pSrcImg[2]={0}; IMG_BUF* pDst=pDraw->pImg[0]; IRECT rcSrc={0},rcDst={0}; //#NT#2015/03/27#KS Hung -begin //#NT#If using high resolution DSI LCD, it only need once when the both paths frame income. ////#NT#This only is a DSI LCD type, please add by yourself. #if (_SENSORLIB2_ != _SENSORLIB2_DUMMY_) if(DrvSensor_Det2ndSensor()) #endif { #if((_LCDTYPE_ == _LCDTYPE_HX8369B_DSI_)||(_LCDTYPE_ == _LCDTYPE_UT45030A0_HX8379C_)||(_LCDTYPE_ == _LCDTYPE_TM446_OTM8019A_)) { static UINT32 uiInComeCnt=0; uiInComeCnt++; if (uiInComeCnt == 2) { uiInComeCnt = 0; } else { return E_OK; } } #endif } //#NT#2015/03/27#KS Hung -begin for(i=0;i<n;i++) { if((er=pDraw->fpLock[i](&uiLockIdx[i],DISPSRV_LOCK_NEWEST))!=E_OK) { DBG_ERR("failed to lock %d\r\n",i); return er; } else { pSrcImg[i] = &pDraw->pDS[i]->pSrc[uiLockIdx[i]]; } } //Collect Ratio switch (KeyScan_GetPlugDev()) { case PLUG_HDMI: RatioDst = PIP_DST_RATIO_16_9; break; case PLUG_TV: #if (TV_DISPLAY_169HD == ENABLE) RatioDst = PIP_DST_RATIO_16_9; #else RatioDst = PIP_DST_RATIO_4_3; #endif break; default: // LCD #if (DISPLAY_169HD == ENABLE) RatioDst = PIP_DST_RATIO_16_9; #else RatioDst = PIP_DST_RATIO_4_3; #endif break; } // RatioDst = (pDraw->pDD[DISPSRV_DISP_IDX_PRIMARY]->AspectRatio.h*16.0f/pDraw->pDD[DISPSRV_DISP_IDX_PRIMARY]->AspectRatio.w==9.0f) // ?PIP_DST_RATIO_16_9 // :PIP_DST_RATIO_4_3; RatioSrc[0] = m_PrimaryImageRatio_Active; if(pSrcImg[1]!=NULL) { RatioSrc[1] = (pSrcImg[1]->Height*16.0f/pSrcImg[1]->Width==9.0f) ?PIP_SRC_RATIO_16_9 :((pSrcImg[1]->Height*3.0f/pSrcImg[1]->Width==2.0f)?PIP_SRC_RATIO_3_2:PIP_SRC_RATIO_4_3); } //Prepare Coordinate Transform Create.uiApiVer = COORDTS_API_VERSION; Create.pRegBuf = m_PipTsBuf; Create.uiRegBufSize = sizeof(m_PipTsBuf); hTs = CoordTs_Create(&Create); Origin.hHandle=hTs; if(RatioDst==PIP_DST_RATIO_16_9) { Origin.SizeOrigin.w = m_PipBaseOn_16_9.w; Origin.SizeOrigin.h = m_PipBaseOn_16_9.h; } else { Origin.SizeOrigin.w = m_PipBaseOn_4_3.w; Origin.SizeOrigin.h =m_PipBaseOn_4_3.h; } CoordTs_SetOrigin(&Origin); Target.hHandle=hTs; Target.SizeTarget.w = pDst->Width; Target.SizeTarget.h = pDst->Height; Target.pRcRegion = NULL; CoordTs_SetTarget(&Target); //--------------------Customer Draw Begin----------------------------------- //Clean Screen if(m_iCleanCnt>0) { GxImg_FillData(pDst, NULL, COLOR_YUV_BLACK); m_iCleanCnt--; } //Trans Common Setting Trans.hHandle=hTs; Trans.bInverse=FALSE; Trans.Method = COORDTS_METHOD_FULL_FIT; Trans.pRcDst = (URECT*)&rcDst; Trans.uiRectNum = 1; //Paste 2nd layer first switch(m_PipStyle) { case PIP_STYLE_1T1F: pSrc = NULL; //no paste Trans.pRcSrc = NULL; break; case PIP_STYLE_1T1B2S: pSrc = pSrcImg[1]; //paste 2nd first Trans.pRcSrc = &m_PipWnd_Small[RatioDst][RatioSrc[1]]; break; case PIP_STYLE_1T1S2B: pSrc = pSrcImg[1]; //paste 2nd first Trans.pRcSrc = &m_PipWnd_Big[RatioDst][RatioSrc[1]]; break; case PIP_STYLE_2T2F: //no paste pSrc = NULL; Trans.pRcSrc = NULL; break; case PIP_STYLE_2T1B2S: pSrc = pSrcImg[0]; //paste 1st first Trans.pRcSrc = &m_PipWnd_Big[RatioDst][RatioSrc[0]]; break; case PIP_STYLE_2T1S2B: pSrc = pSrcImg[0]; //paste 1st first Trans.pRcSrc = &m_PipWnd_Small[RatioDst][RatioSrc[0]]; break; default: DBG_ERR("unexpected case %d\r\n",m_PipStyle); break; } if(pSrc!=NULL) { CoordTs_TransRect(&Trans); rcSrc.x = 0; rcSrc.y = 0; rcSrc.w = pSrc->Width; rcSrc.h = pSrc->Height; #if (PIP_2ND_PATH_FLIP == ENABLE) { if (m_PipStyle == PIP_STYLE_1T1S2B || m_PipStyle == PIP_STYLE_1T1S2B) { PipView_FlipImage(pSrc, &rcSrc, pDst, &rcDst); } else { GxImg_ScaleData(pSrc, &rcSrc, pDst, &rcDst); } } #elif (PIP_1ST_PATH_FLIP == ENABLE) { if (m_PipStyle == PIP_STYLE_2T1B2S || m_PipStyle == PIP_STYLE_2T1S2B) { PipView_FlipImage(pSrc, &rcSrc, pDst, &rcDst); } else { GxImg_ScaleData(pSrc, &rcSrc, pDst, &rcDst); } } #else { //First Draw GxImg_ScaleData(pSrc, &rcSrc, pDst, &rcDst); } #endif } //Paste 1st layer second switch(m_PipStyle) { case PIP_STYLE_1T1F: pSrc = pSrcImg[0]; //then paste 1st Trans.pRcSrc = &m_PipWnd_Full[RatioDst][RatioSrc[0]]; break; case PIP_STYLE_1T1B2S: pSrc = pSrcImg[0]; //then paste 1st Trans.pRcSrc = &m_PipWnd_Big[RatioDst][RatioSrc[0]]; break; case PIP_STYLE_1T1S2B: pSrc = pSrcImg[0]; //then paste 1st Trans.pRcSrc = &m_PipWnd_Small[RatioDst][RatioSrc[0]]; break; case PIP_STYLE_2T2F: pSrc = pSrcImg[1]; //then paste 2nd Trans.pRcSrc = &m_PipWnd_Full[RatioDst][RatioSrc[1]]; break; case PIP_STYLE_2T1B2S: pSrc = pSrcImg[1]; //then paste 2nd Trans.pRcSrc = &m_PipWnd_Small[RatioDst][RatioSrc[1]]; break; case PIP_STYLE_2T1S2B: pSrc = pSrcImg[1]; //then paste 2nd Trans.pRcSrc = &m_PipWnd_Big[RatioDst][RatioSrc[1]]; break; default: DBG_ERR("unexpected case %d\r\n",m_PipStyle); break; } if(pSrc!=NULL) { CoordTs_TransRect(&Trans); rcSrc.x = 0; rcSrc.y = 0; rcSrc.w = pSrc->Width; rcSrc.h = pSrc->Height; #if (PIP_2ND_PATH_FLIP == ENABLE) { if (m_PipStyle == PIP_STYLE_2T2F || m_PipStyle == PIP_STYLE_2T1B2S || m_PipStyle == PIP_STYLE_2T1S2B) { PipView_FlipImage(pSrc, &rcSrc, pDst, &rcDst); } else { GxImg_ScaleData(pSrc,&rcSrc,pDst,&rcDst); } } #elif (PIP_1ST_PATH_FLIP == ENABLE) { if (m_PipStyle == PIP_STYLE_1T1F || m_PipStyle == PIP_STYLE_1T1B2S || m_PipStyle == PIP_STYLE_1T1S2B) { PipView_FlipImage(pSrc, &rcSrc, pDst, &rcDst); } else { GxImg_ScaleData(pSrc, &rcSrc, pDst, &rcDst); } } #else { //Second Draw GxImg_ScaleData(pSrc,&rcSrc,pDst,&rcDst); } #endif } for(i=0;i<n;i++) { if((er=pDraw->fpUnlock[i](uiLockIdx[i]))!=E_OK) { DBG_ERR("failed to unlock %d\r\n",i); return er; } } //--------------------Customer Draw End------------------------------------- pDraw->fpFlip(TRUE); return E_OK; }
INT32 UIFlowWndPlay_OnKeyEnter(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { //#NT#2012/08/31#Calvin Chang#Porting Media Flow -begin //UINT32 uiCurindex; UINT32 uiPoolAddr; char pFilePath[FULL_FILE_PATH_LEN]; UINT32 fileType = DCF_FILE_TYPE_JPG; UINT32 uiPBFileFmt; switch(g_PlbData.State) { case PLB_ST_PLAY_MOV: case PLB_ST_FWD_MOV: case PLB_ST_BWD_MOV: Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PAUSE_PLAY_MOVIE, 0); FlowPB_IconDrawMovPlay(TRUE); g_PlbData.State = PLB_ST_PAUSE_MOV; //#NT#2012/10/23#Philex Lin - begin // enable auto power off/USB detect timer // enable sound key tone flag KeyScan_EnableMisc(TRUE); //#NT#2012/10/23#Philex Lin - end break; case PLB_ST_PAUSE_MOV: //#NT#2012/10/23#Philex Lin - begin // disable auto power off/USB detect timer // disable key tone flag KeyScan_EnableMisc(FALSE); //#NT#2012/10/23#Philex Lin - end // Start to Play Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PLAY_PLAY_MOVIE, 2, g_uiUIFlowWndPlayCurrenSpeed, g_uiUIFlowWndPlayCurrenDirection); FlowPB_IconDrawMovPlay(TRUE); g_PlbData.State = PLB_ST_PLAY_MOV; break; default: case PLB_ST_FULL: uiPBFileFmt = AppPlay_GetData(PLAY_FILEFMT); if (uiPBFileFmt & PBFMT_AVI || uiPBFileFmt & PBFMT_MOVMJPG || uiPBFileFmt & PBFMT_MP4) { // Open Video File if (gphUIFlowMovPlay_Filehdl) { FileSys_CloseFile(gphUIFlowMovPlay_Filehdl); gphUIFlowMovPlay_Filehdl = NULL; } if (uiPBFileFmt & PBFMT_AVI) fileType = DCF_FILE_TYPE_AVI; else if (uiPBFileFmt & PBFMT_MOVMJPG) fileType = DCF_FILE_TYPE_MOV; else if (uiPBFileFmt & PBFMT_MP4) fileType = DCF_FILE_TYPE_MOV; else { debug_msg("Wrong video file format!! \r\n"); break; } // Get Current index PB_GetParam(PBPRMID_CURR_FILEPATH, (UINT32 *)pFilePath); #if 0 uiCurindex = DCF_GetCurIndex(); DCF_GetObjPath(uiCurindex,fileType,pFilePath); #endif // Open Test Media File gphUIFlowMovPlay_Filehdl = FileSys_OpenFile(pFilePath, FST_OPEN_READ); if (!gphUIFlowMovPlay_Filehdl) { debug_msg("UIFlowWndPlay_OnKeyEnter: Can't open Video file!\r\n"); break; } //#NT#2012/10/23#Philex Lin - begin // disable auto power off/USB detect timer // disable key tone flag KeyScan_EnableMisc(FALSE); //#NT#2012/10/23#Philex Lin - end // Buffer Allocation get_blf((VP*)&(uiPoolAddr), POOL_ID_APP); rel_blf(POOL_ID_APP, (VP)uiPoolAddr); g_UIPlayMediaObj.hActMediafilehdl = gphUIFlowMovPlay_Filehdl; g_UIPlayMediaObj.CallBackFunc = Play_MovieCB; // g_UIPlayMediaObj.uiMemAddr = uiPoolAddr; g_UIPlayMediaObj.uiMemAddr = (UINT32)OS_GetMempoolAddr(POOL_ID_APP); g_UIPlayMediaObj.uiMemSize = POOL_SIZE_APP; //g_UIPlayMediaObj.iAudioType = AUDIO_OUTPUT_HP; g_UIPlayMediaObj.bDisableAudio = FALSE; UIFlowMoviePlay_SetSpeed(g_PlbData.VideoPBSpeed); g_uiUIFlowWndPlayCurrenDirection = MEDIAPLAY_DIR_FORWARD; //flush event first Ux_FlushEventByRange(NVTEVT_KEY_EVT_START,NVTEVT_KEY_EVT_END); //stop scan //SxTimer_SetFuncActive(SX_TIMER_DET_STRG_ID, FALSE); SxTimer_SetFuncActive(SX_TIMER_DET_SYSTEM_BUSY_ID, FALSE); Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_INIT_PLAY_MOVIE, 1, &g_UIPlayMediaObj); // Start to Play Ux_SendEvent(&UIMoviePlayObjCtrl, NVTEVT_PLAY_PLAY_MOVIE, 2, g_uiUIFlowWndPlayCurrenSpeed, g_uiUIFlowWndPlayCurrenDirection); if (KeyScan_GetPlugDev()!=PLUG_HDMI) { //FlowPB_IconDrawMovPlayVolumn(g_uiUIFlowWndPlayCurrentVolume); } FlowPB_IconDrawMovPlay(TRUE); g_PlbData.State = PLB_ST_PLAY_MOV; } break; } //#NT#2012/08/31#Calvin Chang -end return NVTEVT_CONSUME; }
INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { UINT32 uiJpgAddr, uiJpgSize; if(paramNum == 1 && paramArray[0] == 0) //power-off begin { GxSystem_ShutDownStart(); GPIOMap_DVR_PowerOff(); if(SysGetFlag(FL_MOVIE_PARKING) == MOVIE_PARKING_ON) { debug_msg(">>----turn on Parking movie--------\r\n"); GSensor_ParkingMode(); } #if (UI_STYLE==UI_STYLE_DRIVER) //#NT#2012/10/23#Philex Lin-begin // add power off sound UISound_Play(DEMOSOUND_SOUND_POWERON_TONE); //#NT#2012/10/23#Philex Lin-end #endif //debug_msg("^Gq0\r\n"); //close last app mode Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, SYS_MODE_UNKNOWN); //debug_msg("^Gq1\r\n"); //#NT#2013/01/23#Lincy Lin -begin //#NT#Add low battery, lens error power off tone and screen if(System_GetState(SYS_STATE_POWEROFF) == SYS_POWEROFF_BATTEMPTY) { DBG_ERR("low battery **********\r\n"); #if(_USR_WND_==ENABLE) #if (UI_STYLE==UI_STYLE_DEMO) if(!gIsUSBChargePreCheck) { UISound_Play(PLAYSOUND_SOUND_BATT_WARNING_TONE); SwTimer_DelayMs(1000); Ux_OpenWindow(&DialogWarnCtrl, 2, WARN_BATT_EMPTY, WARN_ALWAYS); Ux_Redraw(); SwTimer_DelayMs(2000); } #endif #endif } else if(System_GetState(SYS_STATE_POWEROFF) == SYS_POWEROFF_LENSERROR) { #if(_USR_WND_==ENABLE) #if (UI_STYLE==UI_STYLE_DEMO) Ux_OpenWindow(&DialogWarnCtrl, 2, WARN_LENS_ERROR, WARN_ALWAYS); Ux_Redraw(); GxLED_SetCtrl(KEYSCAN_LED_RED,TURNON_LED,TRUE); UISound_Play(PLAYSOUND_SOUND_WARNING_TONE); SwTimer_DelayMs(1500); UISound_Play(PLAYSOUND_SOUND_WARNING_TONE); SwTimer_DelayMs(1500); GxLED_SetCtrl(KEYSCAN_LED_RED,TURNON_LED,FALSE); #endif #endif } //#NT#2013/01/23#Lincy Lin -end else { #if (POWEROFFLOGO_FUNCTION == ENABLE) GxDisplay_Set(LAYER_OSD1, LAYER_STATE_ENABLE, 0); //turn off OSD1 GxDisplay_Set(LAYER_OSD2, LAYER_STATE_ENABLE, 0); //turn off OSD2 GxDisplay_Flush(LAYER_OSD1); GxDisplay_Flush(LAYER_OSD2); GxDisplay_Set(LAYER_VDO1, LAYER_STATE_ENABLE, 0); //turn off VDO1 GxDisplay_Flush(LAYER_VDO1); if(SysGetFlag(FL_OPENING_LOGO)==OPENING_LOGO_ON) { if(FALSE==UI_ShowLogoFile(UI_LOGO_POWEROFF,&uiJpgAddr,&uiJpgSize)) { Display_ShowSplash(SPLASH_POWEROFF); } } else { Display_ShowSplash(SPLASH_POWEROFF); } if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } SwTimer_DelayMs(500); #endif } //#NT#2014/06/13#KS Hung -begin //#NT#For NT96650, SDIO2 pin is shared with SPI flash. #if ( (_DUAL_CARD_FUNC_ == ENABLE) && (_CHIP_ == _CHIP_650_) ) if (SysGetFlag(FL_DualCardMain) == MAIN_CARD_2) { GxStrg_CloseDevice(0); // Release bus to SPI using } System_OnStrgInit_PS(); #endif //#NT#2014/06/13#KS Hung -end Save_MenuInfo(); //debug_msg("^Gq2\r\n"); #if (UI_STYLE==UI_STYLE_DEMO) //debug_msg("^Gq3\r\n"); #if (POWEROFFSOUND_FUNCTION == ENABLE) { UISound_Play(PLAYSOUND_SOUND_POWEROFF_TONE); } #endif #endif //debug_msg("^Gq4\r\n"); UI_LockEvent(); UI_Quit(); //quit from event loop //debug_msg("^Gq5\r\n"); } if(paramNum == 1 && paramArray[0] == 1) //power-off end { //GxSystem_ShutDownEnd(); //bQuit = TRUE; } return NVTEVT_CONSUME; }
void UI_DetPwrKey(void) { if(!UI_IsForceLock()) { #if 1 { static UINT32 uiPowerKey = KEYSCAN_PWRKEY_UNKNOWN; static UINT32 uiPWRState = KEYSCAN_PWROFF_INIT_STATE; static UINT32 uiPowerKeyPressCount = 0; if ( rtc_getPWRStatus()) { // Reset shutdown timer rtc_resetShutdownTimer(); // Debounce if (uiPowerKey == KEYSCAN_PWRKEY_PRESSED) { if (uiPWRState == KEYSCAN_PWROFF_RELEASE_STATE) { uiPowerKeyPressCount++; debug_err(("uiPowerKeyPressCount : %d....%d\r\n",uiPowerKeyPressCount,KEYSCAN_POWEROFF_COUNT)); //if(GSensor_GetGsensorMaker()==GSENSOR_GMA301) { if(SysGetFlag(FL_MOVIE_PARKING) == MOVIE_PARKING_ON) { Gsensor_SetInterrupt(FALSE); } } if (uiPowerKeyPressCount > KEYSCAN_POWEROFF_COUNT) { uiPWRState = KEYSCAN_PWROFF_PRESS_STATE; } } if(uiPWRState == KEYSCAN_PWROFF_PRESS_STATE) { //uiKeyCode = FLGKEY_KEY_POWER; uiPowerKeyPressCount = 0; //rtc_resetShutdownTimer(); Delay_DelayMs(200); //System_PowerOff(SYS_POWEROFF_NORMAL); //Ux_SendEvent(0, NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start Ux_PostEvent(NVTEVT_KEY_POWER_REL, 1, NVTEVT_KEY_PRESS); } } else { uiPowerKey = KEYSCAN_PWRKEY_PRESSED; } } else { // Debounce if (uiPowerKey == KEYSCAN_PWRKEY_RELEASED) { if (uiPWRState == KEYSCAN_PWROFF_INIT_STATE) { uiPWRState = KEYSCAN_PWROFF_RELEASE_STATE; } if (uiPowerKeyPressCount) { uiPowerKeyPressCount = 0; #if (_MODEL_DSC_ == _MODEL_CARDV_B50_) UISound_Play(DEMOSOUND_SOUND_KEY_TONE); #else //if(GSensor_GetGsensorMaker()==GSENSOR_GMA301) { if(SysGetFlag(FL_MOVIE_PARKING) == MOVIE_PARKING_ON) { Gsensor_SetInterrupt(TRUE); } } if((GPIOMap_IsLCDBacklightOn()==FALSE)&& (KeyScan_GetPlugDev() != 1)&&(KeyScan_GetPlugDev() != 2)) { UISound_Play(DEMOSOUND_SOUND_KEY_TONE); GPIOMap_TurnOnLCDBacklight(); System_ResetPowerSaveCount(); } else { UISound_Play(DEMOSOUND_SOUND_KEY_TONE); #if ((_MODEL_DSC_ == _MODEL_DUAL_F6PLUS_)||(_MODEL_DSC_ == _MODEL_DUAL_V18_DT_)||(_MODEL_DSC_ == _MODEL_DUAL_HLYD_)||(_MODEL_DSC_ == _MODEL_DUAL_HLYD_MUBEN_)\ ||(_MODEL_DSC_ == _MODEL_DUAL_V18_LYSZ_)||(_MODEL_DSC_==_MODEL_DUAL_89M3_)) Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); #elif((_MODEL_DSC_ == _MODEL_DUAL_G2800_)||(_MODEL_DSC_ == _MODEL_DUAL_QIZHENG_M1_)||(_MODEL_DSC_ == _MODEL_DUAL_SAIBOSHI_)) Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_ == _MODEL_DUAL_JIACHANGLING_) Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_PRESS); #elif (_MODEL_DSC_ == _MODEL_DUAL_BMWCABLE_) Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_ == _MODEL_DUAL_NAZHIDA_) Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_ == _MODEL_CARDV_S650_) Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_ == _MODEL_DUAL_790S_) Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); //Ux_PostEvent(NVTEVT_KEY_MODE, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_ == _MODEL_CARDV_GT200_) Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_==_MODEL_CARDV_K12_) #elif(_MODEL_DSC_==_MODEL_DUAL_AONI328_) Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_PRESS); #elif(_MODEL_DSC_ == _MODEL_DEMO1_) //Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_PRESS); Ux_PostEvent(NVTEVT_KEY_MODE, 1, NVTEVT_KEY_PRESS); #else //do nothing Ux_PostEvent(NVTEVT_KEY_SHUTTER2, 1, NVTEVT_KEY_PRESS); #endif } #endif } } else { uiPowerKey = KEYSCAN_PWRKEY_RELEASED; } } } #else GxKey_DetPwrKey(); #endif } }