📄 clockaclock_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"
#include "Clock.h"
#pragma codeseg(APP)
extern uint8 slide_show_enable,slide_time,slide_seq,photo_action,photo_state;
uint16 counter_2HZ;
uint8 counter_2HZ_enable;
extern uint8 sec_bak,min_bak;
extern uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
extern void _digi_clock_date(void);
//extern void _digi_clock_time_hour(void);
//extern void _digi_clock_time_min(void);
extern void _digi_clock_alarm(void);
extern void _PhoShow_play_next(void);
extern void _PhoShow_play_last(void);
extern void _PhotoShow_play_random(void);
extern void _alarm_set(void);
extern void _exit_to_PhoBro(void);
extern void _show_battery(void);
extern uint8 _get_battery_icon_index(void);
void v_process_key_events(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);
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_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_CLOCKACLOCK);
API_OsSetCurrentTask(TASKID_CLOCKDCLOCK);
return;
}
break;
case KEYID_UP:
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_EN,!API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_EN));
_alarm_set();
_digi_clock_alarm();
break;
case KEYID_DOWN:
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_EN,!API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_EN));
_alarm_set();
_digi_clock_alarm();
break;
case KEYID_RIGHT:
if(photo_state != PHO_STATE_NOPIC)
{
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_action = PHOTOSHOW_ACTION_RIGHT;
photo_state = PHO_STATE_STOP;
}
else
{
//API_OsReleaseEvent(EVID_BT_2HZ);
counter_2HZ_enable = FALSE;
_PhoShow_play_next();
}
}
break;
case KEYID_LEFT:
if(photo_state != PHO_STATE_NOPIC)
{
if(API_PhotoGetThreadState() == TS_PLAY)
{
API_PhotoAbort();
photo_action = PHOTOSHOW_ACTION_LEFT;
photo_state = PHO_STATE_STOP;
}
else
{
//API_OsReleaseEvent(EVID_BT_2HZ);
counter_2HZ_enable = FALSE;
_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)
if( (API_PhotoGetThreadState() == TS_PLAY ) || (photo_state == PHO_STATE_PLAY))
{
API_PhotoAbort();
photo_state = PHO_STATE_STOP;
photo_action = PHOTOSHOW_ACTION_MODE;
}
else
{
_exit_to_PhoBro();
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;
counter_2HZ_enable = TRUE;
//API_OsPendEvent(EVID_BT_2HZ);
}
switch(photo_action)
{
case PHOTOSHOW_ACTION_MODE:
if(photo_state == PHO_STATE_STOP)
{
_exit_to_PhoBro();
}
else if(photo_state == PHO_STATE_POWEROFF)
{
API_OsSetCurrentTask(TASKID_POWEROFF);
}
return;
//break;
case PHOTOSHOW_ACTION_PLAY:
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_CLOCKACLOCK);
API_OsSetCurrentTask(TASKID_CLOCKDCLOCK);
//API_OsSetCurrentTask(TASKID_CLOCKCALENDAR);
return;
//break;
case PHOTOSHOW_ACTION_RIGHT:
//API_OsReleaseEvent(EVID_BT_2HZ);
counter_2HZ_enable = FALSE;
_PhoShow_play_next();
break;
case PHOTOSHOW_ACTION_LEFT:
//API_OsReleaseEvent(EVID_BT_2HZ);
counter_2HZ_enable = FALSE;
_PhoShow_play_last();
break;
case PHOTOSHOW_ACTION_SD:
API_OsSetCurrentTask(TASKID_CHANGESOURCE);
return;
//break;
case PHOTOSHOW_ACTION_USB:
{
uint32 frame_no;
uint16 current_song_no;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -