// CallMeWhen によってインストールされる汎用コールバック関数
// pascal void MyQTCallBackProc(QTCallBack cb, long refCon);
pascal void MyDoSomethingCallBack(QTCallBack cb, long refCon)
{
MyAppDataPtr myStuff;
if (NULL == refCon) return;
myStuff = (MyAppDataPtr)refCon;
myStuff->didSomething = true;
return;
}
// callBackAtExtremes フラグと triggerAtStop フラグで起動する
// コールバックのセットアップ
// MyDoSomethingCallBack 関数は、基準時間軸が停止すると
// 呼び出される
OSErr SetUpTriggerAtStopCallBack(MyAppDataPtr inAppData)
{
QTCallBack theQTCallBack;
QTCallBackUPP theCallBackUPP;
OSErr err = paramErr;
theQTCallBack = NewCallBack(GetMovieTimeBase(inAppData->myMovie),
callBackAtExtremes);
if (theQTCallBack) {
theCallBackUPP = NewQTCallBackUPP(MyDoSomethingCallBack);
err = CallMeWhen(theQTCallBack, theCallBackUPP,
inAppData, triggerAtStop, 0, 0);
}
// あとで渡せるようにこれらを保存
inAppData->myQTCallBack = theQTCallBack;
inAppData->myCallBackUPP = theCallBackUPP;
return err;
}
|