diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/CMDeviceIntegration.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/CMDeviceIntegration.h')
| -rw-r--r-- | common/quicktime_win32/CMDeviceIntegration.h | 551 |
1 files changed, 551 insertions, 0 deletions
diff --git a/common/quicktime_win32/CMDeviceIntegration.h b/common/quicktime_win32/CMDeviceIntegration.h new file mode 100644 index 0000000..5fb6919 --- /dev/null +++ b/common/quicktime_win32/CMDeviceIntegration.h @@ -0,0 +1,551 @@ +/* + File: CMDeviceIntegration.h + + Contains: Color Management Device Interfaces + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __CMDEVICEINTEGRATION__ +#define __CMDEVICEINTEGRATION__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __CFSTRING__ +#include <CFString.h> +#endif + +#ifndef __CMAPPLICATION__ +#include <CMApplication.h> +#endif + +#ifndef __CMICCPROFILE__ +#include <CMICCProfile.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* + The current versions of the data structure + containing information on registered devices. +*/ +enum { + cmDeviceInfoVersion1 = 0x00010000, + cmDeviceProfileInfoVersion1 = 0x00010000, + cmDeviceProfileInfoVersion2 = 0x00020000 +}; + +enum { + cmCurrentDeviceInfoVersion = cmDeviceInfoVersion1, + cmCurrentProfileInfoVersion = cmDeviceProfileInfoVersion1 +}; + +/* + Certain APIs require a device ID or profile ID. + In some cases, a "default ID" can be used. +*/ +enum { + cmDefaultDeviceID = 0, + cmDefaultProfileID = 0 +}; + +/* + Possible values for device states accessible by the + CMGetDeviceState() and CMSetDeviceState() APIs. +*/ +enum { + cmDeviceStateDefault = 0x00000000, + cmDeviceStateOffline = 0x00000001, + cmDeviceStateBusy = 0x00000002, + cmDeviceStateForceNotify = (long)0x80000000, + cmDeviceStateDeviceRsvdBits = 0x00FF0000, + cmDeviceStateAppleRsvdBits = (long)0xFF00FFFF +}; + +/* + Possible values for flags passed to the + CMIterateDeviceProfiles() API. + + "Factory" profiles are registered via the + CMSetDeviceFactoryProfiles() API. + + "Custom" profiles are those which are meant to take + the place of the factory profiles, as a result of + customization or calibration. These profiles are + registered via the CMSetDeviceProfiles() API. + + To retrieve all of the the former for all devices, + use cmIterateFactoryDeviceProfiles as the flags + value when calling CMIterateDeviceProfiles(). + + To retrieve only the latter for all devices, use + the cmIterateCustomDeviceProfiles, as the flags + value when calling CMIterateDeviceProfiles(). + + To get the profiles in use for all devices, use + cmIterateCurrentDeviceProfiles as the flags value. + This will replace the factory profiles with any + overrides, yielding the currently used set. + + To get all profiles, without replacement, use + cmIterateAllDeviceProfiles. +*/ +enum { + cmIterateFactoryDeviceProfiles = 0x00000001, + cmIterateCustomDeviceProfiles = 0x00000002, + cmIterateCurrentDeviceProfiles = 0x00000003, + cmIterateAllDeviceProfiles = 0x00000004, + cmIterateDeviceProfilesMask = 0x0000000F +}; + +/* + Errors returned by CMDeviceIntegration APIs +*/ +enum { + cmDeviceDBNotFoundErr = -4227, /* Prefs not found/loaded */ + cmDeviceAlreadyRegistered = -4228, /* Re-registration of device */ + cmDeviceNotRegistered = -4229, /* Device not found */ + cmDeviceProfilesNotFound = -4230, /* Profiles not found */ + cmInternalCFErr = -4231 /* CoreFoundation failure */ +}; + + +/* + Clients can register for notifications of device evolutions: + + DeviceRegistered A new device was registered + DeviceUnregistered A device was unregistered + DeviceOnline Change to Online as a result of CMSetDeviceState + DeviceOffline Change to Offline as a result of CMSetDeviceState + DeviceState Any change to a device state + DefaultDevice A default device for any device class changed + DeviceProfiles Any change to any device's profiles + DefaultDeviceProfile The default profile for any device changed +*/ +#define kCMDeviceRegisteredNotification CFSTR("CMDeviceRegisteredNotification") +#define kCMDeviceUnregisteredNotification CFSTR("CMDeviceUnregisteredNotification") +#define kCMDeviceOnlineNotification CFSTR("CMDeviceOnlineNotification") +#define kCMDeviceOfflineNotification CFSTR("CMDeviceOfflineNotification") +#define kCMDeviceStateNotification CFSTR("CMDeviceStateNotification") +#define kCMDefaultDeviceNotification CFSTR("CMDefaultDeviceNotification") +#define kCMDeviceProfilesNotification CFSTR("CMDeviceProfilesNotification") +#define kCMDefaultDeviceProfileNotification CFSTR("CMDefaultDeviceProfileNotification") + +/* + Device state data. +*/ +typedef UInt32 CMDeviceState; +/* + A CMDeviceID must be unique within a device's class. +*/ +typedef UInt32 CMDeviceID; +/* + A CMDeviceProfileID must only be unique per device. +*/ +typedef UInt32 CMDeviceProfileID; +/* + DeviceClass type. +*/ +enum { + cmScannerDeviceClass = FOUR_CHAR_CODE('scnr'), + cmCameraDeviceClass = FOUR_CHAR_CODE('cmra'), + cmDisplayDeviceClass = FOUR_CHAR_CODE('mntr'), + cmPrinterDeviceClass = FOUR_CHAR_CODE('prtr'), + cmProofDeviceClass = FOUR_CHAR_CODE('pruf') +}; + +typedef OSType CMDeviceClass; +/* + CMDeviceScope + Structure specifying a device's or a device setting's scope. +*/ +struct CMDeviceScope { + CFStringRef deviceUser; /* kCFPreferencesCurrentUser | _AnyUser */ + CFStringRef deviceHost; /* kCFPreferencesCurrentHost | _AnyHost */ +}; +typedef struct CMDeviceScope CMDeviceScope; +typedef CMDeviceScope CMDeviceProfileScope; +/* + CMDeviceInfo + Structure containing information on a given device. +*/ +struct CMDeviceInfo { + UInt32 dataVersion; /* cmDeviceInfoVersion1 */ + CMDeviceClass deviceClass; /* device class */ + CMDeviceID deviceID; /* device ID */ + CMDeviceScope deviceScope; /* device's scope */ + CMDeviceState deviceState; /* Device State flags */ + CMDeviceProfileID defaultProfileID; /* Can change */ + CFDictionaryRef * deviceName; /* Ptr to storage for CFDictionary of */ + /* localized device names (could be nil) */ + UInt32 profileCount; /* Count of registered profiles */ + UInt32 reserved; /* Reserved for use by ColorSync */ +}; +typedef struct CMDeviceInfo CMDeviceInfo; +typedef CMDeviceInfo * CMDeviceInfoPtr; +/* + CMDeviceProfileInfo + Structure containing information on a device profile. +*/ +struct CMDeviceProfileInfo { + UInt32 dataVersion; /* cmDeviceProfileInfoVersion1 */ + CMDeviceProfileID profileID; /* The identifier for this profile */ + CMProfileLocation profileLoc; /* The profile's location */ + CFDictionaryRef profileName; /* CFDictionary of localized profile names */ + UInt32 reserved; /* Reserved for use by ColorSync */ +}; +typedef struct CMDeviceProfileInfo CMDeviceProfileInfo; +struct NCMDeviceProfileInfo { + UInt32 dataVersion; /* cmDeviceProfileInfoVersion2 */ + CMDeviceProfileID profileID; /* The identifier for this profile */ + CMProfileLocation profileLoc; /* The profile's location */ + CFDictionaryRef profileName; /* CFDictionary of localized profile names */ + CMDeviceProfileScope profileScope; /* The scope this profile applies to */ + UInt32 reserved; /* Reserved for use by ColorSync */ +}; +typedef struct NCMDeviceProfileInfo NCMDeviceProfileInfo; +/* + CMDeviceProfileArray + Structure containing the profiles for a device. +*/ +struct CMDeviceProfileArray { + UInt32 profileCount; /* Count of profiles in array */ + CMDeviceProfileInfo profiles[1]; /* The profile info records */ +}; +typedef struct CMDeviceProfileArray CMDeviceProfileArray; +typedef CMDeviceProfileArray * CMDeviceProfileArrayPtr; +/* + Caller-supplied iterator functions +*/ +typedef CALLBACK_API_C( OSErr , CMIterateDeviceInfoProcPtr )(const CMDeviceInfo *deviceInfo, void *refCon); +typedef CALLBACK_API_C( OSErr , CMIterateDeviceProfileProcPtr )(const CMDeviceInfo *deviceInfo, const NCMDeviceProfileInfo *profileInfo, void *refCon); +/* + Device Registration +*/ +/* + * CMRegisterColorDevice() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMRegisterColorDevice( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CFDictionaryRef deviceName, + const CMDeviceScope * deviceScope); + + +/* + * CMUnregisterColorDevice() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMUnregisterColorDevice( + CMDeviceClass deviceClass, + CMDeviceID deviceID); + + +/* + Default Device accessors +*/ +/* + * CMSetDefaultDevice() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMSetDefaultDevice( + CMDeviceClass deviceClass, + CMDeviceID deviceID); + + +/* + * CMGetDefaultDevice() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDefaultDevice( + CMDeviceClass deviceClass, + CMDeviceID * deviceID); + + +/* + Device Profile Registration & Access +*/ +/* + * CMSetDeviceFactoryProfiles() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMSetDeviceFactoryProfiles( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceProfileID defaultProfID, + const CMDeviceProfileArray * deviceProfiles); + + +/* + * CMGetDeviceFactoryProfiles() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDeviceFactoryProfiles( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceProfileID * defaultProfID, + UInt32 * arraySize, + CMDeviceProfileArray * deviceProfiles); + + +/* + * CMSetDeviceProfiles() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMSetDeviceProfiles( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + const CMDeviceProfileScope * profileScope, + const CMDeviceProfileArray * deviceProfiles); + + +/* + * CMGetDeviceProfiles() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDeviceProfiles( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + UInt32 * arraySize, + CMDeviceProfileArray * deviceProfiles); + + +/* + * CMSetDeviceDefaultProfileID() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMSetDeviceDefaultProfileID( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceProfileID defaultProfID); + + +/* + * CMGetDeviceDefaultProfileID() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDeviceDefaultProfileID( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceProfileID * defaultProfID); + + +/* + * CMGetDeviceProfile() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDeviceProfile( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceProfileID profileID, + CMProfileLocation * deviceProfLoc); + + +/* + * CMSetDeviceProfile() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMSetDeviceProfile( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + const CMDeviceProfileScope * profileScope, + CMDeviceProfileID profileID, + const CMProfileLocation * deviceProfLoc); + + +/* + Other Device State/Info accessors +*/ +/* + * CMSetDeviceState() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMSetDeviceState( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceState deviceState); + + +/* + * CMGetDeviceState() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDeviceState( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceState * deviceState); + + +/* + * CMGetDeviceInfo() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMGetDeviceInfo( + CMDeviceClass deviceClass, + CMDeviceID deviceID, + CMDeviceInfo * deviceInfo); + + +/* + Device Info & Profile Iterators +*/ +/* + * CMIterateColorDevices() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMIterateColorDevices( + CMIterateDeviceInfoProcPtr proc, + UInt32 * seed, + UInt32 * count, + void * refCon); + + +/* + * CMIterateDeviceProfiles() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( CMError ) +CMIterateDeviceProfiles( + CMIterateDeviceProfileProcPtr proc, + UInt32 * seed, + UInt32 * count, + UInt32 flags, + void * refCon); + + + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __CMDEVICEINTEGRATION__ */ + |