📄 alarmoccur_init.c
字号:
//********************************************************************
// Name: MusicAPI.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:
// music function
//
//
//********************************************************************
#include <intr6502.h>
#include <stdlib.h>
#include "sys.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#include "MusicPlayer.h"
#pragma codeseg(APP)
uint8 counter_2hz;
uint8 timer;
uint8 alarm_state,bg_music_state;
void _alarm_set(void);
uint8 PlayAlarmRing(void);
#define ALARM_STATE_BEGIN 0
#define ALARM_STATE_MUSIC_END 1
#define ALARM_STATE_RING_END 2
#define ALARM_STATE_MUSIC_RESUME 3
void APP_INIT(void)
{
counter_2hz = 0;
timer = 0;
alarm_state = ALARM_STATE_BEGIN;
if( (API_MusicGetThreadState() == TS_PLAY) || (API_MusicGetThreadState() == TS_PAUSE))
{
API_MusicStop();
API_OsPendEvent(EVID_AUD_THD_RESPONSE);
bg_music_state = API_MusicGetThreadState();
if ((API_MusicGetThreadState() == TS_PAUSE) && (API_SysReadValue(RAM_SHARING_ADR,LAST_TASK) == TASKID_VIDEOPLAYER))
API_SysWriteValue(RAM_SHARING_ADR,PAUSE_VIDEO,1);
}
/*
else if((API_VideoGetThreadState() == TS_PLAY) || (API_VideoGetThreadState() == TS_PAUSE))
{
API_VideoStop();
API_OsPendEvent(EVID_VID_THD_RESPONSE);
}
*/
else
{
API_LcmPutSysImage(IMG_BACKGD,0,0);
if(PlayAlarmRing())
API_MusicSetRepeatMode(RM_REP_1);
alarm_state = ALARM_STATE_MUSIC_END;
API_OsPendEvent(EVID_BT_2HZ);
}
_alarm_set();
//API_OsPendEvent(EVID_BT_2HZ);
API_OsPendEvent(EVID_AUD_THD_RESPONSE);
API_OsPendEvent(EVID_KEY_DOWN_60MS);
API_OsPendEvent(EVID_KEY_UP);
API_OsPendEvent(EVID_KEY_KEEP_DOWN);
API_OsPendEvent(EVID_UPDATE_SD);
API_OsPendEvent(EVID_VBUS_PLUGIN);
API_OsPendEvent(EVID_VBUS_PLUGOUT);
API_OsPendEvent(EVID_UPDATE_BATVOL);
}
//***************************************************************************
// Func: void _alarm_set(void)
// Input: alarm parameter from RAM Setting value
// Output: none
//
// Description: set near alarm time according to current time
//
//***************************************************************************
void _alarm_set(void)
{
uint8 alarm_enable[2];
uint8 alarm_hr[2],alarm_min[2];
uint8 hour,minute,alarm_select;
hour = API_TimeGetHour();
minute = API_TimeGetMinute();
alarm_enable[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_EN);
alarm_enable[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_EN);
alarm_hr[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_HOUR);
alarm_hr[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_HOUR);
alarm_min[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_MIN);
alarm_min[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_MIN);
if(alarm_enable[0] && alarm_enable[1]) // all alarm1 and alarm2 are on
{
if( (uint8)(alarm_hr[0]-hour) < (uint8)(alarm_hr[1]-hour) )//alarm1
{
alarm_select = 1;
}
else if( (alarm_hr[0]-hour) == (alarm_hr[1]-hour) )
{
if( (uint8)(alarm_min[0]-minute) < (uint8)(alarm_min[1]-minute) ) // alarm1
{
alarm_select = 1;
if(alarm_min[0]-minute == 0)
{
alarm_select = 2;
}
}
else if( (alarm_min[0]-minute) == (alarm_min[1]-minute) ) //both
{
alarm_select = 1;
}
else //alarm2
{
if(alarm_min[1]-minute == 0)
{
alarm_select = 1;
}
else
{
alarm_select = 2;
}
}
}
else //alarm2
{
alarm_select = 2;
}
}
else if(alarm_enable[0]) // alarm1
{
alarm_select = 1;
}
else if(alarm_enable[1]) // alarm2
{
alarm_select = 2;
}
if(alarm_enable[0] || alarm_enable[1])
{
API_TimeSetAlertHour(alarm_hr[alarm_select-1]);
API_TimeSetAlertMinute(alarm_min[alarm_select-1]);
}
}
uint8 PlayAlarmRing(void)
{
//return API_MusicPlayResMedia(0,2);
return API_MusicPlayResMedia(0,0);
//return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -