📄 photoshow_main.c
字号:
//********************************************************************
// Name: mjp_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 "PhotoShow.h"
#include "PhotoBrowser.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#pragma codeseg(APP)
extern uint8 sfnPtr[13],lfnPtr[256];
extern uint16 Folders,Files;
extern uint16 current_file_no;
extern uint8 slide_show_enable,slide_time,slide_seq,bl;
extern uint8 photo_action;
extern uint8 del_all_flag;
extern uint8 photo_state;
uint16 counter_2HZ;
void v_process_key_events(void);
extern void _PhoShow_play_next(void);
extern void _PhoShow_play_last(void);
extern void _PhotoShow_play_random(void);
void APP_MAIN(void)
{
v_process_key_events();
}
void v_process_key_events(void)
{
// 1s, 2s, 3, 5s, 10s, 30s, 1m, 5m, 30m, 1hr, 2hr
uint16 slide_time_array[] = {2,4,6,10,20,60,120,600,3600,7200,14400};
if(API_OsCheckEventOccur(EVID_KEY_DOWN_60MS))
{
API_OsReleaseEvent(EVID_KEY_DOWN_60MS);
//if(del_all_flag || photo_state == PHO_STATE_ERROR)
if(del_all_flag)
{
// paint photo browser BG
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_PHOTOSHOW);
//set photo browser parameter
API_SysWriteValue(RAM_SHARING_ADR,PHO_PAINT_FLAG,3);
API_OsSetCurrentTask(TASKID_PHOTOBROWSER);
return;
}
switch(API_OsGetKeyId())
{
case KEYID_PLAY:
if( (API_PhotoGetThreadState() == TS_PLAY ) || (photo_state == PHO_STATE_PLAY))
{
API_PhotoAbort();
photo_action = PHOTOSHOW_ACTION_PLAY;
photo_state = PHO_STATE_STOP;
}
else
{
API_OsSetCurrentTask(TASKID_PHOTOMENU);
return;
}
break;
case KEYID_UP:
if(bl < BL_NUM-1)
bl++;
//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_SysWriteValue(RAM_SETTING_ADR,SET_BL,bl);
break;
case KEYID_DOWN:
if(bl > 0)
bl--;
//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_SysWriteValue(RAM_SETTING_ADR,SET_BL,bl);
break;
case KEYID_RIGHT:
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_state = PHO_STATE_STOP;
photo_action = PHOTOSHOW_ACTION_RIGHT;
}
else
{
API_OsReleaseEvent(EVID_BT_2HZ);
_PhoShow_play_next();
}
break;
case KEYID_LEFT:
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_state = PHO_STATE_STOP;
photo_action = PHOTOSHOW_ACTION_LEFT;
}
else
{
API_OsReleaseEvent(EVID_BT_2HZ);
_PhoShow_play_last();
}
break;
default:
break;
}
API_OsPendEvent(EVID_KEY_DOWN_60MS);
}
if(API_OsCheckEventOccur(EVID_KEY_UP))
{
API_OsReleaseEvent(EVID_KEY_UP);
if(API_OsGetKeyId() == KEYID_MODE)
{
if( (API_PhotoGetThreadState() == TS_PLAY ) || (photo_state == PHO_STATE_PLAY))
{
API_PhotoAbort();
photo_state = PHO_STATE_STOP;
photo_action = PHOTOSHOW_ACTION_MODE;
}
else
{
// paint photo browser BG
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_PHOTOSHOW);
//set photo browser parameter
API_SysWriteValue(RAM_SHARING_ADR,PHO_PAINT_FLAG,3);
API_OsSetCurrentTask(TASKID_PHOTOBROWSER);
return;
}
}
API_OsPendEvent(EVID_KEY_UP);
}
if(API_OsCheckEventOccur(EVID_KEY_KEEP_DOWN))
{
API_OsReleaseEvent(EVID_KEY_KEEP_DOWN);
if(API_OsGetKeyId() == KEYID_MODE)
{
if( (API_PhotoGetThreadState() == TS_PLAY ) || (photo_state == PHO_STATE_PLAY))
{
API_PhotoAbort();
photo_state = PHO_STATE_POWEROFF;
photo_action = PHOTOSHOW_ACTION_MODE;
}
else
{
API_OsSetCurrentTask(TASKID_POWEROFF);
return;
}
}
API_OsPendEvent(EVID_KEY_KEEP_DOWN);
}
if(API_OsCheckEventOccur(EVID_PHOTO_RESPONSE))
{
API_OsReleaseEvent(EVID_PHOTO_RESPONSE);
switch(API_PhotoGetThreadState())
{
case TS_FILEEND:
if(slide_show_enable)
{
counter_2HZ = 0;
API_OsPendEvent(EVID_BT_2HZ);
}
switch(photo_action)
{
case PHOTOSHOW_ACTION_MODE:
if(photo_state == PHO_STATE_STOP)
{
// paint photo browser BG
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_PHOTOSHOW);
//set photo browser parameter
API_SysWriteValue(RAM_SHARING_ADR,PHO_PAINT_FLAG,3);
API_OsSetCurrentTask(TASKID_PHOTOBROWSER);
}
else if(photo_state == PHO_STATE_POWEROFF)
{
API_OsSetCurrentTask(TASKID_POWEROFF);
}
return;
//break;
case PHOTOSHOW_ACTION_PLAY:
API_OsSetCurrentTask(TASKID_PHOTOMENU);
return;
//break;
case PHOTOSHOW_ACTION_RIGHT:
API_OsReleaseEvent(EVID_BT_2HZ);
_PhoShow_play_next();
break;
case PHOTOSHOW_ACTION_LEFT:
API_OsReleaseEvent(EVID_BT_2HZ);
_PhoShow_play_last();
break;
case PHOTOSHOW_ACTION_SD:
API_OsSetCurrentTask(TASKID_CHANGESOURCE);
return;
//break;
case PHOTOSHOW_ACTION_USB:
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_PHOTOSHOW);
API_OsSetCurrentTask(TASKID_USBAPP);
return;
//break;
case PHOTOSHOW_ACTION_ALARM:
{
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_PHOTOSHOW);
API_OsSetCurrentTask(TASKID_ALARMOCCUR);
return;
//break;
}
}
photo_action = PHOTOSHOW_ACTION_NONE;
photo_state = PHO_STATE_STOP;
break;
default:
break;
}
API_OsPendEvent(EVID_PHOTO_RESPONSE);
}
if(API_OsCheckEventOccur(EVID_BT_2HZ))
{
API_OsReleaseEvent(EVID_BT_2HZ);
counter_2HZ++;
if( counter_2HZ == slide_time_array[slide_time])
{
if(slide_seq)
_PhotoShow_play_random();
else
_PhoShow_play_next();
counter_2HZ = 0;
}
else
{
API_OsPendEvent(EVID_BT_2HZ);
}
}
if(API_OsCheckEventOccur(EVID_UPDATE_SD))
{
API_OsReleaseEvent(EVID_UPDATE_SD);
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_state = PHO_STATE_STOP;
photo_action = PHOTOSHOW_ACTION_SD;
}
else
{
API_OsSetCurrentTask(TASKID_CHANGESOURCE);
return;
}
API_OsPendEvent(EVID_UPDATE_SD);
}
if (API_OsCheckEventOccur(EVID_VBUS_PLUGIN))
{
API_OsReleaseEvent(EVID_VBUS_PLUGIN);
if(API_SysGetUSBSource() == VBUS_SRC_USB_ON_LINE)
{
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_state = PHO_STATE_STOP;
photo_action = PHOTOSHOW_ACTION_USB;
}
else
{
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_PHOTOSHOW);
API_SysWriteValue(RAM_SHARING_ADR,VBUS_STATE,VBUS_SRC_USB_ON_LINE);
API_OsSetCurrentTask(TASKID_USBAPP);
return;
}
}
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);
//API_LcmPutSysImage((API_SysGetVolLv()/4)+IMG_BATTERY_0,POS_MUSBRO_BATTERY_X,POS_MUSBRO_BATTERY_Y);
API_OsPendEvent(EVID_VBUS_PLUGOUT);
}
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);
}
API_OsPendEvent(EVID_UPDATE_BATVOL);
}
if(API_OsCheckEventOccur(EVID_ALARM_OCCUR))
{
API_OsReleaseEvent(EVID_ALARM_OCCUR);
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_action = PHOTOSHOW_ACTION_ALARM;
photo_state = PHO_STATE_STOP;
}
else
{
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_PHOTOSHOW);
API_OsSetCurrentTask(TASKID_ALARMOCCUR);
return;
}
API_OsPendEvent(EVID_ALARM_OCCUR);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -