keycodes.h

Go to the documentation of this file.
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
Empty

Copyright ©2008 Steinberg Media Technologies. All Rights Reserved.