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

📄 musicevent_main.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 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(&current_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(&current_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 + -