summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/Keyboards.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/Keyboards.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/Keyboards.h')
-rw-r--r--common/quicktime_win32/Keyboards.h563
1 files changed, 563 insertions, 0 deletions
diff --git a/common/quicktime_win32/Keyboards.h b/common/quicktime_win32/Keyboards.h
new file mode 100644
index 0000000..876deab
--- /dev/null
+++ b/common/quicktime_win32/Keyboards.h
@@ -0,0 +1,563 @@
+/*
+ File: Keyboards.h
+
+ Contains: Keyboard API.
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1997-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 __KEYBOARDS__
+#define __KEYBOARDS__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __CFBASE__
+#include <CFBase.h>
+#endif
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+/*----------------------------------------------------------------------------------*/
+/* Keyboard API constants */
+/*----------------------------------------------------------------------------------*/
+/* Keyboard API Trap Number. Should be moved to Traps.i */
+enum {
+ _KeyboardDispatch = 0xAA7A
+};
+
+/* Gestalt selector and values for the Keyboard API */
+enum {
+ gestaltKeyboardsAttr = FOUR_CHAR_CODE('kbds'),
+ gestaltKBPS2Keyboards = 1,
+ gestaltKBPS2SetIDToAny = 2,
+ gestaltKBPS2SetTranslationTable = 4
+};
+
+/* Keyboard API Error Codes */
+/*
+ I stole the range blow from the empty space in the Allocation project but should
+ be updated to the officially registered range.
+*/
+enum {
+ errKBPS2KeyboardNotAvailable = -30850,
+ errKBIlligalParameters = -30851,
+ errKBFailSettingID = -30852,
+ errKBFailSettingTranslationTable = -30853,
+ errKBFailWritePreference = -30854
+};
+
+
+/*
+ * PhysicalKeyboardLayoutType
+ *
+ * Summary:
+ * Physical keyboard layout types indicate the physical keyboard
+ * layout. They are returned by the KBGetLayoutType API.
+ */
+typedef UInt32 PhysicalKeyboardLayoutType;
+enum {
+
+ /*
+ * A JIS keyboard layout type.
+ */
+ kKeyboardJIS = FOUR_CHAR_CODE('JIS '),
+
+ /*
+ * An ANSI keyboard layout type.
+ */
+ kKeyboardANSI = FOUR_CHAR_CODE('ANSI'),
+
+ /*
+ * An ISO keyboard layout type.
+ */
+ kKeyboardISO = FOUR_CHAR_CODE('ISO '),
+
+ /*
+ * An unknown physical keyboard layout type.
+ */
+ kKeyboardUnknown = kUnknownType /* '????'*/
+};
+
+
+/*----------------------------------------------------------------------------------*/
+/* Keyboard API types */
+/*----------------------------------------------------------------------------------*/
+
+
+
+/*----------------------------------------------------------------------------------*/
+/* Keyboard API routines */
+/*----------------------------------------------------------------------------------*/
+
+#if CALL_NOT_IN_CARBON
+/*
+ * KBInitialize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+KBInitialize(void) THREEWORDINLINE(0x303C, 0x0000, 0xAA7A);
+
+
+/*
+ * KBSetupPS2Keyboard()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+KBSetupPS2Keyboard(
+ SInt16 keyboardType,
+ SInt8 * alternativeTable) THREEWORDINLINE(0x303C, 0x0001, 0xAA7A);
+
+
+/*
+ * KBGetPS2KeyboardID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+KBGetPS2KeyboardID(SInt16 * keyboardType) THREEWORDINLINE(0x303C, 0x0002, 0xAA7A);
+
+
+/*
+ * KBIsPS2KeyboardConnected()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Boolean )
+KBIsPS2KeyboardConnected(void) THREEWORDINLINE(0x303C, 0x0003, 0xAA7A);
+
+
+/*
+ * KBIsPS2KeyboardEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Boolean )
+KBIsPS2KeyboardEnabled(void) THREEWORDINLINE(0x303C, 0x0004, 0xAA7A);
+
+
+/*
+ * KBGetPS2KeyboardAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( SInt32 )
+KBGetPS2KeyboardAttributes(void) THREEWORDINLINE(0x303C, 0x0005, 0xAA7A);
+
+
+/*
+ * KBSetKCAPForPS2Keyboard()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+KBSetKCAPForPS2Keyboard(Handle kcapHandle) THREEWORDINLINE(0x303C, 0x0006, 0xAA7A);
+
+
+/*
+ * KBSetupPS2KeyboardFromLayoutType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+KBSetupPS2KeyboardFromLayoutType(OSType layoutType) THREEWORDINLINE(0x303C, 0x0008, 0xAA7A);
+
+
+/*
+ * KBGetPS2KeyboardLayoutType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+KBGetPS2KeyboardLayoutType(OSType * layoutType) THREEWORDINLINE(0x303C, 0x0009, 0xAA7A);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+/*
+ * KBGetLayoutType()
+ *
+ * Summary:
+ * Returns the physical keyboard layout type.
+ *
+ * Parameters:
+ *
+ * iKeyboardType:
+ * The keyboard type ID. LMGetKbdType().
+ *
+ * Availability:
+ * Non-Carbon CFM: in KeyboardsLib 1.0 and later
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSType )
+KBGetLayoutType(SInt16 iKeyboardType) THREEWORDINLINE(0x303C, 0x0007, 0xAA7A);
+
+
+
+/*
+ * KeyboardLayoutRef
+ *
+ * Summary:
+ * The opaque keyboard layout contains information about a keyboard
+ * layout. It is used with the keyboard layout APIs.
+ *
+ * Discussion:
+ * KeyboardLayoutRef APIs follow CoreFoundation function naming
+ * convention. You mustn't release any references you get from APIs
+ * named "Get."
+ */
+typedef struct OpaqueKeyboardLayoutRef* KeyboardLayoutRef;
+
+/*
+ * KeyboardLayoutPropertyTag
+ *
+ * Summary:
+ * Keyboard layout property tags specify the value you want to
+ * retrieve. They are used with the KLGetKeyboardLayoutProperty API.
+ */
+typedef UInt32 KeyboardLayoutPropertyTag;
+enum {
+
+ /*
+ * The keyboard layout data (const void *). It is used with the
+ * KeyTranslate API.
+ */
+ kKLKCHRData = 0,
+
+ /*
+ * The keyboard layout data (const void *). It is used with the
+ * UCKeyTranslate API.
+ */
+ kKLuchrData = 1,
+
+ /*
+ * The keyboard layout identifier (SInt32).
+ */
+ kKLIdentifier = 2,
+
+ /*
+ * The keyboard layout icon (IconRef).
+ */
+ kKLIcon = 3,
+
+ /*
+ * The localized keyboard layout name (CFStringRef).
+ */
+ kKLLocalizedName = 4,
+
+ /*
+ * The keyboard layout name (CFStringRef).
+ */
+ kKLName = 5,
+
+ /*
+ * The keyboard layout group identifier (SInt32).
+ */
+ kKLGroupIdentifier = 6,
+
+ /*
+ * The keyboard layout kind (SInt32).
+ */
+ kKLKind = 7
+};
+
+
+/*
+ * KeyboardLayoutKind
+ *
+ * Summary:
+ * Keyboard layout kinds indicate available keyboard layout formats.
+ */
+typedef SInt32 KeyboardLayoutKind;
+enum {
+
+ /*
+ * Both KCHR and uchr formats are available.
+ */
+ kKLKCHRuchrKind = 0,
+
+ /*
+ * Only KCHR format is avaiable.
+ */
+ kKLKCHRKind = 1,
+
+ /*
+ * Only uchr format is available.
+ */
+ kKLuchrKind = 2
+};
+
+
+/*
+ * KeyboardLayoutIdentifier
+ *
+ * Summary:
+ * Keyboard layout identifiers specify particular keyboard layouts.
+ */
+typedef SInt32 KeyboardLayoutIdentifier;
+enum {
+ kKLUSKeyboard = 0
+};
+
+/* iterate keyboard layouts*/
+
+/*
+ * KLGetKeyboardLayoutCount()
+ *
+ * Summary:
+ * Returns the number of keyboard layouts.
+ *
+ * Parameters:
+ *
+ * oCount:
+ * On exit, the number of keyboard layouts
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetKeyboardLayoutCount(CFIndex * oCount);
+
+
+/*
+ * KLGetKeyboardLayoutAtIndex()
+ *
+ * Summary:
+ * Retrieves the keyboard layout at the given index.
+ *
+ * Parameters:
+ *
+ * iIndex:
+ * The index of the keyboard layout to retrieve. If the index is
+ * outside the index space of the keyboard layouts (0 to N-1
+ * inclusive, where N is the count of the keyboard layouts), the
+ * behavior is undefined.
+ *
+ * oKeyboardLayout:
+ * On exit, the keyboard layout with the given index.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetKeyboardLayoutAtIndex(
+ CFIndex iIndex,
+ KeyboardLayoutRef * oKeyboardLayout);
+
+
+/* NOTE: "Indexed" is a wrong name, please use "AtIndex"...*/
+/*
+ * KLGetIndexedKeyboardLayout()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetIndexedKeyboardLayout(
+ CFIndex iIndex,
+ KeyboardLayoutRef * oKeyboardLayout);
+
+
+/* get keyboard layout info*/
+
+/*
+ * KLGetKeyboardLayoutProperty()
+ *
+ * Summary:
+ * Retrives property value for the given keyboard layout and tag.
+ *
+ * Parameters:
+ *
+ * iKeyboardLayout:
+ * The keyboard layout to be queried. If this parameter is not a
+ * valid KeyboardLayoutRef, the behavior is undefined.
+ *
+ * iPropertyTag:
+ * The property tag.
+ *
+ * oValue:
+ * On exit, the property value for the given keyboard layout and
+ * tag.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetKeyboardLayoutProperty(
+ KeyboardLayoutRef iKeyboardLayout,
+ KeyboardLayoutPropertyTag iPropertyTag,
+ const void ** oValue);
+
+
+/* get keyboard layout with identifier or name*/
+
+/*
+ * KLGetKeyboardLayoutWithIdentifier()
+ *
+ * Summary:
+ * Retrieves the keyboard layout with the given identifier.
+ *
+ * Discussion:
+ * For now, the identifier is in the range of SInt16 which is
+ * compatible with the Resource Manager resource ID. However, it
+ * will become an arbitrary SInt32 value at some point, so do not
+ * assume it is in SInt16 range or falls into the "script range" of
+ * the resource IDs.
+ *
+ * Parameters:
+ *
+ * iIdentifier:
+ * The keyboard layout identifier.
+ *
+ * oKeyboardLayout:
+ * On exit, the keyboard layout with the given identifier.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetKeyboardLayoutWithIdentifier(
+ SInt32 iIdentifier,
+ KeyboardLayoutRef * oKeyboardLayout);
+
+
+/*
+ * KLGetKeyboardLayoutWithName()
+ *
+ * Summary:
+ * Retrieves the keyboard layout with the given name.
+ *
+ * Parameters:
+ *
+ * iName:
+ * The keyboard layout name.
+ *
+ * oKeyboardLayout:
+ * On exit, the keyboard layout with the given name.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetKeyboardLayoutWithName(
+ CFStringRef iName,
+ KeyboardLayoutRef * oKeyboardLayout);
+
+
+/* get/set current keyboard layout of the current group identifier*/
+
+/*
+ * KLGetCurrentKeyboardLayout()
+ *
+ * Summary:
+ * Retrieves the current keyboard layout.
+ *
+ * Parameters:
+ *
+ * oKeyboardLayout:
+ * On exit, the current keyboard layout.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLGetCurrentKeyboardLayout(KeyboardLayoutRef * oKeyboardLayout);
+
+
+/*
+ * KLSetCurrentKeyboardLayout()
+ *
+ * Summary:
+ * Sets the current keyboard layout.
+ *
+ * Parameters:
+ *
+ * iKeyboardLayout:
+ * The keyboard layout.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( OSStatus )
+KLSetCurrentKeyboardLayout(KeyboardLayoutRef iKeyboardLayout);
+
+
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __KEYBOARDS__ */
+