void FlowPB_IconDrawBattery(void) { UINT32 uiFlag; switch(GetBatteryLevel()) { case BATTERY_LOW: uiFlag= UIFlowWndPlay_StatusICN_Battery_ICON_BATTERY_LOW; break; case BATTERY_EMPTY: uiFlag= UIFlowWndPlay_StatusICN_Battery_ICON_BATTERY_EMPTY; break; case BATTERY_FULL: uiFlag= UIFlowWndPlay_StatusICN_Battery_ICON_BATTERY_FULL; break; case BATTERY_MED: uiFlag= UIFlowWndPlay_StatusICN_Battery_ICON_BATTERY_MED; break; default: uiFlag= UIFlowWndPlay_StatusICN_Battery_ICON_BATTERY_EMPTY; break; } UxState_SetData(&UIFlowWndPlay_StatusICN_BatteryCtrl,STATE_CURITEM,uiFlag); UxCtrl_SetShow(&UIFlowWndPlay_StatusICN_BatteryCtrl, TRUE); }
INT32 UIFlowWndPlay_OnBattery(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { //#NT#2009/07/28#Chris Chung -begin UxState_SetData(&UIFlowWndPlay_StatusICN_BatteryCtrl, STATE_CURITEM, GetBatteryLevel()); //#NT#2009/07/28#Chris Chung -end return NVTEVT_CONSUME; }
/** * PTM_U::GetBatteryLevel service function * Outputs: * 1 : Result of function, 0 on success, otherwise error code * 2 : Battery level, 5 = completely full battery, 4 = mostly full battery, * 3 = half full battery, 2 = low battery, 1 = critical battery. */ static void GetBatteryLevel(Service::Interface* self) { u32* cmd_buff = Kernel::GetCommandBuffer(); cmd_buff[1] = RESULT_SUCCESS.raw; cmd_buff[2] = static_cast<u32>(GetBatteryLevel()); LOG_WARNING(Service_PTM, "(STUBBED) called"); }
bool CSysInfoJob::DoWork() { m_info.systemUptime = GetSystemUpTime(false); m_info.systemTotalUptime = GetSystemUpTime(true); m_info.internetState = GetInternetState(); m_info.videoEncoder = GetVideoEncoder(); m_info.cpuFrequency = GetCPUFreqInfo(); m_info.kernelVersion = CSysInfo::GetKernelVersion(); m_info.batteryLevel = GetBatteryLevel(); return true; }
static void FlowPB_IconDrawBattery(BOOL bShow) { if (bShow==FALSE) { UxCtrl_SetShow(&UIFlowWndPlay_StatusICN_BatteryCtrl, FALSE); return; } UxState_SetData(&UIFlowWndPlay_StatusICN_BatteryCtrl,STATE_CURITEM,GetBatteryLevel()); UxCtrl_SetShow(&UIFlowWndPlay_StatusICN_BatteryCtrl, TRUE); }
bool CSysInfoJob::DoWork() { m_info.systemUptime = GetSystemUpTime(false); m_info.systemTotalUptime = GetSystemUpTime(true); m_info.internetState = GetInternetState(); m_info.videoEncoder = GetVideoEncoder(); m_info.cpuFrequency = GetCPUFreqInfo(); m_info.osVersionInfo = CSysInfo::GetOsPrettyNameWithVersion() + " (kernel: " + CSysInfo::GetKernelName() + " " + CSysInfo::GetKernelVersionFull() + ")"; m_info.macAddress = GetMACAddress(); m_info.batteryLevel = GetBatteryLevel(); return true; }
/************************************************************************ Function: void UpdateTime(WORD force) Overview: This function updates the date and time variables. Input: none. Output: none ************************************************************************/ void UpdateTime(WORD force) { static char previousChar; char changeIndicator; OBJ_HEADER *pObject; char currentHour; char hourStr[3]; RTCCProcessEvents(); changeIndicator = _time_str[8]; if ((previousChar != changeIndicator) || (force == FORCE_UPDATE)) { previousChar = changeIndicator; if ((pObject = GOLFindObject(ID_TIME)) != NULL) { strncpy(CurrentTimeStr, _time_str, 9); // change hour to AM/PM format currentHour = mRTCCGetBinHour(); if (hour >= 12) strncpy(&CurrentTimeStr[10], DayNightItems[1], 3); else strncpy(&CurrentTimeStr[10], DayNightItems[0], 3); if (currentHour > 12) { currentHour = currentHour - 12; // now set the hour in the string NumberToString(currentHour, hourStr, 2, 0); CurrentTimeStr[4] = hourStr[0]; CurrentTimeStr[5] = hourStr[1]; } StSetText((STATICTEXT *)pObject, CurrentTimeStr); SetState( pObject, ST_DRAW ); } if ((pObject = GOLFindObject(ID_BATLEVEL)) != NULL) { PbSetPos( (PROGRESSBAR*)pObject, GetBatteryLevel()); SetState( pObject, PB_DRAW_BAR ); } } }
INT32 UIFlowWndPhoto_OnBattery(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { static volatile BOOL bBatteryOn = FALSE; UxState_SetData(&UIFlowWndPhoto_StatusICN_BatteryCtrl,STATE_CURITEM,GetBatteryLevel()); if (KeyScan_IsACIn()) { bBatteryOn = !bBatteryOn; UxCtrl_SetShow(&UIFlowWndPhoto_StatusICN_BatteryCtrl,bBatteryOn); } else { UxCtrl_SetShow(&UIFlowWndPhoto_StatusICN_BatteryCtrl,TRUE); } return NVTEVT_CONSUME; }
INT32 UIFlowWndMovie_OnBattery(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { //static volatile BOOL bBatteryOn = FALSE; UxState_SetData(&UIFlowWndMovie_Status_batteryCtrl,STATE_CURITEM,GetBatteryLevel()); if (KeyScan_IsUSBPower()) { //bBatteryOn = !bBatteryOn; UxCtrl_SetShow(&UIFlowWndMovie_Status_batteryCtrl,TRUE); } else { UxCtrl_SetShow(&UIFlowWndMovie_Status_batteryCtrl,TRUE); } return NVTEVT_CONSUME; }
INT32 UIFlowWndPlay_OnBattery(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { static volatile BOOL bBatteryOn = FALSE; UxState_SetData(&UIFlowWndPlay_StatusICN_BatteryCtrl,STATE_CURITEM,GetBatteryLevel()); if (KeyScan_IsACIn()) { #if (_MODEL_DSC_ == _MODEL_DUAL_V6_) bBatteryOn = TRUE; #else bBatteryOn = !bBatteryOn; #endif if (bBatteryOn==FALSE) UxState_SetData(&UIFlowWndPlay_StatusICN_BatteryCtrl,STATE_CURITEM,UIFlowWndPlay_StatusICN_Battery_ICON_TRANSPAENT); UxCtrl_SetShow(&UIFlowWndPlay_StatusICN_BatteryCtrl,TRUE); } else { UxCtrl_SetShow(&UIFlowWndPlay_StatusICN_BatteryCtrl,TRUE); } return NVTEVT_CONSUME; }
bool __CALLOUT InitializeShell() { Clear(BLUE); const char* str = "PRICE of HONOR!"; DrawTextString(40,60,str,Length(str),RED,BLUE); GetBatteryLevel(); SetScreenBrightness(100); char buff[200]; int res = snprintf(buff,sizeof(buff),"test %d",0); DrawPixel(1,1,WHITE); DoVibroAndBeep(500); ubyte_t l = GetLustraId(); SendRadioPacket(NULL,0); uword_t a = GetArmletId(); FILE log; OpenFile(&log, "log.txt", true); char* s = "log test"; WriteFile(&log, s, Length(s)); /* //int i = 0; //Color area[100]; //for (i=0; i<100; i++) area[i] = 0xF0F; //DrawArea(5,5,area,100,10,10); //WriteFile(&log, (char*)area, 100); //for (i=0; i<100; i++) area[i] = 0x0; //ReadFile(&log, (char*)area, 100); //AppendFile(&log, (char*)area, 100); //DrawArea(5,5,area,100,10,10); */ RequestTimer(TimerProc,100); int up = GetUpTime(); int rnd = GetRandom(50); //SetCureName is checked in AppMainThread //WritePill is checked in AppMainThread //StartThread(AppMainThread,NULL); return true; //TODO }
jint JNICALL Java_ardrone_ARDrone_getBatteryLevel(JNIEnv *env, jclass cls) { return GetBatteryLevel(); }
void KeyScan_DetBattery(void) { #if (KEYSCAN_POWEROFF_DET == ENABLE) UINT32 ui_battery_level =0; static UINT32 uiDetLowBattery = 0; static UINT32 ui_Battery_val[] = {BATTERY_FULL,BATTERY_MED,BATTERY_LOW,BATTERY_EMPTY,BATTERY_EXHAUSTED}; // if (KeyScan_IsFlashCharging() || KeyScan_IsUSBPlug()) // return; //debug_err(("KeyScan_IsUSBPlug : %d\r\n",KeyScan_IsUSBPlug())); if((usb_StateChange())||(GPIOMap_GetAcc12V()==TRUE)) { switch(uiBatteryLvl) { case VOLDET_BATTERY_LVL_3: uiBatteryLvl = VOLDET_BATTERY_LVL_1; break; case VOLDET_BATTERY_LVL_1: uiBatteryLvl = VOLDET_BATTERY_LVL_2; break; case VOLDET_BATTERY_LVL_2: uiBatteryLvl = VOLDET_BATTERY_LVL_3; break; default: uiBatteryLvl = VOLDET_BATTERY_LVL_1; break; } SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); return; } else { uiBatteryLvl = VolDet_GetBatteryLevel(); ui_battery_level = GetBatteryLevel(); } //debug_err(("battery level: new %d, old %d\n\r",uiBatteryLvl,ui_battery_level)); switch(ui_battery_level) { case BATTERY_FULL: if(uiBatteryLvl != VOLDET_BATTERY_LVL_3) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_MED: if(uiBatteryLvl != VOLDET_BATTERY_LVL_2) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_LOW: if(uiBatteryLvl != VOLDET_BATTERY_LVL_1) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_EMPTY: if(uiBatteryLvl != VOLDET_BATTERY_LVL_0) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_EXHAUSTED: if(uiBatteryLvl != VOLDET_BATTERY_LVL_EMPTY) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; } if (uiBatteryLvl == VOLDET_BATTERY_LVL_EMPTY) { uiDetLowBattery++; if (uiDetLowBattery >= 2) // if continuously detect battery low over 2 sec { debug_err(("*********KeyScan_DetBattery: Empty battery!!!\r\n")); KeyScan_PlaySound(PLAYSOUND_SOUND_KEY_OTHERS); TimerDelayMs(500); FlowWrnBatteryEmpty_Open(); TimerDelayMs(2000); KeyScan_PoweroffFlow(); } } else { uiDetLowBattery = 0; } #endif //KEYSCAN_POWEROFF_DET }
/************************************************************************ Function: CreateCommonObjects() Overview: Creates the common objects present in all screens Input: none Output: none ************************************************************************/ void CreateCommonObjects(void) { WORD timeStartX; WORD timeWidth, textHeight; SetColor(BACKGROUND_COLOR); ClearDevice(); BtnCreate ( ID_MCHPICON, MCHP_LOGO_STARTX, MCHP_LOGO_STARTY, MCHP_LOGO_STARTX + (MCHP_LOGO_WIDTH - 5), MCHP_LOGO_STARTY + (MCHP_LOGO_HEIGHT - 5), 0, BTN_DRAW, (void *) &MICROCHIP_LOGO, NULL, pBatStyleScheme ); PbCreate ( ID_BATLEVEL, BAT_STARTX, BAT_STARTY, BAT_STARTX + BAT_WIDTH, BAT_STARTY + BAT_HEIGHT, PB_DRAW | PB_NOPROGRESS, GetBatteryLevel(), GetBatteryRange(), pBatStyleScheme ); // calculate the positions of the date and time info strcpy(CurrentTimeStr, "Mon 10:10 AM "); timeWidth = GetTextWidth(CurrentTimeStr, (void *)&TIMEDATEFONT); textHeight = GetTextHeight((void *)&TIMEDATEFONT); timeStartX = BAT_STARTX - timeWidth - 5; StCreate ( ID_TIME, timeStartX, DATE_TIME_STARTY, timeStartX + timeWidth, DATE_TIME_STARTY + textHeight, ST_DRAW, CurrentTimeStr, pTimeDateStyleScheme ); // This is the battery primitives SetColor(TEXTCOLOR_UNPRESSED); // draw the outline first while(!Bar( BAT_STARTX - 1, BAT_STARTY - 1, BAT_STARTX + BAT_WIDTH + 1, BAT_STARTY + BAT_HEIGHT + 1)); // draw the battery head while(!Bar( BAT_STARTX - 3, BAT_STARTY + ((BAT_HEIGHT>>1)-1), BAT_STARTX - 2, BAT_STARTY + ((BAT_HEIGHT>>1)+1))); UpdateTime(FORCE_UPDATE); }
static INT32 UIFlowWndPhoto_OnExeCapture(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { UINT32 uiEvtKeyAct = 0; if(paramNum > 0) uiEvtKeyAct = paramArray[0]; switch(uiEvtKeyAct) { case NVTEVT_KEY_PRESS: { switch (gPhotoData.State) { case PHOTO_ST_VIEW: /* Check if in quick review process */ if(SysGetFlag(FL_QUICK_REVIEW) != QUICK_REVIEW_0SEC) { if(g_uiQviewTimerID != NULL_TIMER) { GxTimer_StopTimer(&g_uiQviewTimerID); //g_bQviewTimerStart = FALSE; // unloce AE/AWB FlowPhoto_InitStartupFuncs(); /* Set to preview mode */ UI_Show(UI_SHOW_PREVIEW, TRUE); /* close quick view image */ UI_Show(UI_SHOW_QUICKVIEW, FALSE); /* Resume key after quick view completed */ Input_SetKeyMask(KEY_PRESS, g_uiMaskKeyPress); Ux_FlushEventByRange(NVTEVT_KEY_EVT_START,NVTEVT_KEY_EVT_END); /* Update window info */ FlowPhoto_UpdateIcons(TRUE); return NVTEVT_CONSUME; } } /* Check capture prerequisite */ if(FlowPhoto_IsStorageErr() == TRUE) { debug_err(("UIFlowWndPhoto_OnKeyShutter2: Card or memory full!\r\n")); gPhotoData.State= PHOTO_ST_WARNING_MENU; return NVTEVT_CONSUME; } if (GetBatteryLevel() == BATTERY_EXHAUSTED) { debug_err(("UIFlowWndPhoto_OnKeyShutter2: Battery is too low!\r\n")); return NVTEVT_CONSUME; } // check free pic number if (SysGetFlag(FL_CONTINUE_SHOT) == CONTINUE_SHOT_ON) { if(FlowPhoto_GetFreePicNum() < 2) { UINT32 uiMsg = 0; #if (_DUAL_CARD_FUNC_ == ENABLE) uiMsg = ((UI_GetData(FL_CardStatus) == CARD_REMOVED) && (UI_GetData(FL_Card2Status) == CARD_REMOVED))? UIFlowWndWrnMsg_StatusTXT_Msg_STRID_PLEASE_INSERT_SD : UIFlowWndWrnMsg_StatusTXT_Msg_STRID_CARD_FULL; #else uiMsg = (UI_GetData(FL_CardStatus) == CARD_REMOVED)? UIFlowWndWrnMsg_StatusTXT_Msg_STRID_PLEASE_INSERT_SD : UIFlowWndWrnMsg_StatusTXT_Msg_STRID_CARD_FULL; #endif gPhotoData.State= PHOTO_ST_WARNING_MENU; Ux_OpenWindow(&UIFlowWndWrnMsgCtrl,2,uiMsg,FLOWWRNMSG_TIMER_2SEC); return NVTEVT_CONSUME; } } switch (SysGetFlag(FL_SELFTIMER)) // set capture mode by system flag { case SELFTIMER_2SEC: /* Suspend all keys, except S2 key while selftimer started */ Input_SetKeyMask(KEY_PRESS, FLGKEY_ENTER); FlowPhoto_IconDrawSelftimerTime(&UIFlowWndPhoto_StaticTXT_SelftimerCntCtrl,2); gPhotoData.SelfTimerCount = 20; // set time counter gPhotoData.State = PHOTO_ST_SELFTIMER; // set working state to self-timer state //KeyScan_EnableLEDToggle(KEYSCAN_LED_GREEN, TRUE); UISound_Play(DEMOSOUND_SOUND_KEY_TONE); if (g_uiSelfTimerID == NULL_TIMER) { g_uiSelfTimerID = GxTimer_StartTimer(100, NVTEVT_01SEC_TIMER, CONTINUE); } break; case SELFTIMER_5SEC: /* Suspend all keys, except S2 key while selftimer started */ Input_SetKeyMask(KEY_PRESS, FLGKEY_ENTER); FlowPhoto_IconDrawSelftimerTime(&UIFlowWndPhoto_StaticTXT_SelftimerCntCtrl,5); gPhotoData.SelfTimerCount = 50; // set time counter gPhotoData.State = PHOTO_ST_SELFTIMER; // set working state to self-timer state //KeyScan_EnableLEDToggle(KEYSCAN_LED_GREEN, TRUE); UISound_Play(DEMOSOUND_SOUND_KEY_TONE); if (g_uiSelfTimerID == NULL_TIMER) { g_uiSelfTimerID = GxTimer_StartTimer(100, NVTEVT_01SEC_TIMER, CONTINUE); } break; case SELFTIMER_10SEC: /* Suspend all keys, except S2 key while selftimer started */ Input_SetKeyMask(KEY_PRESS, FLGKEY_ENTER); FlowPhoto_IconDrawSelftimerTime(&UIFlowWndPhoto_StaticTXT_SelftimerCntCtrl,10); gPhotoData.SelfTimerCount = 100; // set time counter gPhotoData.State = PHOTO_ST_SELFTIMER; // set working state to self-timer state //#NT#2012/8/1#Philex - begin //KeyScan_EnableLEDToggle(KEYSCAN_LED_GREEN, TRUE); UISound_Play(DEMOSOUND_SOUND_KEY_TONE); //#NT#2012/8/1#Philex - begin if (g_uiSelfTimerID == NULL_TIMER) { g_uiSelfTimerID = GxTimer_StartTimer(100, NVTEVT_01SEC_TIMER, CONTINUE); } break; default: /* Suspend all keys before sending capture command */ Input_SetKeyMask(KEY_PRESS, FLGKEY_KEY_MASK_NULL); Ux_FlushEventByRange(NVTEVT_KEY_EVT_START,NVTEVT_KEY_EVT_END); /* Clear the whole OSD screen */ UxCtrl_SetAllChildShow(pCtrl,FALSE); gPhotoData.State = PHOTO_ST_CAPTURE; // enter capture state FlowPhoto_DoCapture(); // do capture directly break; } break; case PHOTO_ST_SELFTIMER: gPhotoData.State = PHOTO_ST_VIEW; gPhotoData.SelfTimerCount = 0; //KeyScan_EnableLEDToggle(KEYSCAN_LED_GREEN, FALSE); FlowPhoto_IconHideSelftimer(&UIFlowWndPhoto_StaticTXT_SelftimerCntCtrl); // resume press mask to default Input_SetKeyMask(KEY_PRESS, g_uiMaskKeyPress); break; } break; } case NVTEVT_KEY_RELEASE: { //Rsvd break; } default: debug_err(("UIFlowWndPhoto_OnKeyShutter2: Unknown evt 0x%x\r\n", uiEvtKeyAct)); break; } return NVTEVT_CONSUME; }
/************************************************* Function: guilog_proc Descroption: Input: None Output: Return: Other: *************************************************/ static void guilog_proc(void) { INT8U Buf[20]; INT8U Buflen = 0; INT8U mdata[4] = {0,1,2,3}; INT8U Count = 0; INT8U tmp = 0; LCDWriteGB2312(LOG_XPOS, LOG_YPOS, mdata, 4, Font24x24); mdata[0] = 103; mdata[1] = 104; LCDWriteGB2312(CAP_XPOS, CAP_YPOS, mdata, 2, Font12x12); Count = StorageGetDataNum(); Buflen = 0; Buf[Buflen++] = ':';Buf[Buflen++] = ' '; if(Count < 10) { Buf[Buflen++] = '0'+Count; } else if( Count < 100) { Buf[Buflen++] = '0'+Count/10; Buf[Buflen++] = '0'+Count%10; } else { Buf[Buflen++] = '0'+Count/100; tmp = Count/100; Count -= tmp*100; Buf[Buflen++] = '0'+Count/10; Buf[Buflen++] = '0'+Count%10; } Count = INFO_MAX; Buf[Buflen++] = '/'; Buf[Buflen++] = '0'+Count/100; tmp = Count/100; Count -= tmp*100; Buf[Buflen++] = '0'+Count/10; Buf[Buflen++] = '0'+Count%10; LCDWriteAccsii(CAP_XPOS+Font12x12*2, CAP_YPOS+2, Buf, Buflen, Font12x8); mdata[0] = 102; mdata[1] = 104; Count = GetBatteryLevel(); Buflen = 0; Buf[Buflen++] = ':';Buf[Buflen++] = ' '; if(Count < 10) { Buf[Buflen++] = '0'+Count; } else if( Count < 100) { Buf[Buflen++] = '0'+Count/10; Buf[Buflen++] = '0'+Count%10; }else { Buf[Buflen++] = '0'+Count/100; tmp = Count/100; Count -= tmp*100; Buf[Buflen++] = '0'+Count/10; Buf[Buflen++] = '0'+Count%10; } LCDWriteGB2312(BATTERY_XPOS, BATTERY_YPOS, mdata, 2, Font12x12); LCDWriteAccsii(BATTERY_XPOS+Font12x12*2, BATTERY_YPOS+2, Buf, Buflen, Font12x8); }
void FlowMovie_IconDrawBattery(void) { UxState_SetData(&UIFlowWndMovie_Status_batteryCtrl,STATE_CURITEM,GetBatteryLevel()); UxCtrl_SetShow(&UIFlowWndMovie_Status_batteryCtrl,TRUE); }
void FlowPhoto_IconDrawBattery(VControl *pCtrl) { UxState_SetData(pCtrl,STATE_CURITEM,GetBatteryLevel()); UxCtrl_SetShow(pCtrl,TRUE); }
void KeyScan_DetBattery(void) { #if (KEYSCAN_POWEROFF_DET == ENABLE) UINT32 ui_battery_level; static UINT32 uiDetLowBattery = 0; static UINT32 ui_Battery_val[] = {BATTERY_FULL,BATTERY_MED,BATTERY_LOW,BATTERY_EMPTY,BATTERY_EXHAUSTED, BATTERY_CHARGE}; // don't monitor battery as flash light charging //if (KeyScan_IsFlashCharging()) // return; if (KeyScan_IsUSBPower()) { uiBatteryLvl = VOLDET_BATTERY_LVL_CHARGE; ui_battery_level = BATTERY_CHARGE; SetBatteryLevel(BATTERY_CHARGE); Ux_PostEvent(NVTEVT_BATTERY, 0); }else { uiBatteryLvl = VolDet_GetBatteryLevel(); ui_battery_level = GetBatteryLevel(); Ux_PostEvent(NVTEVT_BATTERY, 0); } switch(ui_battery_level) { case BATTERY_CHARGE: if(uiBatteryLvl != VOLDET_BATTERY_LVL_CHARGE) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_FULL: if(uiBatteryLvl != VOLDET_BATTERY_LVL_3) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_MED: if(uiBatteryLvl != VOLDET_BATTERY_LVL_2) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_LOW: if(uiBatteryLvl != VOLDET_BATTERY_LVL_1) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_EMPTY: if(uiBatteryLvl != VOLDET_BATTERY_LVL_0) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; case BATTERY_EXHAUSTED: if(uiBatteryLvl != VOLDET_BATTERY_LVL_EMPTY) { SetBatteryLevel(ui_Battery_val[uiBatteryLvl]); Ux_PostEvent(NVTEVT_BATTERY, 0); } break; } if (uiBatteryLvl == VOLDET_BATTERY_LVL_EMPTY) { uiDetLowBattery++; if (uiDetLowBattery >= 3) // if continuously detect battery low over 3 times { VControl *pCurrnetWnd; //#NT#2011/08/09#KS Hung -begin switch(Primary_GetCurrentMode()) { case PRIMARY_MODE_MOVIE: switch (FlowMovie_GetMovDataState()) { case MOV_ST_REC: case MOV_ST_REC | MOV_ST_ZOOM: FlowMovie_StopRec(); break; } break; case PRIMARY_MODE_PLAYBACK: switch (FlowPB_GetPlbDataState()) { case PLB_ST_PLAY_MOV: case PLB_ST_PAUSE_MOV: Ux_SendEvent(&UIPlayObjCtrl,NVTEVT_MOVSTOP,0); break; } break; } Ux_GetFocusedWindow(&pCurrnetWnd); if (strncmp(pCurrnetWnd->Name,"UIFlowWndWrnMsg",15) != 0) { KeyScan_SetKeyMask(KEYSCAN_KEYMODE_PRESS, FLGKEY_KEY_MASK_NULL); KeyScan_SetKeyMask(KEYSCAN_KEYMODE_RELEASE, FLGKEY_KEY_MASK_NULL); KeyScan_SetKeyMask(KEYSCAN_KEYMODE_CONTINUE, FLGKEY_KEY_MASK_NULL); Ux_OpenWindow(&UIFlowWndWrnMsgCtrl,2,UIFlowWndWrnMsg_StatusTXT_Msg_STRID_BATTERY_LOW, FLOWWRNMSG_TIMER_2SEC*5); } //#NT#2011/08/09#KS Hung -end } } else { uiDetLowBattery = 0; } #endif //KEYSCAN_POWEROFF_DET }