Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Prefs.c
// |
// This is sample code which will make QTVR object movies from Linear QuickTime movies. |
// |
// © 1991-1996 Apple Computer, Inc. All rights reserved. |
// |
#include "MakeQTVRObject.h" |
#include "extern.h" |
OSErr RetrievePrefs() |
{ |
OSErr err = noErr; |
ConstStr255Param fileName = "\pMakeQTVRObject Prefs"; |
short refNum; |
Handle myData; |
long myEOF; |
short globalRef; |
// Find the prefs folder |
err = FindFolder( |
kOnSystemDisk, |
kPreferencesFolderType, |
true, |
&gPrefSpec.vRefNum, |
&gPrefSpec.parID); |
if (err != noErr) |
{ |
UserMessage("\pCan't find Preferences folder."); |
return 6; |
} |
PLstrcpy(gPrefSpec.name, fileName); |
err = FSpOpenDF (&gPrefSpec, fsRdWrPerm, &refNum); |
if(err) |
{ |
//fill in default prefs and save to disk |
gPrefInf.dropMode = false; |
StuffQTVRObjectFileFormat1x0 (kStandardObject, |
60, |
36, |
1, |
1, |
0, |
0, |
Long2Fix(360), |
0, |
0, |
Long2Fix(180), |
0, |
0, |
&gPrefInf.objectInfo); |
SavePrefs(); |
} |
else |
{ |
//Get the prefs out of the file |
FSClose(refNum); |
err = FSpOpenDF (&gPrefSpec, fsRdWrPerm, &globalRef); |
if (err != noErr) |
{ |
UserMessage("\pCan't open Preferences file."); |
return 1; |
} |
err = GetEOF(globalRef,&myEOF); |
if (err != noErr) |
{ |
UserMessage("\pCan't open Preferences file."); |
return 1; |
} |
err = SetFPos(globalRef,fsFromStart,0); |
if (err != noErr) |
{ |
UserMessage("\pCan't open Preferences file."); |
return 1; |
} |
myData = NewHandle(myEOF); |
HLock((Handle)myData); |
err = FSRead(globalRef,&(myEOF),(Ptr)*myData); |
if (err != noErr) |
{ |
UserMessage("\pCan't open Preferences file."); |
return 1; |
} |
FSClose(globalRef); |
gPrefInf = **((PrefInfo**)myData); |
HUnlock(myData); |
DisposeHandle(myData); |
if ((gPrefInf.objectInfo.numberOfColumns <= 0) |
|| (gPrefInf.objectInfo.numberOfRows <= 0) |
|| (gPrefInf.objectInfo.fieldOfView <= 0) |
|| (gPrefInf.objectInfo.startHPan > gPrefInf.objectInfo.endHPan) |
|| (gPrefInf.objectInfo.startVPan < gPrefInf.objectInfo.endVPan) |
|| (gPrefInf.objectInfo.initialHPan < gPrefInf.objectInfo.startHPan) |
|| (gPrefInf.objectInfo.initialHPan > gPrefInf.objectInfo.endHPan) |
|| (gPrefInf.objectInfo.initialVPan > gPrefInf.objectInfo.startVPan) |
|| (gPrefInf.objectInfo.initialVPan < gPrefInf.objectInfo.endVPan) |
|| (gPrefInf.objectInfo.loopSize <= 0)) |
{ |
UserMessage("\pPrefs file is corrupted. Please delete it and retry."); |
return (1); |
} |
} |
return 0; |
} |
OSErr SavePrefs() |
{ |
long bytes; |
OSErr err; |
short fRefNum; |
Handle data; |
FSpDelete (&gPrefSpec); |
err = FSpCreate (&gPrefSpec, kAppCreator, 'pref', smSystemScript); |
if (err != noErr) |
{ |
UserMessage("\pCan't create Preferences file."); |
return 1; |
} |
err = FSpOpenDF (&gPrefSpec, fsRdWrPerm, &fRefNum); |
if (err != noErr) |
{ |
UserMessage("\pCan't create Preferences file."); |
return 1; |
} |
bytes = sizeof(PrefInfo); |
data = NewHandle(bytes); |
HLock((Handle)data); |
**((PrefInfo**)data) = gPrefInf; |
err = FSWrite(fRefNum,&bytes,(Ptr)(*data)); |
if (err != noErr) |
{ |
UserMessage("\pCan't create Preferences file."); |
return 1; |
} |
HUnlock((Handle)data); |
FSClose(fRefNum); |
FlushVol(gPrefSpec.name,gPrefSpec.vRefNum); |
DisposeHandle(data); |
return 0; |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14