AlarmFrameworkProt.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:11k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  * AlarmFrameworkProt.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  * MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  * This file is defines constant, enum value, structure, and function prototypes used in alarm framework.
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  * removed!
  59.  * removed!
  60.  * removed!
  61.  *
  62.  * removed!
  63.  * removed!
  64.  * removed!
  65.  *
  66.  * removed!
  67.  * removed!
  68.  * removed!
  69.  *
  70.  * removed!
  71.  * removed!
  72.  * removed!
  73.  *
  74.  * removed!
  75.  * removed!
  76.  * removed!
  77.  *
  78.  * removed!
  79.  * removed!
  80.  * removed!
  81.  *
  82.  * removed!
  83.  * removed!
  84.  * removed!
  85.  *
  86.  * removed!
  87.  * removed!
  88.  * removed!
  89.  *
  90.  * removed!
  91.  * removed!
  92.  * removed!
  93.  *
  94.  * removed!
  95.  * removed!
  96.  * removed!
  97.  *
  98.  * removed!
  99.  * removed!
  100.  * removed!
  101.  *
  102.  * removed!
  103.  * removed!
  104.  * removed!
  105.  *
  106.  * removed!
  107.  * removed!
  108.  * removed!
  109.  *
  110.  * removed!
  111.  * removed!
  112.  * removed!
  113.  *
  114.  * removed!
  115.  * removed!
  116.  * removed!
  117.  *
  118.  * removed!
  119.  * removed!
  120.  * removed!
  121.  *
  122.  * removed!
  123.  * removed!
  124.  * removed!
  125.  *
  126.  * removed!
  127.  * removed!
  128.  * removed!
  129.  *
  130.  *------------------------------------------------------------------------------
  131.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  132.  *==============================================================================
  133.   *******************************************************************************/
  134. /**
  135.  * Copyright Notice
  136.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  137.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  138.  *  (It is illegal to remove this copyright notice from this software or any
  139.  *  portion of it)
  140.  */
  141.  /**************************************************************
  142.    FILENAME : AlarmFrameWorkProt.h
  143.    PURPOSE     : Alarms application 
  144.    REMARKS     : nil
  145.    AUTHOR      : NEERAJ SHARMA
  146.    DATE     : Jun 16,03
  147. **************************************************************/
  148. #ifndef _PIXTEL_ALARMFRAMEWORKPROT_H
  149. #define _PIXTEL_ALARMFRAMEWORKPROT_H
  150. #include "MMI_features.h"
  151. #include "DateTimeType.h"
  152. #include "custom_mmi_default_value.h"
  153. /* 
  154.  * Define
  155.  */
  156. #define  ALM_ALL_DAYS         0x7F
  157. #define  ALM_WEEK_DAYS        0x3e      /* 0111110, default day of week */
  158. #define  ALM_SNOOZE_INTERVAL  4 /* in minutes */
  159. #define  ALM_EXPIRE_DURATION     30000
  160. #define  ALM_FACTORY_RTC_TIME 3
  161. #define ALM_DEFAULT_EXPIRY_PERIOD 30
  162. #define ALM_WITHOUD_EXPIRY_PERIOD 0
  163. /* 
  164.  * Typedef 
  165.  */
  166. typedef struct
  167. {
  168.     U8 CurrAlmIndex;    /* index of current expired alarm */
  169.     U8 EnabledAlarms;
  170.     U8 IsAlmTonePlaying;
  171.     U8 IsPwronAlarm;    /* tells if power on is bcos of alarm */
  172.     U8 IsExitByTimer;
  173.     U8 IsWaitForPwroff;
  174.     U8 IsPendingAlm;
  175.     U8 IsSpofDisabled;
  176.     U8 IsExpiryDisabled;
  177.     U8 IsATPwrOffAnimation;
  178.     U8 ATPwrCycle;
  179.     U8 IsAppExecuting;  /* set true when application is executing and could not power off */
  180. } alm_framework_context_struct;
  181. typedef struct
  182. {
  183.     MYTIME Time;
  184.     U8 Index;
  185.     U8 IsExpired;
  186. } alm_queue_node_struct;
  187. typedef enum
  188. {
  189.     ALM_SPON_START = 0,
  190.     ALM_THM_START = (ALM_SPON_START + NUM_OF_SPOF),
  191.     ALM_TDL_START = (ALM_THM_START + NUM_OF_THM_ALM),
  192.     ALM_ALM_START = (ALM_TDL_START + NUM_OF_TDL),
  193.     ALM_FMSR_START = (ALM_ALM_START + NUM_OF_ALM),  /* For Schedule FM Record */
  194.     ALM_SPOF_START = (ALM_FMSR_START + NUM_OF_FMSR),
  195.     ALM_FACTORY = (ALM_SPOF_START + NUM_OF_SPOF),
  196.     ALM_PWR_RESET,
  197.     ALM_SYNCML, /* 1 alarm for syncml */
  198.     ALM_INDEX_TOTAL
  199. } ALM_INDEX_ENUM;
  200. typedef enum
  201. {
  202.     ALM_HAS_NO_IND = 0,
  203.     ALM_HAS_IND
  204. } ALM_INDICATION_ENUM;
  205. typedef enum
  206. {
  207.     ALM_TYPE_SPON = 0,
  208. #ifdef __MMI_THEMES_APPLICATION__
  209.     ALM_TYPE_THEME,
  210. #endif 
  211. #if defined(__MMI_TODOLIST__)
  212.     ALM_TYPE_TDL,
  213. #endif 
  214.     ALM_TYPE_ALARM,
  215. #if defined(__MMI_FM_RADIO_SCHEDULE_REC__)
  216.     ALM_TYPE_FMSR,
  217. #endif 
  218.     ALM_TYPE_SPOF,
  219.     ALM_TYPE_FACTORY,
  220.     ALM_TYPE_PWR_RESET,
  221. #ifdef __SYNCML_SUPPORT__
  222.     ALM_TYPE_SYNCML,
  223. #endif
  224.     ALM_TYPE_TOTAL_NUM
  225. } ALM_TYPE_ENUM;
  226. typedef enum
  227. {
  228.     ALM_FREQ_OFF,
  229.     ALM_FREQ_ONCE,
  230.     ALM_FREQ_HOURLY,
  231.     ALM_FREQ_EVERYDAY,
  232.     ALM_FREQ_DAYS,
  233.     ALM_FREQ_WEEKLY,
  234.     ALM_FREQ_MONTHLY,
  235.     ALM_FREQ_SEASONALLY,
  236.     ALM_FREQ_YEARLY,
  237.     ALM_FREQ_TOTAL
  238. } FREQ_ALARM;
  239. typedef void (*ExpiryTimeCBPtr) (U8, MYTIME *, U8 *, U8 *, MYTIME *);
  240. typedef U8(*ExpiryHandlerCBPtr) (U8 index, U16 *period, BOOL power_on);
  241. typedef void (*InitAlarmNvramCBPtr) (void);
  242. typedef void (*ReInitAlarmQueueCBPtr) (void);
  243. typedef void (*StopAlarmCBPtr) (void);
  244. /* alarm callback functionstuct */
  245. typedef struct
  246. {
  247.     U8 alarmStartIndex;
  248.     ExpiryTimeCBPtr expiryTimeCBPtr;
  249.     ExpiryHandlerCBPtr expiryHandlerCBPtr;
  250.     InitAlarmNvramCBPtr initAlarmNvramCBPtr;
  251.     ReInitAlarmQueueCBPtr reInitAlarmQueueCBPtr;
  252.     StopAlarmCBPtr stopAlarmCBPtr;
  253. } AlarmCallback;
  254. /* 
  255.  * Extern Global Variable
  256.  */
  257. extern alm_framework_context_struct g_alm_frm_cntx;
  258. extern AlarmCallback gAlmCBHandler[ALM_TYPE_TOTAL_NUM];
  259. extern S8 *gAlmFreqList[ALM_FREQ_TOTAL];
  260. /* 
  261.  * Extern Global Function
  262.  */
  263.    /* global */
  264. extern void InitAlarmFrameWork(void);
  265. extern void AlmDeInit(void);
  266. extern void AlmInitRTCPwron(void);
  267. extern void PendingAlarmReminder(void);
  268. extern void PendingAlarmInPwronPeriod(void);
  269. extern U8 AlmIsRTCPwron(void);
  270. extern void AlmReInitialize(void);
  271. extern void AlmDisableSPOF(void);
  272. extern void AlmEnableSPOF(void);
  273. extern U8 AlmIsTonePlaying(void);
  274. extern MMI_BOOL mmi_alm_is_in_alarm(void);
  275.    /* alarm related files */
  276. extern void AlmSendPowerOn(void);
  277. extern void AlmSendPowerOff(void);
  278. extern void AlmPlayAlarmTone(void);
  279. extern void AlmsStopAlarmTone(void);
  280. extern void AlmExecPwrOffAlarm(void);
  281. extern void AlmExecPwrOnAlarm(void);
  282. extern void AlmSetAlarm(U8 index);
  283. extern void AlmCancelAlarm(U8 index);
  284. extern void AlmCancelMulltiAlarm(U8* index, U8 amount);
  285. extern void AlmGetStringValue(S8 *StringVal, U8 Val);
  286. extern void AlmSetExpiryTimeCB(U8 AlmType, ExpiryTimeCBPtr funcPtr);
  287. extern void AlmSetExpiryHandlerCB(U8 AlmType, ExpiryHandlerCBPtr expiryHandler);
  288. extern void AlmSetInitHandlerCB(U8 AlmType, InitAlarmNvramCBPtr initNvram, ReInitAlarmQueueCBPtr reInitQueue);
  289. extern void AlmSetStopAlarmCB(U8 AlmType, StopAlarmCBPtr stopAlarm);
  290. extern void mmi_alm_set_start_index(U8 AlmType, U8 startIndex);
  291. extern U8 mmi_alm_get_index_from_queue(U8 num);
  292. extern U8 mmi_alm_get_freq_order(U8 freqNum, const U8 *freqSet, U8 freq);
  293. extern void mmi_alm_disable_pwroff(void);
  294. extern void mmi_alm_enable_pwroff(void);
  295.    /* local */
  296. extern void AlmStartAlarmOnHW(MYTIME alarmTime);
  297. extern void AlmStopAlarmOnHW(void);
  298. extern U8 AlmInsertIntoQueue(U8 index, U8 saveflag);
  299. extern U8 AlmRemoveFromQueue(U8 index, U8 saveflag);
  300. extern MYTIME AlmActualTime(MYTIME t, FREQ_ALARM frequency, U8 weekDays);
  301. extern U8 AlmFindNodeInQueue(U8 index);
  302. extern U8 AlmGetType(U8 index);
  303. extern void AlmWriteQueueToNvram(void);
  304. extern void AlmInitQueue(void);
  305. extern U8 AlmGetRepeat(U8 index);
  306. extern void AlmExpiryHandler(void *msg);
  307. extern void AlmExitPreviousAlarm(void);
  308. extern void AlmSetAlarmRSP(void *msg);
  309. extern void AlmHandleAlarmTimeout(void);
  310. extern void AlmHandlePendingTimeout(void);
  311. extern void AlmCheckAlarmState(void);
  312. extern void AlmInitLCDModule(void);
  313. extern void AlmDisableExpiryHandler(void);
  314. extern void AlmEnableExpiryHandler(void);
  315. extern MYTIME AlmGetAlarmTime(U8 index);
  316. extern void AlmATPowerReset(U8 power_off, U8 time);
  317. extern BOOL AlmIsPowerOffMode(void);
  318. extern void FactoryExpiryTimeCB(U8 index, MYTIME *alarmTime, U8 *Freq, U8 *WeekDays, MYTIME *preReminder);
  319. extern void ResetExpiryTimeCB(U8 index, MYTIME *alarmTime, U8 *Freq, U8 *WeekDays, MYTIME *preReminder);
  320. extern U8 ResetExpiryHandler(U8 index, U16 *period, BOOL power_on);
  321. extern U8 mmi_alm_spof_disable_check(void);
  322. #if (defined(MMI_ON_HARDWARE_P) && defined(__MMI_ENGINEER_MODE__))      /* Robin Add 1001 for MMI Feature */
  323. extern void FactorySetAlarm(U8 sec);
  324. extern U8 FactoryExpiryHandler(U8 Index, U16 *period, BOOL power_on);
  325. #endif /* (defined(MMI_ON_HARDWARE_P) && defined(__MMI_ENGINEER_MODE__)) */ 
  326. #endif /* _PIXTEL_ALARMFRAMEWORKPROT_H */