112 lines
3.4 KiB
C
112 lines
3.4 KiB
C
/*******************************************************************
|
|
* Pilot Software
|
|
*
|
|
* Copyright (c) 1995-1997, Palm Computing Inc., All Rights Reserved
|
|
*
|
|
*-------------------------------------------------------------------
|
|
* FileName:
|
|
* AlarmPrv.h
|
|
*
|
|
* Description:
|
|
* Private Include file for Alarm Manager
|
|
*
|
|
* History:
|
|
* 4/11/95 VMK - Created by Vitaly Kruglikov
|
|
*
|
|
*******************************************************************/
|
|
|
|
|
|
#ifdef NON_PORTABLE
|
|
#ifndef __ALARM_PRV_H__
|
|
#define __ALARM_PRV_H__
|
|
|
|
|
|
|
|
/************************************************************
|
|
* Alarm Manager Constants
|
|
*
|
|
*************************************************************/
|
|
#define almMinTableLength 2 // minimum # of entries in alarm table;
|
|
// MUST NOT BE ZERO.
|
|
|
|
#define almMaxTableLength 20 // maximum # of enries in alarm table
|
|
|
|
|
|
/*******************************************************************
|
|
* Alarm Manager alarm table structures
|
|
*
|
|
*******************************************************************/
|
|
|
|
// An entry in the alarm table
|
|
typedef struct AlmEntryType {
|
|
DWord ref; // alarm reference value passed by caller;
|
|
|
|
ULong alarmSeconds; // alarm date/time in seconds since 1/1/1904;
|
|
// a value of 0 indicates unused entry;
|
|
|
|
LocalID dbID; // creator app database ID;
|
|
Word cardNo : 1; // creator app card number;
|
|
|
|
Word quiet : 1; // 1 indicates that the caller wants
|
|
// to be quietly notified when the alarm
|
|
// goes off without all the alarm bells
|
|
// and whistles;
|
|
|
|
Word triggered : 1; // 1 indicates the alarm has been triggered;
|
|
|
|
Word notified : 1; // 1 indicates we notified the caller that
|
|
// the alarm went off;
|
|
} AlmEntryType;
|
|
|
|
typedef AlmEntryType* AlmEntryPtr;
|
|
|
|
|
|
// The alarm table
|
|
typedef struct AlmTableType {
|
|
Short numEntries; // Number of entries in alarm Table;
|
|
|
|
// List of alarm entries;
|
|
// This is a variable size field which
|
|
// ***MUST BE LAST***
|
|
AlmEntryType list[almMinTableLength];
|
|
} AlmTableType;
|
|
|
|
typedef AlmTableType* AlmTablePtr;
|
|
typedef AlmTablePtr* AlmTableHandle;
|
|
|
|
|
|
/*******************************************************************
|
|
* Alarm Manager Globals
|
|
*
|
|
*******************************************************************/
|
|
typedef struct AlmGlobalsType {
|
|
// We're not making the alarm table a part of the
|
|
// Alarm Globals structure because it is allowed
|
|
// to resize, thus posing a problem for
|
|
// AlmAlarmCallback() which needs to access the
|
|
// Alarm Globals at interrupt time.
|
|
AlmTableHandle tableH; // alarm table handle;
|
|
|
|
ULong lastSoundSeconds;
|
|
// alarm seconds of the last alarm for
|
|
// which an alarm was sounded;
|
|
|
|
Word displaying : 1;// 1 indicates we're blocked waiting for
|
|
// some app to finish displaying an alarm
|
|
// dialog box; set and cleared by
|
|
// AlmDisplayNextAlarm();
|
|
|
|
Word triggered : 1; // 1 indicates an alarm was triggered; this
|
|
// field is set by the AlmAlarmCallback() and
|
|
// is checked and cleared by AlmDisplayAlarm();
|
|
|
|
Byte disableCount; // if this value is greater than zero, Alarm
|
|
// notifications are disabled (see AlmEnableNotification);
|
|
} AlmGlobalsType;
|
|
|
|
typedef AlmGlobalsType* AlmGlobalsPtr;
|
|
|
|
|
|
#endif // __ALARM_MGR_H__
|
|
#endif // NON_PORTABLE
|