📄 musicplayer_main.c
字号:
//********************************************************************
// Name: mp3_ap_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:
// deal with event
//
//
//********************************************************************
#include <intr6502.h>
#include <stdlib.h>
#include "sys.h"
#include "MusicPlayer.h"
#include "MusicBrowser.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#pragma codeseg(APP)
extern uint8 mp3_state;
extern uint8 FileHandle[70];
extern uint8 hr,min,sec;
extern uint8 volume,bl,repeat;
extern uint8 language;
extern uint8 sfnPtr[13],lfnPtr[256];
extern uint16 Folders,Files;
extern uint16 current_song_no;
extern uint32 music_format;
extern uint8 music_percentage_s;
extern uint8 lrc_result;
extern uint8 counter_2hz;
extern uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
//extern uint8 counter_2hz_temp;
void v_process_key_events(void);
extern void show_play_time(uint8 min, uint8 sec);
extern void _music_main_show(uint8 volume);
extern void _music_show_state(uint8 mp3_state);
extern uint8 _music_play(uint8 volume);
extern void _show_cur_song_info(void);
extern void _show_repeat_icon(void);
extern void _show_volume_icon(uint8 volume);
extern void _show_percentage(void);
extern void _show_error_message_box(void);
extern void _show_battery(void);
extern uint8 _get_battery_icon_index(void);
void APP_MAIN(void)
{
v_process_key_events();
}
void v_process_key_events(void)
{
uint8 j,i;
////disable_interrupt();
if(API_OsCheckEventOccur(EVID_KEY_DOWN_60MS))
{ API_OsReleaseEvent(EVID_KEY_DOWN_60MS);
if(mp3_state == ERROR_STATE)
{
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_MUSICPLAYER);
API_SysWriteValue(RAM_SHARING_ADR,MUS_PAINT_FLAG,3);
API_OsSetCurrentTask(TASKID_MUSICBROWSER);
return;
}
switch (API_OsGetKeyId())
{
case KEYID_UP:
{
switch(mp3_state)
{
case PLAY_STATE:
case STOP_STATE:
case PAUSE_STATE:
if(volume < VOLUME_NUM-1)
{
volume++;
_show_volume_icon(volume);
}
break;
}
}
break;
case KEYID_DOWN:
{
switch(mp3_state)
{
case PLAY_STATE:
case STOP_STATE:
case PAUSE_STATE:
if(volume > 0)
{
volume--;
_show_volume_icon(volume);
}
break;
}
}
break;
case KEYID_LEFT:
{
switch (mp3_state)
{
case PLAY_STATE:
case STOP_STATE:
case PAUSE_STATE:
mp3_state = LAST_STATE;
break;
}
}
break;
case KEYID_RIGHT:
{
switch (mp3_state)
{
case PLAY_STATE:
case STOP_STATE:
case PAUSE_STATE:
mp3_state = NEXT_STATE;
break;
}
}
break;
case KEYID_PLAY:
{
switch(mp3_state)
{
case PLAY_STATE: //do pause
API_MusicPause();
API_OsReleaseEvent(EVID_BT_2HZ);
break;
case STOP_STATE: // do play
if(API_MusicGetThreadState() == TS_STOP)
{
_music_play(volume);
}
break;
case PAUSE_STATE: //do Resume
API_MusicResume();
API_OsPendEvent(EVID_BT_2HZ);
break;
}
}
break;
case KEYID_MODE:
{
mp3_state = MODE_STATE;
/*
// show music browser BG
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_MUSICPLAYER);
API_SysWriteValue(RAM_SHARING_ADR,MUS_PAINT_FLAG,3);
API_OsSetCurrentTask(TASKID_MUSICBROWSER);
*/
}
break;
}
API_OsPendEvent(EVID_KEY_DOWN_60MS);
}
if(API_OsCheckEventOccur(EVID_KEY_DOWN_1S))
{
API_OsReleaseEvent(EVID_KEY_DOWN_1S);
switch(API_OsGetKeyId())
{
case KEYID_LEFT:
switch(mp3_state)
{
//case PLAY_STATE:
//case PAUSE_STATE:
//case NEXT_STATE:
case LAST_STATE:
API_MusicBackward();
break;
}
break;
case KEYID_RIGHT:
switch(mp3_state)
{
//case PLAY_STATE:
//case PAUSE_STATE:
case NEXT_STATE:
//case LAST_STATE:
API_MusicForward();
break;
}
break;
default:
break;
}
API_OsPendEvent(EVID_KEY_DOWN_1S);
}
if(API_OsCheckEventOccur(EVID_KEY_KEEP_DOWN))
{
API_OsReleaseEvent(EVID_KEY_KEEP_DOWN);
switch(API_OsGetKeyId())
{
case KEYID_LEFT:
switch(mp3_state)
{
case BF_STATE:
if(!(min == 0 && sec==0))
{
API_MusicGetCurrentPlayTime(&hr,&min,&sec);
show_play_time(min,sec);
// clear percentage bar
j = (uint8)(API_MusicGetPercentage()*(MUSIC_PERCENTAGE_LENGTH/64));
for(i = music_percentage_s;((i >= j) && (i<=music_percentage_s));i--)
{
API_LcmPutSysImage(IMG_BAR_CLEAN,(POS_MUSPLY_SPRO_X+i),POS_MUSPLY_SPRO_Y);
}
music_percentage_s = j;
}
break;
}
break;
case KEYID_RIGHT:
switch(mp3_state)
{
case FF_STATE:
API_MusicGetCurrentPlayTime(&hr,&min,&sec);
show_play_time(min,sec);
_show_percentage();
break;
}
break;
case KEYID_UP:
switch(mp3_state)
{
case PLAY_STATE:
case STOP_STATE:
case PAUSE_STATE:
if(volume < VOLUME_NUM-1)
{
volume++;
_show_volume_icon(volume);
}
break;
}
break;
case KEYID_DOWN:
switch(mp3_state)
{
case PLAY_STATE:
case STOP_STATE:
case PAUSE_STATE:
if(volume > 0)
{
volume--;
_show_volume_icon(volume);
}
break;
}
break;
case KEYID_MODE:
API_OsSetCurrentTask(TASKID_POWEROFF);
break;
}
API_OsPendEvent(EVID_KEY_KEEP_DOWN);
}
if(API_OsCheckEventOccur(EVID_KEY_UP))
{
API_OsReleaseEvent(EVID_KEY_UP);
switch(mp3_state)
{
case BF_STATE:
case FF_STATE:
{
API_MusicRelease();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -