/* File: InputSprocket.r Contains: Games Sprockets: InputSprocket interfaaces Version: Technology: Input Sprocket 1.3 Release: QuickTime 4.0 Copyright: © 1996-1998 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 __INPUTSPROCKET_R__ #define __INPUTSPROCKET_R__ #ifndef __CONDITIONALMACROS_R__ #include "ConditionalMacros.r" #endif #define kISpDeviceClass_SpeechRecognition 'talk' #define kISpDeviceClass_Mouse 'mous' #define kISpDeviceClass_Keyboard 'keyd' #define kISpDeviceClass_Joystick 'joys' #define kISpDeviceClass_Wheel 'whel' #define kISpDeviceClass_Pedals 'pedl' #define kISpDeviceClass_Levers 'levr' #define kISpDeviceClass_Tickle 'tckl' /* a device of this class requires ISpTickle */ #define kISpDeviceClass_Unknown '????' #define kISpKeyboardID_Apple 'appl' /* currently this applies to _all_ keyboards */ /* Preliminary Rez interfaces for InputSprocket. * * Specifically, this file is intended to make the development process * easier. Now the default keyboard settings can be specified in a rez * file which should be easy to modify when new needs are added and/or * the order of needs are changed. * * Note: When the ISp keyboard driver undergoes a major revision, it will * almost certainly use a newer format to store it's settings. It will, * however, continue to be able to read this format, but it will no longer * write it. * * Currently, only a template is provided for keyboard settings, since * keyboard is the one that is the most difficult to recreate, and since * each driver uses a private format for its settings. For all other * devices, you should continue to include the 'tset' resources copied * from your prefs file. Make sure you include references to them in * the set list resource ('setl'). * * The 'setl' resource contains a length value of the 'tset' is refers to. * This obviously won't do for use in Rez, so the ISpLib 1.2.1 has been * modified to allow a zero value (in which case, it cannot check to * verify that it is the correct length.) Because of this change: * applications that use this template WILL REQUIRE INPUTSPROCKET 1.2.1 * OR LATER... you have been warned. * */ /*----------------------------isap ¥ InputSprocket application resource ----------------*/ type 'isap' { flags: fill bit[24]; fill bit[6]; boolean doesNotCallISpInit, callsISpInit; boolean notUseInputSprocket, usesInputSprocket; fill long[3]; }; /*----------------------------setl ¥ a set list resource -------------------------------*/ type 'setl' { unsigned longint currentVersion = 2; unsigned longint = $$Countof(Needs); array Needs { pstring[63]; /* the name of the set */ unsigned longint length; /* the length of the set */ literal longint deviceClass; /* the device class for the set */ literal longint deviceIdentifier; /* the device identifier for the set */ flags: fill bit[24]; fill bit[3]; fill bit; /* set from custom (not supported) */ fill bit; /* set from driver (not supported) */ boolean notApplSet, isApplSet; /* true if the set is from application and not a default */ boolean notDefaultSet, isDefaultSet; /* true if this is the default for its device */ fill bit; fill long[3]; integer resourceID; /* the resource ID of the set */ fill word; }; }; /*----------------------------tset ¥ a saved set ---------------------------------------*/ /*----------------------------only valid for keyboard tsets ----------------------------*/ type 'tset' { unsigned longint supportedVersion = 1; unsigned longint = $$Countof(ExpandedNeeds); wide array ExpandedNeeds { keyCode: unsigned hex integer noKey = 0x8000, /* virtual key code */ /* NOTE: names of keys refer to the Apple Extended English Keyboard */ /* Non-english keyboards have slightly different keycodes */ /* In all cases, the actual virtual key code is stored for that device */ tildeKey = 0x0032, n1Key = 0x0012, n2Key = 0x0013, n3Key = 0x0014, n4Key = 0x0015, n5Key = 0x0017, n6Key = 0x0016, n7Key = 0x001A, n8Key = 0x001C, n9Key = 0x0019, n0Key = 0x001D, minusKey = 0x001B, plusKey = 0x0018, deleteKey = 0x0033, tabKey = 0x0030, aKey = 0x0000, zKey = 0x000D, eKey = 0x000E, rKey = 0x000F, tKey = 0x0011, yKey = 0x0010, uKey = 0x0020, iKey = 0x0022, oKey = 0x001F, pKey = 0x0023, lBraceKey = 0x0021, rBraceKey = 0x001E, backslashKey = 0x002A, capsKey = 0x0039, aKey = 0x0000, sKey = 0x0001, dKey = 0x0002, fKey = 0x0003, gKey = 0x0005, hKey = 0x0004, jKey = 0x0026, kKey = 0x0028, lKey = 0x0025, colonKey = 0x0029, quoteKey = 0x0027, returnKey = 0x0024, shiftKey = 0x0038, zKey = 0x0006, xKey = 0x0007, cKey = 0x0008, vKey = 0x0009, bKey = 0x0001, nKey = 0x002D, mKey = 0x002E, lessThanKey = 0x002B, greaterThanKey = 0x002F, slashKey = 0x002C, controlKey = 0x003B, optionKey = 0x003A, commandKey = 0x0037, spaceKey = 0x0031, rShiftKey = 0x003C, rOptionKey = 0x003D, rControlKey = 0x003E, escKey = 0x0035, f1Key = 0x007a, f2Key = 0x0078, f3Key = 0x0063, f4Key = 0x0076, f5Key = 0x0060, f6Key = 0x0061, f7Key = 0x0063, f8Key = 0x0064, f9Key = 0x0065, f10Key = 0x006D, f10Key = 0x006D, f11Key = 0x0067, f12Key = 0x006F, f13Key = 0x0069, f14Key = 0x006B, f15Key = 0x0071, helpKey = 0x0072, homeKey = 0x0073, pageUpKey = 0x0074, delKey = 0x0075, endKey = 0x0077, pageDownKey = 0x0079 upKey = 0x007E, leftKey = 0x007B, downKey = 0x007D, rightKey = 0x007C, kdpClearKey = 0x0047, kpdEqualKey = 0x0051, kpdSlashKey = 0x004B, kpdStarKey = 0x0043, kpd7Key = 0x0059, kpd8Key = 0x005B, kpd9Key = 0x005C, kpdMinusKey = 0x004E, kpd4Key = 0x0056, kpd5Key = 0x0057, kpd6Key = 0x0058, kpdPlusKey = 0x0045, kpd1Key = 0x0053, kpd2Key = 0x0054, kpd3Key = 0x0055, kpdEnterKey = 0x004C, kpd0Key = 0x0052, kpdDecimalKey = 0x0041; /* Modifiers required to be down */ boolean rControlOff, rControlOn; boolean rOptionOff, rOptionOn; boolean rShiftOff, rShiftOn; boolean controlOff, controlOn; boolean optionOff, optionOn; fill bit; /* capsLockOff, capsLockOn*/ boolean shiftOff, shiftOn; boolean commandOff, commandOn; fill byte; }; }; #endif /* __INPUTSPROCKET_R__ */