📄 musicevent_main.c
字号:
//********************************************************************
// Name: app1_main.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:
// pure code framework --- _main.c
//
//
//********************************************************************
#pragma codeseg(APP)
#include "sys.h"
#include "img_position.h"
#include "ST3110_img_define.h"
extern void _music_sel_up(void);
extern void _music_sel_down(void);
extern void _music_sel_left(void);
extern void _music_sel_right(void);
extern void _music_sel_play(void);
extern void _music_last_page(void);
extern void _music_next_page(void);
void _process_events(void);
extern void _show_battery(void);
extern uint8 _get_battery_icon_index(void);
extern uint8 page,file_curr_sel_icon,file_pre_sel_icon;
extern uint8 file_repaint_flag;
extern uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
void APP_MAIN(void)
{
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_MUSICEVENT);
if(API_OsCheckEventOccur(EVID_KEY_DOWN_60MS))
{
API_OsReleaseEvent(EVID_KEY_DOWN_60MS);
switch(API_OsGetKeyId())
{
case KEYID_MODE:
API_OsPendEvent(EVID_KEY_UP);
break;
case KEYID_PLAY:
_music_sel_play();
break;
case KEYID_UP:
_music_sel_up();
break;
case KEYID_DOWN:
_music_sel_down();
break;
case KEYID_LEFT:
_music_last_page();
break;
case KEYID_RIGHT:
_music_next_page();
break;
}
API_OsPendEvent(EVID_KEY_DOWN_60MS);
}
if(API_OsCheckEventOccur(EVID_KEY_UP))
{
API_OsReleaseEvent(EVID_KEY_UP);
if(API_OsGetKeyId() == KEYID_MODE)
{
file_repaint_flag = TRUE;
file_pre_sel_icon = 0;
file_curr_sel_icon = 0;
page = 0;
API_SysWriteValue(RAM_SHARING_ADR,VID_PAGE,page);
API_SysWriteValue(RAM_SHARING_ADR,VID_CUR_SEL,file_curr_sel_icon);
API_SysWriteValue(RAM_SHARING_ADR,VID_PRE_SEL,file_pre_sel_icon);
API_SysWriteValue(RAM_SHARING_ADR,VID_PAINT_FLAG,file_repaint_flag);
API_OsSetCurrentTask(TASKID_VIDEOBROWSER);
}
API_OsPendEvent(EVID_KEY_UP);
}
if(API_OsCheckEventOccur(EVID_KEY_KEEP_DOWN))
{
API_OsReleaseEvent(EVID_KEY_KEEP_DOWN);
switch(API_OsGetKeyId())
{
case KEYID_UP:
_music_sel_up();
break;
case KEYID_DOWN:
_music_sel_down();
break;
case KEYID_MODE:
API_OsSetCurrentTask(TASKID_POWEROFF);
break;
}
API_OsPendEvent(EVID_KEY_KEEP_DOWN);
}
if(API_OsCheckEventOccur(EVID_UPDATE_SD))
{
API_OsReleaseEvent(EVID_UPDATE_SD);
API_OsSetCurrentTask(TASKID_CHANGESOURCE);
API_OsPendEvent(EVID_UPDATE_SD);
}
if (API_OsCheckEventOccur(EVID_VBUS_PLUGIN))
{
API_OsReleaseEvent(EVID_VBUS_PLUGIN);
if(API_SysGetUSBSource() == VBUS_SRC_USB_ON_LINE)
{
uint32 frame_no;
uint16 current_song_no;
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_MUSICBROWSER);
API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_USB_ON_LINE);
API_OsSetCurrentTask(TASKID_USBAPP);
}
else
{
API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_ADAPTER);
}
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);
_show_battery();
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_MUSICBROWSER);
API_OsSetCurrentTask(TASKID_ALARMOCCUR);
API_OsPendEvent(EVID_ALARM_OCCUR);
}
if(API_OsCheckEventOccur(EVID_UPDATE_BATVOL))
{
uint8 bat_lv;
API_OsReleaseEvent(EVID_UPDATE_BATVOL);
bat_lv = API_SysGetVolLv();
if(bat_lv < BATTERY_LV0)
{
API_OsSetCurrentTask(TASKID_POWEROFF);
}
else
{
uint8 bat_lv_icon_idx;
//get current voltage icon
bat_lv_icon_idx = _get_battery_icon_index();
if(API_SysReadValue(RAM_SHARING_ADR,VBUS_STATE) == VBUS_SRC_ADAPTER)
cur_bat_lv_icon_idx = bat_lv_icon_idx;
else if(API_SysReadValue(RAM_SHARING_ADR,VBUS_STATE) == VBUS_SRC_NONE)
API_LcmPutSysImage(IMG_BATTERY_0+bat_lv_icon_idx,POS_MUSBRO_BATTERY_X,POS_MUSBRO_BATTERY_Y);
}
API_OsPendEvent(EVID_UPDATE_BATVOL);
}
if(API_OsCheckEventOccur(EVID_BT_2HZ))
{
API_OsReleaseEvent(EVID_BT_2HZ);
//show battery charger
if(API_SysReadValue(RAM_SHARING_ADR,VBUS_STATE) == VBUS_SRC_ADAPTER)
{
if(slide_bat_lv_idx == 5)
slide_bat_lv_idx = cur_bat_lv_icon_idx;
API_LcmPutSysImage(IMG_BATTERY_0+slide_bat_lv_idx,POS_MUSBRO_BATTERY_X,POS_MUSBRO_BATTERY_Y);
slide_bat_lv_idx++;
}
API_OsPendEvent(EVID_BT_2HZ);
}
// for MusicBrowser
API_SysWriteValue(RAM_SHARING_ADR,MUS_PAGE,page);
API_SysWriteValue(RAM_SHARING_ADR,MUS_CUR_SEL,file_curr_sel_icon);
API_SysWriteValue(RAM_SHARING_ADR,MUS_PRE_SEL,file_pre_sel_icon);
API_SysWriteValue(RAM_SHARING_ADR,MUS_PAINT_FLAG,file_repaint_flag);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -