📄 poweroff_main.c
字号:
//********************************************************************
// Name: MusicAPI.c
//
// Copyright (C) Sitronix TECHNOLOGY INC.
// All rights reserved by Sitronix TECHNOLOGY INC.
//
// Project: ST3110
// Author: Terry Wu
// Begin Date: 2008/01/01
// Last update: 2008/04/01
// $Header: $
// Description:
// music function
//
//
//********************************************************************
#pragma codeseg(APP)
#include <intr6502.h>
#include "sys.h"
#include "MusicPlayer.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#include "PowerOff.h"
extern void _save_setting(void);
extern void _show_low_power_box(void);
extern uint8 counter_2HZ;
extern uint8 vbus_plagin_flag;
extern uint8 state;
void system_sleep(void);
void system_wakeup(void);
void APP_MAIN(void)
{
if (API_OsCheckEventOccur(EVID_KEY_UP))
{
API_OsReleaseEvent(EVID_KEY_UP);
if(API_OsGetKeyId() == KEYID_MODE)
{
API_OsPendEvent(EVID_KEY_KEEP_DOWN);
/*
if(vbus_plagin_flag)
system_wakeup();
*/
}
//API_OsPendEvent(EVID_KEY_UP);
}
if (API_OsCheckEventOccur(EVID_KEY_KEEP_DOWN))
{
API_OsReleaseEvent(EVID_KEY_KEEP_DOWN);
if(API_OsGetKeyId() == KEYID_MODE)
{
system_wakeup();
/*
if(vbus_plagin_flag)
API_OsPendEvent(EVID_KEY_UP);
*/
}
//API_OsPendEvent(EVID_KEY_KEEP_DOWN);
}
if (API_OsCheckEventOccur(EVID_AUD_THD_RESPONSE))
{
API_OsReleaseEvent(EVID_AUD_THD_RESPONSE);
if( (API_MusicGetThreadState() == TS_STOP) )
{
if(API_SysGetVolLv() < BATTERY_LV0)
{
_show_low_power_box();
}
else
{
counter_2HZ = LOWPOWER_WAIT_TIME;
API_LcmPutSysImage(IMG_GOODBYE,0,0);
}
API_OsPendEvent(EVID_BT_2HZ);
}
API_OsPendEvent(EVID_AUD_THD_RESPONSE);
}
if (API_OsCheckEventOccur(EVID_BT_2HZ))
{
API_OsReleaseEvent(EVID_BT_2HZ);
counter_2HZ++;
//API_LcmShowNumber(counter_2HZ,0,0,1);
// time out to power off
if(state == ON_MODE)
{
if(counter_2HZ == LOWPOWER_WAIT_TIME)
{
API_LcmPutSysImage(IMG_GOODBYE,0,0);
}
else if(counter_2HZ == POWEROFF_WAIT_TIME)
{
_save_setting();
if(vbus_plagin_flag)
{
system_sleep();
}
else
{
API_SysPowerOff();
}
}
}
else //to power on
{
if(counter_2HZ == POWERON_WAIT_TIME)
API_OsSetCurrentTask(TASKID_OPENING);
}
API_OsPendEvent(EVID_BT_2HZ);
}
if (API_OsCheckEventOccur(EVID_VBUS_PLUGIN))
{
API_OsReleaseEvent(EVID_VBUS_PLUGIN);
if(API_SysGetUSBSource() == VBUS_SRC_USB_ON_LINE || API_SysGetUSBSource() == VBUS_SRC_ADAPTER)
{
vbus_plagin_flag = TRUE;
}
API_OsPendEvent(EVID_VBUS_PLUGIN);
}
if(API_OsCheckEventOccur(EVID_VBUS_PLUGOUT))
{
API_OsReleaseEvent(EVID_VBUS_PLUGOUT);
API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_NONE);
vbus_plagin_flag = FALSE;
//if(counter_2HZ == POWEROFF_WAIT_TIME)
if(state == SLEEP_MODE)
API_SysPowerOff();
API_OsPendEvent(EVID_VBUS_PLUGOUT);
}
if(API_OsCheckEventOccur(EVID_ALARM_OCCUR))
{
uint32 frame_no;
uint16 current_song_no;
API_OsReleaseEvent(EVID_ALARM_OCCUR);
if(API_MusicGetThreadState() == TS_PLAY || API_MusicGetThreadState() == TS_PAUSE)
{
API_MusicGetCurrentSongIndex(¤t_song_no);
API_SysWriteValue2B(RAM_SHARING_ADR,B_SONG_FILE_L,current_song_no);
API_MusicGetFrame(&frame_no);
API_SysWriteValue4B(RAM_SHARING_ADR,FRAME_NO_LL,frame_no);
}
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_POWEROFF);
API_OsSetCurrentTask(TASKID_ALARMOCCUR);
API_OsPendEvent(EVID_ALARM_OCCUR);
}
}
void system_sleep(void)
{
// close back light
API_LcmSetBackLight(0);
state = SLEEP_MODE;
}
void system_wakeup(void)
{
uint8 bl;
uint16 i=0;
bl = API_SysReadValue(RAM_SETTING_ADR,SET_BL); //level 0~6 ((bl+1)*4)+3
LCM_CLEAN_SCREEN_ALL();
//set BL
{
uint8 BL_array[7] = {BL7_L0,BL7_L1,BL7_L2,BL7_L3,BL7_L4,BL7_L5,BL7_L6};
API_LcmSetBackLight(BL_array[bl]);
}
API_LcmPutSysImage(IMG_OPENING,0,0);
API_OsPendEvent(EVID_BT_2HZ);
counter_2HZ = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -