📄 clockalarm_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 "img_position.h"
#include "ST3110_img_define.h"
#include "ClockAlarm.h"
#pragma codeseg(APP)
extern uint8 alarm_state,alarm_selection,alarm_fcous;
extern uint8 alarm_enable[2];
extern uint8 alarm_hr[2],alarm_min[2];
extern uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
extern void _alarm1_show(void);
extern void _alarm2_show(void);
extern void _alarm_show_update(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)
{
if(API_OsCheckEventOccur(EVID_KEY_DOWN_60MS))
{
API_OsReleaseEvent(EVID_KEY_DOWN_60MS);
switch(API_OsGetKeyId())
{
case KEYID_PLAY:
switch(alarm_state)
{
case CLOCKALARM_STATE_BEGIN:
API_OsSetCurrentTask(TASKID_CLOCKACLOCK);
break;
case CLOCKALARM_STATE_SEL_ALARM:
alarm_state = CLOCKALARM_STATE_SEL_FCOUS;
_alarm_show_update();
break;
case CLOCKALARM_STATE_SEL_FCOUS:
case CLOCKALARM_STATE_ADJUST:
alarm_state = CLOCKALARM_STATE_SEL_ALARM;
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_EN,alarm_enable[0]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_EN,alarm_enable[1]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_HOUR,alarm_hr[0]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_HOUR,alarm_hr[1]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_MIN,alarm_min[0]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_MIN,alarm_min[1]);
_alarm_set();
_alarm_show_update();
break;
}
break;
case KEYID_UP:
switch(alarm_state)
{
case CLOCKALARM_STATE_BEGIN:
case CLOCKALARM_STATE_SEL_ALARM:
alarm_state = CLOCKALARM_STATE_SEL_ALARM;
if(alarm_selection == 1)
alarm_selection = 2;
else
alarm_selection = 1;
_alarm1_show();
_alarm2_show();
break;
case CLOCKALARM_STATE_SEL_FCOUS:
case CLOCKALARM_STATE_ADJUST:
alarm_state = CLOCKALARM_STATE_ADJUST;
switch(alarm_fcous)
{
case 0: //set alarm enable/disable
alarm_enable[alarm_selection-1] = !alarm_enable[alarm_selection-1];
break;
case 1: //set hour
if(alarm_hr[alarm_selection-1] == 23)
alarm_hr[alarm_selection-1] = 0;
else
alarm_hr[alarm_selection-1]++;
break;
case 2: //set minute
if(alarm_min[alarm_selection-1] == 59)
alarm_min[alarm_selection-1] = 0;
else
alarm_min[alarm_selection-1]++;
break;
}
_alarm_show_update();
break;
}
break;
case KEYID_DOWN:
switch(alarm_state)
{
case CLOCKALARM_STATE_BEGIN:
case CLOCKALARM_STATE_SEL_ALARM:
alarm_state = CLOCKALARM_STATE_SEL_ALARM;
if(alarm_selection == 1)
alarm_selection = 2;
else
alarm_selection = 1;
_alarm1_show();
_alarm2_show();
break;
case CLOCKALARM_STATE_SEL_FCOUS:
case CLOCKALARM_STATE_ADJUST:
alarm_state = CLOCKALARM_STATE_ADJUST;
switch(alarm_fcous)
{
case 0: //set alarm enable/disable
alarm_enable[alarm_selection-1] = !alarm_enable[alarm_selection-1];
break;
case 1: //set hour
if(alarm_hr[alarm_selection-1] == 0)
alarm_hr[alarm_selection-1] = 23;
else
alarm_hr[alarm_selection-1]--;
break;
case 2: //set minute
if(alarm_min[alarm_selection-1] == 0)
alarm_min[alarm_selection-1] = 59;
else
alarm_min[alarm_selection-1]--;
break;
}
_alarm_show_update();
break;
}
break;
case KEYID_RIGHT:
switch(alarm_state)
{
case CLOCKALARM_STATE_SEL_FCOUS:
case CLOCKALARM_STATE_ADJUST:
alarm_state = CLOCKALARM_STATE_SEL_FCOUS;
if(alarm_fcous == 2)
alarm_fcous = 0;
else
alarm_fcous++;
break;
}
_alarm_show_update();
break;
case KEYID_LEFT:
switch(alarm_state)
{
case CLOCKALARM_STATE_SEL_FCOUS:
case CLOCKALARM_STATE_ADJUST:
alarm_state = CLOCKALARM_STATE_SEL_FCOUS;
if(alarm_fcous == 0)
alarm_fcous = 2;
else
alarm_fcous--;
break;
}
_alarm_show_update();
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)
{
switch(alarm_state)
{
case CLOCKALARM_STATE_BEGIN:
_exit_to_PhoBro();
break;
case CLOCKALARM_STATE_SEL_ALARM:
alarm_selection = 0;
alarm_state = CLOCKALARM_STATE_BEGIN;
_alarm1_show();
_alarm2_show();
break;
case CLOCKALARM_STATE_SEL_FCOUS:
case CLOCKALARM_STATE_ADJUST:
alarm_state = CLOCKALARM_STATE_SEL_ALARM;
alarm_fcous = 0;
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_EN,alarm_enable[0]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_EN,alarm_enable[1]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_HOUR,alarm_hr[0]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_HOUR,alarm_hr[1]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM1_MIN,alarm_min[0]);
API_SysWriteValue(RAM_SETTING_ADR,SET_ALARM2_MIN,alarm_min[1]);
_alarm_set();
_alarm_show_update();
break;
}
}
API_OsPendEvent(EVID_KEY_UP);
}
if(API_OsCheckEventOccur(EVID_KEY_KEEP_DOWN))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -