Mac OS 9
CMCalibrator.h
Go to the documentation of this file.
1 
19 #ifndef __CMCALIBRATOR__
20 #define __CMCALIBRATOR__
21 
22 #ifndef __CMAPPLICATION__
23 #include <CMApplication.h>
24 #endif
25 
26 #ifndef __EVENTS__
27 #include <Events.h>
28 #endif
29 
30 #if PRAGMA_ONCE
31 #pragma once
32 #endif
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 #if PRAGMA_IMPORT
39 #pragma import on
40 #endif
41 
42 #if PRAGMA_STRUCT_ALIGN
43 #pragma options align = mac68k
44 #elif PRAGMA_STRUCT_PACKPUSH
45 #pragma pack(push, 2)
46 #elif PRAGMA_STRUCT_PACK
47 #pragma pack(2)
48 #endif
49 
50 typedef CALLBACK_API(void, CalibrateEventProcPtr)(EventRecord *event);
51 typedef STACK_UPP_TYPE(CalibrateEventProcPtr) CalibrateEventUPP;
52 
53 /* Interface for new ColorSync monitor calibrators (ColorSync 2.6 and greater)
54  */
55 
56 enum { kCalibratorNamePrefix = FOUR_CHAR_CODE('cali') };
57 
59  UInt32 dataSize; /* Size of this structure - compatibility */
60  CMDisplayIDType displayID; /* Contains an hDC on Win32 */
61  UInt32 profileLocationSize; /* Max size for returned profile location */
62  CMProfileLocation *profileLocationPtr; /* For returning the profile */
63  CalibrateEventUPP eventProc; /* Ignored on Win32 */
64  Boolean isGood; /* true or false */
65 };
66 typedef struct CalibratorInfo CalibratorInfo;
67 typedef CALLBACK_API(Boolean, CanCalibrateProcPtr)(CMDisplayIDType displayID,
68  Str255 errMessage);
69 typedef CALLBACK_API(OSErr, CalibrateProcPtr)(CalibratorInfo *theInfo);
70 typedef STACK_UPP_TYPE(CanCalibrateProcPtr) CanCalibrateUPP;
71 typedef STACK_UPP_TYPE(CalibrateProcPtr) CalibrateUPP;
80 CalibrateEventUPP
81 NewCalibrateEventUPP(CalibrateEventProcPtr userRoutine);
82 #if !OPAQUE_UPP_TYPES
83 enum {
84  uppCalibrateEventProcInfo = 0x000000C0
85 }; /* pascal no_return_value Func(4_bytes) */
86 #ifdef __cplusplus
87 inline CalibrateEventUPP
88 NewCalibrateEventUPP(CalibrateEventProcPtr userRoutine) {
89  return (CalibrateEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
90  uppCalibrateEventProcInfo,
91  GetCurrentArchitecture());
92 }
93 #else
94 #define NewCalibrateEventUPP(userRoutine) \
95  (CalibrateEventUPP) \
96  NewRoutineDescriptor((ProcPtr)(userRoutine), uppCalibrateEventProcInfo, \
97  GetCurrentArchitecture())
98 #endif
99 #endif
100 
109 CanCalibrateUPP
110 NewCanCalibrateUPP(CanCalibrateProcPtr userRoutine);
111 #if !OPAQUE_UPP_TYPES
112 enum {
113  uppCanCalibrateProcInfo = 0x000003D0
114 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
115 #ifdef __cplusplus
116 inline CanCalibrateUPP NewCanCalibrateUPP(CanCalibrateProcPtr userRoutine) {
117  return (CanCalibrateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
118  uppCanCalibrateProcInfo,
119  GetCurrentArchitecture());
120 }
121 #else
122 #define NewCanCalibrateUPP(userRoutine) \
123  (CanCalibrateUPP) \
124  NewRoutineDescriptor((ProcPtr)(userRoutine), uppCanCalibrateProcInfo, \
125  GetCurrentArchitecture())
126 #endif
127 #endif
128 
137 CalibrateUPP
138 NewCalibrateUPP(CalibrateProcPtr userRoutine);
139 #if !OPAQUE_UPP_TYPES
140 enum { uppCalibrateProcInfo = 0x000000E0 }; /* pascal 2_bytes Func(4_bytes) */
141 #ifdef __cplusplus
142 inline CalibrateUPP NewCalibrateUPP(CalibrateProcPtr userRoutine) {
143  return (CalibrateUPP)NewRoutineDescriptor(
144  (ProcPtr)(userRoutine), uppCalibrateProcInfo, GetCurrentArchitecture());
145 }
146 #else
147 #define NewCalibrateUPP(userRoutine) \
148  (CalibrateUPP) NewRoutineDescriptor( \
149  (ProcPtr)(userRoutine), uppCalibrateProcInfo, GetCurrentArchitecture())
150 #endif
151 #endif
152 
161 void
162 DisposeCalibrateEventUPP(CalibrateEventUPP userUPP);
163 #if !OPAQUE_UPP_TYPES
164 #ifdef __cplusplus
165 inline void DisposeCalibrateEventUPP(CalibrateEventUPP userUPP) {
166  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
167 }
168 #else
169 #define DisposeCalibrateEventUPP(userUPP) DisposeRoutineDescriptor(userUPP)
170 #endif
171 #endif
172 
181 void
182 DisposeCanCalibrateUPP(CanCalibrateUPP userUPP);
183 #if !OPAQUE_UPP_TYPES
184 #ifdef __cplusplus
185 inline void DisposeCanCalibrateUPP(CanCalibrateUPP userUPP) {
186  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
187 }
188 #else
189 #define DisposeCanCalibrateUPP(userUPP) DisposeRoutineDescriptor(userUPP)
190 #endif
191 #endif
192 
201 void
202 DisposeCalibrateUPP(CalibrateUPP userUPP);
203 #if !OPAQUE_UPP_TYPES
204 #ifdef __cplusplus
205 inline void DisposeCalibrateUPP(CalibrateUPP userUPP) {
206  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
207 }
208 #else
209 #define DisposeCalibrateUPP(userUPP) DisposeRoutineDescriptor(userUPP)
210 #endif
211 #endif
212 
221 void
222 InvokeCalibrateEventUPP(EventRecord *event, CalibrateEventUPP userUPP);
223 #if !OPAQUE_UPP_TYPES
224 #ifdef __cplusplus
226  CalibrateEventUPP userUPP) {
227  CALL_ONE_PARAMETER_UPP(userUPP, uppCalibrateEventProcInfo, event);
228 }
229 #else
230 #define InvokeCalibrateEventUPP(event, userUPP) \
231  CALL_ONE_PARAMETER_UPP((userUPP), uppCalibrateEventProcInfo, (event))
232 #endif
233 #endif
234 
243 Boolean
244 InvokeCanCalibrateUPP(CMDisplayIDType displayID, Str255 errMessage,
245  CanCalibrateUPP userUPP);
246 #if !OPAQUE_UPP_TYPES
247 #ifdef __cplusplus
248 inline Boolean InvokeCanCalibrateUPP(CMDisplayIDType displayID,
249  Str255 errMessage,
250  CanCalibrateUPP userUPP) {
251  return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppCanCalibrateProcInfo,
252  displayID, errMessage);
253 }
254 #else
255 #define InvokeCanCalibrateUPP(displayID, errMessage, userUPP) \
256  (Boolean) CALL_TWO_PARAMETER_UPP((userUPP), uppCanCalibrateProcInfo, \
257  (displayID), (errMessage))
258 #endif
259 #endif
260 
269 OSErr
270 InvokeCalibrateUPP(CalibratorInfo *theInfo, CalibrateUPP userUPP);
271 #if !OPAQUE_UPP_TYPES
272 #ifdef __cplusplus
273 inline OSErr InvokeCalibrateUPP(CalibratorInfo *theInfo, CalibrateUPP userUPP) {
274  return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppCalibrateProcInfo, theInfo);
275 }
276 #else
277 #define InvokeCalibrateUPP(theInfo, userUPP) \
278  (OSErr) CALL_ONE_PARAMETER_UPP((userUPP), uppCalibrateProcInfo, (theInfo))
279 #endif
280 #endif
281 
282 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
283 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
284 #define NewCalibrateEventProc(userRoutine) NewCalibrateEventUPP(userRoutine)
285 #define NewCanCalibrateProc(userRoutine) NewCanCalibrateUPP(userRoutine)
286 #define NewCalibrateProc(userRoutine) NewCalibrateUPP(userRoutine)
287 #define CallCalibrateEventProc(userRoutine, event) \
288  InvokeCalibrateEventUPP(event, userRoutine)
289 #define CallCanCalibrateProc(userRoutine, displayID, errMessage) \
290  InvokeCanCalibrateUPP(displayID, errMessage, userRoutine)
291 #define CallCalibrateProc(userRoutine, theInfo) \
292  InvokeCalibrateUPP(theInfo, userRoutine)
293 #endif /* CALL_NOT_IN_CARBON */
294 
303 OSErr
305 
306 #if OLDROUTINENAMES
307 /* Interface for original ColorSync monitor calibrators (ColorSync 2.5.x) */
308 enum { kOldCalibratorNamePrefix = FOUR_CHAR_CODE('Cali') };
309 
310 struct OldCalibratorInfo {
311  CMDisplayIDType displayID; /* Contains an hDC on Win32 */
312  CMProfileLocation profileLocation;
313  CalibrateEventUPP eventProc; /* Ignored on Win32 */
314  UInt32 reserved; /* Unused */
315  UInt32 flags; /* Unused */
316  Boolean isGood; /* true or false */
317  SInt8 byteFiller; /* Unused */
318 };
319 typedef struct OldCalibratorInfo OldCalibratorInfo;
320 typedef CALLBACK_API(Boolean,
321  OldCanCalibrateProcPtr)(CMDisplayIDType displayID);
322 typedef CALLBACK_API(OSErr, OldCalibrateProcPtr)(OldCalibratorInfo *theInfo);
323 typedef STACK_UPP_TYPE(OldCanCalibrateProcPtr) OldCanCalibrateUPP;
324 typedef STACK_UPP_TYPE(OldCalibrateProcPtr) OldCalibrateUPP;
325 #if CALL_NOT_IN_CARBON
334 OldCanCalibrateUPP
335 NewOldCanCalibrateUPP(OldCanCalibrateProcPtr userRoutine);
336 #if !OPAQUE_UPP_TYPES
337 enum {
338  uppOldCanCalibrateProcInfo = 0x000000D0
339 }; /* pascal 1_byte Func(4_bytes) */
340 #ifdef __cplusplus
341 inline OldCanCalibrateUPP
342 NewOldCanCalibrateUPP(OldCanCalibrateProcPtr userRoutine) {
343  return (OldCanCalibrateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
344  uppOldCanCalibrateProcInfo,
345  GetCurrentArchitecture());
346 }
347 #else
348 #define NewOldCanCalibrateUPP(userRoutine) \
349  (OldCanCalibrateUPP) \
350  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOldCanCalibrateProcInfo, \
351  GetCurrentArchitecture())
352 #endif
353 #endif
354 
363 OldCalibrateUPP
364 NewOldCalibrateUPP(OldCalibrateProcPtr userRoutine);
365 #if !OPAQUE_UPP_TYPES
366 enum {
367  uppOldCalibrateProcInfo = 0x000000E0
368 }; /* pascal 2_bytes Func(4_bytes) */
369 #ifdef __cplusplus
370 inline OldCalibrateUPP NewOldCalibrateUPP(OldCalibrateProcPtr userRoutine) {
371  return (OldCalibrateUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
372  uppOldCalibrateProcInfo,
373  GetCurrentArchitecture());
374 }
375 #else
376 #define NewOldCalibrateUPP(userRoutine) \
377  (OldCalibrateUPP) \
378  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOldCalibrateProcInfo, \
379  GetCurrentArchitecture())
380 #endif
381 #endif
382 
391 void
392 DisposeOldCanCalibrateUPP(OldCanCalibrateUPP userUPP);
393 #if !OPAQUE_UPP_TYPES
394 #ifdef __cplusplus
395 inline void DisposeOldCanCalibrateUPP(OldCanCalibrateUPP userUPP) {
396  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
397 }
398 #else
399 #define DisposeOldCanCalibrateUPP(userUPP) DisposeRoutineDescriptor(userUPP)
400 #endif
401 #endif
402 
411 void
412 DisposeOldCalibrateUPP(OldCalibrateUPP userUPP);
413 #if !OPAQUE_UPP_TYPES
414 #ifdef __cplusplus
415 inline void DisposeOldCalibrateUPP(OldCalibrateUPP userUPP) {
416  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
417 }
418 #else
419 #define DisposeOldCalibrateUPP(userUPP) DisposeRoutineDescriptor(userUPP)
420 #endif
421 #endif
422 
431 Boolean
432 InvokeOldCanCalibrateUPP(CMDisplayIDType displayID, OldCanCalibrateUPP userUPP);
433 #if !OPAQUE_UPP_TYPES
434 #ifdef __cplusplus
435 inline Boolean InvokeOldCanCalibrateUPP(CMDisplayIDType displayID,
436  OldCanCalibrateUPP userUPP) {
437  return (Boolean)CALL_ONE_PARAMETER_UPP(userUPP, uppOldCanCalibrateProcInfo,
438  displayID);
439 }
440 #else
441 #define InvokeOldCanCalibrateUPP(displayID, userUPP) \
442  (Boolean) CALL_ONE_PARAMETER_UPP((userUPP), uppOldCanCalibrateProcInfo, \
443  (displayID))
444 #endif
445 #endif
446 
455 OSErr
456 InvokeOldCalibrateUPP(OldCalibratorInfo *theInfo, OldCalibrateUPP userUPP);
457 #if !OPAQUE_UPP_TYPES
458 #ifdef __cplusplus
459 inline OSErr InvokeOldCalibrateUPP(OldCalibratorInfo *theInfo,
460  OldCalibrateUPP userUPP) {
461  return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppOldCalibrateProcInfo,
462  theInfo);
463 }
464 #else
465 #define InvokeOldCalibrateUPP(theInfo, userUPP) \
466  (OSErr) CALL_ONE_PARAMETER_UPP((userUPP), uppOldCalibrateProcInfo, (theInfo))
467 #endif
468 #endif
469 
470 #endif /* CALL_NOT_IN_CARBON */
471 
472 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
473 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
474 #define NewOldCanCalibrateProc(userRoutine) NewOldCanCalibrateUPP(userRoutine)
475 #define NewOldCalibrateProc(userRoutine) NewOldCalibrateUPP(userRoutine)
476 #define CallOldCanCalibrateProc(userRoutine, displayID) \
477  InvokeOldCanCalibrateUPP(displayID, userRoutine)
478 #define CallOldCalibrateProc(userRoutine, theInfo) \
479  InvokeOldCalibrateUPP(theInfo, userRoutine)
480 #endif /* CALL_NOT_IN_CARBON */
481 
482 #endif /* OLDROUTINENAMES */
483 
484 #if PRAGMA_STRUCT_ALIGN
485 #pragma options align = reset
486 #elif PRAGMA_STRUCT_PACKPUSH
487 #pragma pack(pop)
488 #elif PRAGMA_STRUCT_PACK
489 #pragma pack()
490 #endif
491 
492 #ifdef PRAGMA_IMPORT_OFF
493 #pragma import off
494 #elif PRAGMA_IMPORT
495 #pragma import reset
496 #endif
497 
498 #ifdef __cplusplus
499 }
500 #endif
501 
502 #endif /* __CMCALIBRATOR__ */
Color Matching Interfaces.
void DisposeCalibrateEventUPP(CalibrateEventUPP userUPP)
void DisposeCalibrateUPP(CalibrateUPP userUPP)
Boolean InvokeCanCalibrateUPP(CMDisplayIDType displayID, Str255 errMessage, CanCalibrateUPP userUPP)
OSErr CMCalibrateDisplay(CalibratorInfo *theInfo)
void InvokeCalibrateEventUPP(EventRecord *event, CalibrateEventUPP userUPP)
OSErr InvokeCalibrateUPP(CalibratorInfo *theInfo, CalibrateUPP userUPP)
CalibrateUPP NewCalibrateUPP(CalibrateProcPtr userRoutine)
CalibrateEventUPP NewCalibrateEventUPP(CalibrateEventProcPtr userRoutine)
void DisposeCanCalibrateUPP(CanCalibrateUPP userUPP)
CanCalibrateUPP NewCanCalibrateUPP(CanCalibrateProcPtr userRoutine)
Event Manager Interfaces.
unsigned char Boolean
Definition: MacTypes.h:318
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
Definition: CMApplication.h:636
Definition: CMCalibrator.h:58
Definition: Events.h:224