00001 //----------------------------------------------------------------------------- 00002 // Project : SDK Core 00003 // Version : 1.0 00004 // 00005 // Category : SDK Core Interfaces 00006 // Filename : keycodes.h 00007 // Created by : Steinberg, 01/2004 00008 // Modified : $Date: 2008/01/10 10:41:20 $ 00009 // Description : Key Code Definitions 00010 // 00011 //----------------------------------------------------------------------------- 00012 // LICENSE 00013 // © 2008, Steinberg Media Technologies GmbH, All Rights Reserved 00014 //----------------------------------------------------------------------------- 00015 // This Software Development Kit may not be distributed in parts or its entirety 00016 // without prior written agreement by Steinberg Media Technologies GmbH. 00017 // This SDK must not be used to re-engineer or manipulate any technology used 00018 // in any Steinberg or Third-party application or software module, 00019 // unless permitted by law. 00020 // Neither the name of the Steinberg Media Technologies nor the names of its 00021 // contributors may be used to endorse or promote products derived from this 00022 // software without specific prior written permission. 00023 // 00024 // THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND 00025 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00027 // IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 00028 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00029 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00030 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00031 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00032 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 00033 // OF THE POSSIBILITY OF SUCH DAMAGE. 00034 //----------------------------------------------------------------------------- 00035 00036 #ifndef __plugkeycodes__ 00037 #define __plugkeycodes__ 00038 00039 #include "pluginterfaces/base/ftypes.h" 00040 00041 namespace Steinberg { 00042 //------------------------------------------------------------------------------ 00046 //------------------------------------------------------------------------------ 00047 enum VirtualKeyCodes 00048 { 00049 KEY_BACK = 1, 00050 KEY_TAB, 00051 KEY_CLEAR, 00052 KEY_RETURN, 00053 KEY_PAUSE, 00054 KEY_ESCAPE, 00055 KEY_SPACE, 00056 KEY_NEXT, 00057 KEY_END, 00058 KEY_HOME, 00059 00060 KEY_LEFT, 00061 KEY_UP, 00062 KEY_RIGHT, 00063 KEY_DOWN, 00064 KEY_PAGEUP, 00065 KEY_PAGEDOWN, 00066 00067 KEY_SELECT, 00068 KEY_PRINT, 00069 KEY_ENTER, 00070 KEY_SNAPSHOT, 00071 KEY_INSERT, 00072 KEY_DELETE, 00073 KEY_HELP, 00074 KEY_NUMPAD0, 00075 KEY_NUMPAD1, 00076 KEY_NUMPAD2, 00077 KEY_NUMPAD3, 00078 KEY_NUMPAD4, 00079 KEY_NUMPAD5, 00080 KEY_NUMPAD6, 00081 KEY_NUMPAD7, 00082 KEY_NUMPAD8, 00083 KEY_NUMPAD9, 00084 KEY_MULTIPLY, 00085 KEY_ADD, 00086 KEY_SEPARATOR, 00087 KEY_SUBTRACT, 00088 KEY_DECIMAL, 00089 KEY_DIVIDE, 00090 KEY_F1, 00091 KEY_F2, 00092 KEY_F3, 00093 KEY_F4, 00094 KEY_F5, 00095 KEY_F6, 00096 KEY_F7, 00097 KEY_F8, 00098 KEY_F9, 00099 KEY_F10, 00100 KEY_F11, 00101 KEY_F12, 00102 KEY_NUMLOCK, 00103 KEY_SCROLL, 00104 00105 KEY_SHIFT, 00106 KEY_CONTROL, 00107 KEY_ALT, 00108 00109 KEY_EQUALS, // only occurs on a mac 00110 KEY_CONTEXTMENU, // windows only 00111 00112 // multimedia keys 00113 KEY_MEDIA_PLAY, 00114 KEY_MEDIA_STOP, 00115 KEY_MEDIA_PREV, 00116 KEY_MEDIA_NEXT, 00117 KEY_VOLUME_UP, 00118 KEY_VOLUME_DOWN, 00119 00120 VKEY_FIRST_CODE = KEY_BACK, 00121 VKEY_LAST_CODE = KEY_VOLUME_DOWN, 00122 00123 VKEY_FIRST_ASCII = 128 00124 /* 00125 KEY_0 - KEY_9 are the same as ASCII '0' - '9' (0x30 - 0x39) + FIRST_ASCII 00126 KEY_A - KEY_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) + FIRST_ASCII 00127 */ 00128 }; 00129 00130 //------------------------------------------------------------------------------ 00131 inline char VirtualKeyCodeToAscii (uint8 vKey) 00132 { 00133 if (vKey >= VKEY_FIRST_ASCII) 00134 return vKey - VKEY_FIRST_ASCII + 0x30; 00135 return 0; 00136 } 00137 //------------------------------------------------------------------------------ 00138 inline uint8 AsciiToVirtualKeyCode (char ascii) 00139 { 00140 if ((ascii >= 0x30 && ascii <= 0x39) || (ascii >= 0x41 && ascii <= 0x5A)) 00141 return ascii - 0x30 + VKEY_FIRST_ASCII; 00142 return 0; 00143 } 00144 00145 00146 //------------------------------------------------------------------------------ 00147 enum KeyModifier 00148 { 00149 kShiftKey = 1<<0, 00150 kAlternateKey = 1<<1, 00151 kCommandKey = 1<<2, 00152 kControlKey = 1<<3 00153 }; 00154 00155 } 00156 00157 #endif