home *** CD-ROM | disk | FTP | other *** search
- /*
- File: TimeBases.h
- Copyright: © 1990 by Apple Computer, Inc., all rights reserved.
- */
-
- #ifndef _Timebases_
- #define _Timebases_
-
- #if THINK_C == 1
- #ifndef const
- #define const
- #endif const
- #endif
-
-
- #include "Components.h"
-
- #ifndef kSmallestArray
- #define kSmallestArray 1
- #endif
-
- #ifndef kFix1
- #define kFix1 (0x00010000)
- #endif
-
- /* TimeBase equates */
-
- typedef long TimeValue;
- typedef long TimeScale; /* This is a way cool rational number:
- * q = (bottom-24-bits)/(high-8-bits + 1)
- * Think about it. All integers less than
- * 2^24 are valid.
- */
-
- #ifndef I64
- #define I64
- typedef struct
- {
- long hi;
- long lo;
- } Int64;
- #endif I64
-
-
- typedef Int64 CompTimeValue;
-
- typedef enum
- {
- loopTimeBase = 1
- } TimeBaseFlags;
-
-
- typedef struct privateTimeRecord *TimeBase;
- typedef struct privateCallBackRecord *QTCallBack;
-
- typedef struct TimeRecord
- {
- CompTimeValue value; /* units */
- TimeScale scale; /* units per second */
- TimeBase base;
- } TimeRecord;
-
- /* CallBack equates */
-
- typedef enum
- {
- triggerTimeFwd = 0x0001, /* when curTime exceeds triggerTime going forward */
- triggerTimeBwd = 0x0002, /* when curTime exceeds triggerTime going backwards */
- triggerTimeEither = 0x0003, /* when curTime exceeds triggerTime going either direction */
- triggerRateLT = 0x0004, /* when rate changes to less than trigger value */
- triggerRateGT = 0x0008, /* when rate changes to greater than trigger value */
- triggerRateEqual = 0x0010, /* when rate changes to equal trigger value */
- triggerRateLTE = triggerRateLT | triggerRateEqual,
- triggerRateGTE = triggerRateGT | triggerRateEqual,
- triggerRateNotEqual = triggerRateGT | triggerRateEqual | triggerRateLT,
- triggerRateChange = 0
- } QTCallBackFlags;
-
- typedef enum
- {
- timeBaseBeforeStartTime = 1,
- timeBaseAfterStopTime = 2
- } TimeBaseStatus;
-
- typedef enum
- {
- callBackAtTime = 1,
- callBackAtRate = 2,
- callBackAtTimeJump = 3,
- callBackAtInterrupt = 0x8000
- } QTCallBackType;
-
- #if THINK_C == 1
- typedef void (*QTCallBackProc)(QTCallBack cb, long CallBackParam);
- #else
- typedef pascal void (*QTCallBackProc)(QTCallBack cb, long CallBackParam);
- #endif
-
- typedef enum {
- qtcbNeedsRateChanges = 1, /* wants to know about rate changes */
- qtcbNeedsTimeChanges = 2 /* wants to know about time changes */
- };
-
- typedef struct QTCallBackHeader {
- long callBackFlags;
- long reserved1;
- char qtPrivate[40];
- } QTCallBackHeader;
-
-
-
- /****************************************
- * *
- * T I M E B A S E *
- * *
- ****************************************/
-
- pascal TimeBase NewTimeBase(void)
- = {0x303c,0xa5,0xaaaa};
- pascal void DisposeTimeBase(TimeBase tb)
- = {0x303c,0xb6,0xaaaa};
-
- pascal TimeValue GetTimeBaseTime(TimeBase tb,TimeScale s, TimeRecord *out)
- = {0x303c,0xa6,0xaaaa};
- pascal void SetTimeBaseTime(TimeBase tb,const TimeRecord *in)
- = {0x303c,0xa7,0xaaaa};
- pascal void SetTimeBaseValue(TimeBase tb,TimeValue t,TimeScale s)
- = {0x303c,0xa8,0xaaaa};
-
- pascal Fixed GetTimeBaseRate(TimeBase tb)
- = {0x303c,0xa9,0xaaaa};
- pascal void SetTimeBaseRate(TimeBase tb, Fixed r)
- = {0x303c,0xaa,0xaaaa};
-
- pascal TimeValue GetTimeBaseStartTime(TimeBase tb,TimeScale s,TimeRecord *out)
- = {0x303c,0xab,0xaaaa};
- pascal void SetTimeBaseStartTime(TimeBase tb,const TimeRecord *in)
- = {0x303c,0xac,0xaaaa};
- pascal TimeValue GetTimeBaseStopTime(TimeBase tb,TimeScale s,TimeRecord *out)
- = {0x303c,0xad,0xaaaa};
- pascal void SetTimeBaseStopTime(TimeBase tb,const TimeRecord *in)
- = {0x303c,0xae,0xaaaa};
-
- pascal long GetTimeBaseFlags(TimeBase tb)
- = {0x303c,0xb1,0xaaaa};
- pascal void SetTimeBaseFlags(TimeBase tb,long f)
- = {0x303c,0xb2,0xaaaa};
-
- pascal void SetTimeBaseMasterTimeBase(TimeBase slave,TimeBase master,
- const TimeRecord *slaveZero)
- = {0x303c,0xb4,0xaaaa};
- pascal TimeBase GetTimeBaseMasterTimeBase(TimeBase tb)
- = {0x303c,0xaf,0xaaaa};
- pascal void SetTimeBaseMasterClock(TimeBase slave,Component clockMeister,
- const TimeRecord *slaveZero)
- = {0x303c,0xb3,0xaaaa};
- pascal ComponentInstance GetTimeBaseMasterClock(TimeBase tb)
- = {0x303c,0xb0,0xaaaa};
-
- pascal void ConvertTime(TimeRecord *inout,TimeBase newBase)
- = {0x303c,0xb5,0xaaaa};
- pascal void ConvertTimeScale(TimeRecord *inout,TimeScale newScale)
- = {0x303c,0xb7,0xaaaa};
- pascal void AddTime(TimeRecord *dst,const TimeRecord *src)
- = {0x303c,0x10c,0xaaaa};
- pascal void SubtractTime(TimeRecord *dst,const TimeRecord *src)
- = {0x303c,0x10d,0xaaaa};
-
- pascal long GetTimeBaseStatus(TimeBase tb,TimeRecord *unpinnedTime)
- = {0x303c,0x10b,0xaaaa};
-
- pascal void SetTimeBaseZero(TimeBase tb, TimeRecord *zero)
- = {0x303c,0x128,0xaaaa};
-
-
- /****************************************
- * *
- * C A L L B A C K *
- * *
- ****************************************/
-
- pascal QTCallBack NewCallBack(TimeBase tb, short qtType)
- = {0x303c,0xeb,0xaaaa};
-
- pascal void DisposeCallBack(QTCallBack qtCall)
- = {0x303c,0xec,0xaaaa};
-
- pascal short GetCallBackType(QTCallBack qtCall)
- = {0x303c,0xed,0xaaaa};
- pascal TimeBase GetCallBackTimeBase(QTCallBack qtCall)
- = {0x303c,0xee,0xaaaa};
-
- pascal OSErr CallMeWhen(QTCallBack qtCall, QTCallBackProc callBackProc, long refCon,
- long param1, long param2, long param3)
- = {0x303c,0xb8,0xaaaa};
-
- pascal void CancelCallBack(QTCallBack cb)
- = {0x303c,0xb9,0xaaaa};
-
-
- /****************************************
- * *
- * C L O C K C A L L B A C K *
- * S U P P O R T *
- * *
- ****************************************/
-
- pascal OSErr AddCallBackToTimeBase(QTCallBack cb)
- = {0x303c,0x129,0xaaaa};
- pascal OSErr RemoveCallBackFromTimeBase(QTCallBack cb)
- = {0x303c,0x12a,0xaaaa};
- pascal QTCallBack GetFirstCallBack(TimeBase tb)
- = {0x303c,0x12b,0xaaaa};
- pascal QTCallBack GetNextCallBack(QTCallBack cb)
- = {0x303c,0x12c,0xaaaa};
- pascal void ExecuteCallBack(QTCallBack cb)
- = {0x303c,0x12d,0xaaaa};
-
- #endif _Timebases_
-