⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 musicplayer_main.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 C
📖 第 1 页 / 共 2 页
字号:
//********************************************************************
// 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 + -