summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/CMDeviceIntegration.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/CMDeviceIntegration.h
downloadarchived-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.h551
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__ */
+