#ifndef _PILOT_DATEBOOK_H_ #define _PILOT_DATEBOOK_H_ #include "pi-args.h" #include "pi-appinfo.h" #ifdef __cplusplus extern "C" { #endif extern char *DatebookAlarmTypeNames[]; extern char *DatebookRepeatTypeNames[]; enum alarmTypes { advMinutes, advHours, advDays }; enum repeatTypes { repeatNone, repeatDaily, repeatWeekly, repeatMonthlyByDay, repeatMonthlyByDate, repeatYearly }; /* This enumeration normally isn't of much use, as you can get just as useful results by taking the value mod 7 to get the day of the week, and div 7 to get the week value, with week 4 (of 0) meaning the last, be it fourth or fifth. */ enum DayOfMonthType { dom1stSun, dom1stMon, dom1stTue, dom1stWen, dom1stThu, dom1stFri, dom1stSat, dom2ndSun, dom2ndMon, dom2ndTue, dom2ndWen, dom2ndThu, dom2ndFri, dom2ndSat, dom3rdSun, dom3rdMon, dom3rdTue, dom3rdWen, dom3rdThu, dom3rdFri, dom3rdSat, dom4thSun, dom4thMon, dom4thTue, dom4thWen, dom4thThu, dom4thFri, dom4thSat, domLastSun, domLastMon, domLastTue, domLastWen, domLastThu, domLastFri, domLastSat }; struct Appointment { int event; /* Is this a timeless event? */ struct tm begin, end; /* When does this appointment start and end? */ int alarm; /* Should an alarm go off? */ int advance; /* How far in advance should it be? */ int advanceUnits; /* What am I measuring the advance in? */ enum repeatTypes repeatType; /* How should I repeat this appointment, if at all? */ int repeatForever; /* Do the repetitions end at some date? */ struct tm repeatEnd; /* What date do they end on? */ int repeatFrequency; /* Should I skip an interval for each repetition? */ enum DayOfMonthType repeatDay; /* for repeatMonthlyByDay */ int repeatDays[7]; /* for repeatWeekly */ int repeatWeekstart; /* What day did the user decide starts the week? */ int exceptions; /* How many repetitions are their to be ignored? */ struct tm *exception; /* What are they? */ char *description; /* What is the description of this appointment? */ char *note; /* Is there a note to go along with it? */ }; struct AppointmentAppInfo { struct CategoryAppInfo category; int startOfWeek; }; extern void free_Appointment PI_ARGS((struct Appointment *)); extern int unpack_Appointment PI_ARGS((struct Appointment *, unsigned char *record, int len)); extern int pack_Appointment PI_ARGS((struct Appointment *, unsigned char *record, int len)); extern int unpack_AppointmentAppInfo PI_ARGS((struct AppointmentAppInfo *, unsigned char *AppInfo, int len)); extern int pack_AppointmentAppInfo PI_ARGS((struct AppointmentAppInfo *, unsigned char *AppInfo, int len)); #ifdef __cplusplus } #include "pi-datebook.hxx" #endif /* __cplusplus */ #endif /* _PILOT_DATEBOOK_H_ */ .