mirror of
https://github.com/mupen64plus/mupen64plus-ui-python.git
synced 2025-04-02 10:51:53 -04:00
add support for SDL2
This commit is contained in:
parent
91ed3b8485
commit
629f66a5f1
13 changed files with 502 additions and 208 deletions
4
m64py
4
m64py
|
@ -36,9 +36,8 @@ except ImportError, err:
|
|||
sys.exit(1)
|
||||
|
||||
try:
|
||||
from m64py.core.defs import FRONTEND_VERSION, LOGO
|
||||
from m64py.frontend.mainwindow import MainWindow
|
||||
from m64py.loader import load_library
|
||||
from m64py.core.defs import FRONTEND_VERSION, LOGO
|
||||
except ImportError, err:
|
||||
sys.stderr.write("Can't import m64py modules%sError:%s%s" % (
|
||||
os.linesep, str(err), os.linesep))
|
||||
|
@ -58,6 +57,7 @@ def main():
|
|||
from m64py.opts import opts, args
|
||||
sys.stderr.write("%s\nM64Py - A frontend for Mupen64Plus version %s\n\n" % (
|
||||
LOGO, FRONTEND_VERSION))
|
||||
from m64py.frontend.mainwindow import MainWindow
|
||||
window = MainWindow((opts, args))
|
||||
window.show()
|
||||
window.raise_()
|
||||
|
|
2
setup.py
2
setup.py
|
@ -15,7 +15,7 @@ setup(name = "m64py",
|
|||
author_email = "gen2brain@gmail.com",
|
||||
license = "GNU GPLv3",
|
||||
url = "http://m64py.sourceforge.net",
|
||||
packages = ["m64py", "m64py.core", "m64py.frontend", "m64py.ui", "SDL"],
|
||||
packages = ["m64py", "m64py.core", "m64py.frontend", "m64py.ui", "m64py.SDL", "m64py.SDL2"],
|
||||
package_dir = {"": "src"},
|
||||
scripts = ["m64py"],
|
||||
requires = ["PyQt4"],
|
||||
|
|
|
@ -16,7 +16,9 @@
|
|||
|
||||
import os
|
||||
import sys
|
||||
import signal
|
||||
import ctypes as C
|
||||
import subprocess
|
||||
|
||||
from m64py.core.defs import *
|
||||
from m64py.core.config import Config
|
||||
|
@ -24,7 +26,7 @@ from m64py.loader import load, unload_library
|
|||
from m64py.utils import log, version_split
|
||||
from m64py.opts import VERBOSE
|
||||
from m64py.archive import ROM_TYPE
|
||||
from m64py.platform import DLL_EXT, DEFAULT_DYNLIB, SEARCH_DIRS
|
||||
from m64py.platform import DLL_EXT, DEFAULT_DYNLIB, SEARCH_DIRS, LDD_CMD
|
||||
from m64py.core.vidext import vidext
|
||||
|
||||
def debug_callback(context, level, message):
|
||||
|
@ -66,6 +68,7 @@ class Core:
|
|||
self.rom_settings = m64p_rom_settings()
|
||||
self.core_name = "Mupen64Plus Core"
|
||||
self.core_version = "Unknown"
|
||||
self.core_sdl2 = False
|
||||
|
||||
def get_handle(self):
|
||||
"""Retrieves core library handle."""
|
||||
|
@ -108,6 +111,13 @@ class Core:
|
|||
self.core_name = plugin_name
|
||||
self.core_version = plugin_version
|
||||
|
||||
if LDD_CMD:
|
||||
proc = subprocess.Popen(LDD_CMD % self.core_path, shell=True,
|
||||
preexec_fn=lambda:signal.signal(signal.SIGPIPE, signal.SIG_DFL))
|
||||
proc.communicate()
|
||||
if proc.returncode == 0:
|
||||
self.core_sdl2 = True
|
||||
|
||||
log.info("attached to library '%s' version %s" %
|
||||
(self.core_name, version_split(self.core_version)))
|
||||
if plugin_cap & M64CAPS_DYNAREC:
|
||||
|
|
|
@ -17,22 +17,12 @@
|
|||
from PyQt4.QtCore import SIGNAL
|
||||
from PyQt4.QtOpenGL import QGLFormat
|
||||
|
||||
from SDL import *
|
||||
|
||||
from m64py.core.defs import *
|
||||
from m64py.utils import log
|
||||
|
||||
try:
|
||||
if not SDL_WasInit(SDL_INIT_VIDEO):
|
||||
SDL_InitSubSystem(SDL_INIT_VIDEO)
|
||||
MODES = [(mode.w, mode.h) for mode in SDL_ListModes(
|
||||
None, SDL_FULLSCREEN|SDL_HWSURFACE)]
|
||||
SDL_QuitSubSystem(SDL_INIT_VIDEO)
|
||||
except Exception, err:
|
||||
log.warn(str(err))
|
||||
MODES = [(1920, 1440), (1600, 1200), (1400, 1050),
|
||||
(1280, 960), (1152, 864), (1024, 768),
|
||||
(800, 600), (640, 480), (320, 240)]
|
||||
MODES = [(1920, 1440), (1600, 1200), (1400, 1050),
|
||||
(1280, 960), (1152, 864), (1024, 768),
|
||||
(800, 600), (640, 480), (320, 240)]
|
||||
|
||||
class Video():
|
||||
"""Mupen64Plus video extension"""
|
||||
|
|
|
@ -19,7 +19,8 @@ from PyQt4.QtCore import *
|
|||
from PyQt4.QtOpenGL import *
|
||||
|
||||
from m64py.core.defs import *
|
||||
from m64py.frontend.keymap import SDL_KEYMAP
|
||||
from m64py.opts import SDL2
|
||||
from m64py.frontend.keymap import QT2SDL, QT2SDL2
|
||||
|
||||
class GLWidget(QGLWidget):
|
||||
|
||||
|
@ -33,8 +34,7 @@ class GLWidget(QGLWidget):
|
|||
self.setContentsMargins(QMargins())
|
||||
self.setFocusPolicy(Qt.StrongFocus)
|
||||
self.setFocus(True)
|
||||
self.connect(self, SIGNAL("toggle_fs()"),
|
||||
self.toggle_fs)
|
||||
self.connect(self, SIGNAL("toggle_fs()"), self.toggle_fs)
|
||||
|
||||
def showEvent(self, event):
|
||||
self.qglClearColor(Qt.black)
|
||||
|
@ -63,8 +63,11 @@ class GLWidget(QGLWidget):
|
|||
self.worker.save_snapshot()
|
||||
else:
|
||||
try:
|
||||
self.worker.send_sdl_keydown(
|
||||
SDL_KEYMAP[key])
|
||||
if SDL2 or self.worker.m64p.core_sdl2:
|
||||
sdl_key = QT2SDL2[key]
|
||||
else:
|
||||
sdl_key = QT2SDL[key]
|
||||
self.worker.send_sdl_keydown(sdl_key)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
@ -72,8 +75,11 @@ class GLWidget(QGLWidget):
|
|||
if self.worker.state == M64EMU_RUNNING:
|
||||
key = event.key()
|
||||
try:
|
||||
self.worker.send_sdl_keyup(
|
||||
SDL_KEYMAP[key])
|
||||
if SDL2 or self.worker.m64p.core_sdl2:
|
||||
sdl_key = QT2SDL2[key]
|
||||
else:
|
||||
sdl_key = QT2SDL[key]
|
||||
self.worker.send_sdl_keyup(sdl_key)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
|
|
@ -19,12 +19,18 @@ import re
|
|||
from PyQt4.QtGui import *
|
||||
from PyQt4.QtCore import *
|
||||
|
||||
from m64py.opts import SDL2
|
||||
from m64py.core.defs import *
|
||||
from m64py.utils import format_tooltip
|
||||
from m64py.frontend.joystick import Joystick
|
||||
from m64py.frontend.keymap import SDL_KEYMAP, QT_MODIFIERS, QT_KEYSTRING
|
||||
from m64py.frontend.keymap import QT2SDL, SCANCODE2KEYCODE, KEYCODE2SCANCODE
|
||||
from m64py.ui.input_ui import Ui_InputDialog
|
||||
|
||||
if SDL2:
|
||||
from m64py.SDL2 import *
|
||||
else:
|
||||
from m64py.SDL import *
|
||||
|
||||
KEY_RE = re.compile("([a-z]+)\((.*)\)")
|
||||
AXIS_RE = re.compile("([a-z]+)\((.*?),(.*?)\)")
|
||||
|
||||
|
@ -42,6 +48,9 @@ class Input(QDialog, Ui_InputDialog):
|
|||
self.add_items()
|
||||
self.connect_signals()
|
||||
|
||||
def showEvent(self, event):
|
||||
self.adjustSize()
|
||||
|
||||
def closeEvent(self, event):
|
||||
self.save_config()
|
||||
self.close()
|
||||
|
@ -57,9 +66,16 @@ class Input(QDialog, Ui_InputDialog):
|
|||
self.config.open_section(self.section)
|
||||
self.device = self.config.get_parameter("device")
|
||||
self.is_joystick = bool(self.device >= 0)
|
||||
self.set_items()
|
||||
self.show()
|
||||
|
||||
def set_items(self):
|
||||
if not SDL_WasInit(SDL_INIT_VIDEO):
|
||||
SDL_InitSubSystem(SDL_INIT_VIDEO)
|
||||
self.get_opts(), self.get_keys()
|
||||
self.set_opts(), self.set_keys()
|
||||
self.show()
|
||||
if SDL_WasInit(SDL_INIT_VIDEO):
|
||||
SDL_QuitSubSystem(SDL_INIT_VIDEO)
|
||||
|
||||
def set_section(self, section):
|
||||
self.section = section
|
||||
|
@ -101,8 +117,7 @@ class Input(QDialog, Ui_InputDialog):
|
|||
self.is_joystick = bool(self.config.get_parameter("device") >= 0)
|
||||
if not self.config.parameters[self.section]:
|
||||
self.set_default()
|
||||
self.get_opts(), self.get_keys()
|
||||
self.set_opts(), self.set_keys()
|
||||
self.set_items()
|
||||
|
||||
def set_default(self):
|
||||
for key in self.keys.keys():
|
||||
|
@ -117,9 +132,14 @@ class Input(QDialog, Ui_InputDialog):
|
|||
if key == "plugged":
|
||||
param = False
|
||||
elif key == "plugin":
|
||||
param = 1
|
||||
if self.is_joystick:
|
||||
param = 5
|
||||
else:
|
||||
param = 1
|
||||
elif key == "device":
|
||||
param = -2
|
||||
elif key == "mode":
|
||||
param = 0
|
||||
self.config.set_default(ptype, key, param, tooltip)
|
||||
self.config.list_parameters()
|
||||
|
||||
|
@ -261,16 +281,11 @@ class Input(QDialog, Ui_InputDialog):
|
|||
if key.startswith("X Axis") or key.startswith("Y Axis"):
|
||||
continue
|
||||
else:
|
||||
val = KEY_RE.findall(str(widget.text()))
|
||||
if val:
|
||||
value = str(widget.text())
|
||||
self.config.set_parameter(key, value)
|
||||
value = self.get_sdl_key(widget.text())
|
||||
if value:
|
||||
self.config.set_parameter(key, "key(%s)" % value)
|
||||
else:
|
||||
value = self.get_sdl_key(widget.text())
|
||||
if value:
|
||||
self.config.set_parameter(key, "key(%s)" % value)
|
||||
else:
|
||||
continue
|
||||
continue
|
||||
|
||||
def get_axis(self, axis):
|
||||
param = self.config.get_parameter(axis)
|
||||
|
@ -348,29 +363,31 @@ class Input(QDialog, Ui_InputDialog):
|
|||
return [0, 0]
|
||||
|
||||
def get_sdl_key(self, text):
|
||||
try:
|
||||
if text in QT_KEYSTRING.keys():
|
||||
key = QT_KEYSTRING[str(text)]
|
||||
else:
|
||||
if SDL2 or self.parent.worker.m64p.core_sdl2:
|
||||
from m64py.SDL2.keyboard import SDL_GetScancodeFromName
|
||||
if "Shift" in text or "Ctrl" in text or "Alt" in text:
|
||||
text = "Left %s" % text
|
||||
return SCANCODE2KEYCODE[SDL_GetScancodeFromName(text)]
|
||||
else:
|
||||
try:
|
||||
key = QKeySequence(text).__int__()
|
||||
return SDL_KEYMAP[key]
|
||||
except KeyError:
|
||||
return None
|
||||
return QT2SDL[key]
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
def get_key_name(self, sdl_key):
|
||||
if not sdl_key:
|
||||
return "Select..."
|
||||
try:
|
||||
key = Qt.Key_unknown
|
||||
for qt, sdl in SDL_KEYMAP.items():
|
||||
if sdl == int(sdl_key):
|
||||
key = qt
|
||||
if key in QT_MODIFIERS.keys():
|
||||
key = QT_MODIFIERS[key]
|
||||
except IndexError:
|
||||
key = Qt.Key_unknown
|
||||
|
||||
text = QKeySequence(key).toString(QKeySequence.PortableText)
|
||||
if key in QT_MODIFIERS.values():
|
||||
text = text.replace("+", "")
|
||||
return text
|
||||
if SDL2 or self.parent.worker.m64p.core_sdl2:
|
||||
from m64py.SDL2.keyboard import SDL_GetScancodeName
|
||||
try:
|
||||
text = SDL_GetScancodeName(KEYCODE2SCANCODE[int(sdl_key)])
|
||||
except:
|
||||
return "Select..."
|
||||
else:
|
||||
text = SDL_GetKeyName(int(sdl_key)).title()
|
||||
if not text:
|
||||
return "Select..."
|
||||
if "Shift" in text or "Ctrl" in text or "Alt" in text:
|
||||
text = text.replace("Left ", "")
|
||||
return text.title()
|
||||
|
|
|
@ -19,9 +19,13 @@
|
|||
|
||||
from PyQt4.QtCore import QObject, pyqtSignal, QTime, QTimer, SIGNAL
|
||||
|
||||
from SDL import *
|
||||
|
||||
from m64py.utils import log
|
||||
from m64py.opts import SDL2
|
||||
|
||||
if SDL2:
|
||||
from m64py.SDL2 import *
|
||||
else:
|
||||
from m64py.SDL import *
|
||||
|
||||
JOYSTICK_DEADZONE = 0
|
||||
JOYSTICK_SENSITIVITY = 0
|
||||
|
@ -79,7 +83,7 @@ class Joystick(QObject):
|
|||
|
||||
try:
|
||||
self.joystick = SDL_JoystickOpen(stick)
|
||||
except SDL.error.SDL_Exception, err:
|
||||
except Exception, err:
|
||||
log.warn(str(err))
|
||||
|
||||
if self.joystick:
|
||||
|
|
|
@ -16,133 +16,390 @@
|
|||
|
||||
from PyQt4.QtCore import Qt
|
||||
|
||||
from SDL.constants import *
|
||||
from m64py.SDL.constants import *
|
||||
from m64py.SDL2.scancode import *
|
||||
|
||||
SDL_KEYMAP = {
|
||||
Qt.Key_0: SDLK_0,
|
||||
Qt.Key_1: SDLK_1,
|
||||
Qt.Key_2: SDLK_2,
|
||||
Qt.Key_3: SDLK_3,
|
||||
Qt.Key_4: SDLK_4,
|
||||
Qt.Key_5: SDLK_5,
|
||||
Qt.Key_6: SDLK_6,
|
||||
Qt.Key_7: SDLK_7,
|
||||
Qt.Key_8: SDLK_8,
|
||||
Qt.Key_9: SDLK_9,
|
||||
Qt.Key_Ampersand: SDLK_AMPERSAND,
|
||||
Qt.Key_Asterisk: SDLK_ASTERISK,
|
||||
Qt.Key_At: SDLK_AT,
|
||||
Qt.Key_QuoteLeft: SDLK_BACKQUOTE,
|
||||
Qt.Key_Backslash: SDLK_BACKSLASH,
|
||||
Qt.Key_Backspace: SDLK_BACKSPACE,
|
||||
Qt.Key_CapsLock: SDLK_CAPSLOCK,
|
||||
Qt.Key_AsciiCircum: SDLK_CARET,
|
||||
Qt.Key_Clear: SDLK_CLEAR,
|
||||
Qt.Key_Colon: SDLK_COLON,
|
||||
Qt.Key_Comma: SDLK_COMMA,
|
||||
Qt.Key_Delete: SDLK_DELETE,
|
||||
Qt.Key_Dollar: SDLK_DOLLAR,
|
||||
Qt.Key_Down: SDLK_DOWN,
|
||||
Qt.Key_End: SDLK_END,
|
||||
Qt.Key_Equal: SDLK_EQUALS,
|
||||
Qt.Key_Escape: SDLK_ESCAPE,
|
||||
Qt.Key_Exclam: SDLK_EXCLAIM,
|
||||
Qt.Key_F1: SDLK_F1,
|
||||
Qt.Key_F10: SDLK_F10,
|
||||
Qt.Key_F11: SDLK_F11,
|
||||
Qt.Key_F12: SDLK_F12,
|
||||
Qt.Key_F13: SDLK_F13,
|
||||
Qt.Key_F14: SDLK_F14,
|
||||
Qt.Key_F15: SDLK_F15,
|
||||
Qt.Key_F2: SDLK_F2,
|
||||
Qt.Key_F3: SDLK_F3,
|
||||
Qt.Key_F4: SDLK_F4,
|
||||
Qt.Key_F5: SDLK_F5,
|
||||
Qt.Key_F6: SDLK_F6,
|
||||
Qt.Key_F7: SDLK_F7,
|
||||
Qt.Key_F8: SDLK_F8,
|
||||
Qt.Key_F9: SDLK_F9,
|
||||
Qt.Key_Greater: SDLK_GREATER,
|
||||
Qt.Key_NumberSign: SDLK_HASH,
|
||||
Qt.Key_Help: SDLK_HELP,
|
||||
Qt.Key_Home: SDLK_HOME,
|
||||
Qt.Key_Insert: SDLK_INSERT,
|
||||
Qt.Key_Left: SDLK_LEFT,
|
||||
Qt.Key_BracketLeft: SDLK_LEFTBRACKET,
|
||||
Qt.Key_ParenLeft: SDLK_LEFTPAREN,
|
||||
Qt.Key_Less: SDLK_LESS,
|
||||
Qt.Key_Menu: SDLK_MENU,
|
||||
Qt.Key_Minus: SDLK_MINUS,
|
||||
Qt.Key_Mode_switch: SDLK_MODE,
|
||||
Qt.Key_NumLock: SDLK_NUMLOCK,
|
||||
Qt.Key_PageDown: SDLK_PAGEDOWN,
|
||||
Qt.Key_PageUp: SDLK_PAGEUP,
|
||||
Qt.Key_Pause: SDLK_PAUSE,
|
||||
Qt.Key_Period: SDLK_PERIOD,
|
||||
Qt.Key_Plus: SDLK_PLUS,
|
||||
Qt.Key_PowerOff: SDLK_POWER,
|
||||
Qt.Key_Print: SDLK_PRINT,
|
||||
Qt.Key_Question: SDLK_QUESTION,
|
||||
Qt.Key_Apostrophe: SDLK_QUOTE,
|
||||
Qt.Key_QuoteDbl: SDLK_QUOTEDBL,
|
||||
Qt.Key_Return: SDLK_RETURN,
|
||||
Qt.Key_Enter: SDLK_RETURN,
|
||||
Qt.Key_Right: SDLK_RIGHT,
|
||||
Qt.Key_BracketRight: SDLK_RIGHTBRACKET,
|
||||
Qt.Key_ParenRight: SDLK_RIGHTPAREN,
|
||||
Qt.Key_ScrollLock: SDLK_SCROLLOCK,
|
||||
Qt.Key_Semicolon: SDLK_SEMICOLON,
|
||||
Qt.Key_Slash: SDLK_SLASH,
|
||||
Qt.Key_Space: SDLK_SPACE,
|
||||
Qt.Key_SysReq: SDLK_SYSREQ,
|
||||
Qt.Key_Tab: SDLK_TAB,
|
||||
Qt.Key_Underscore: SDLK_UNDERSCORE,
|
||||
Qt.Key_unknown: SDLK_UNKNOWN,
|
||||
Qt.Key_Up: SDLK_UP,
|
||||
Qt.Key_A: SDLK_a,
|
||||
Qt.Key_B: SDLK_b,
|
||||
Qt.Key_C: SDLK_c,
|
||||
Qt.Key_D: SDLK_d,
|
||||
Qt.Key_E: SDLK_e,
|
||||
Qt.Key_F: SDLK_f,
|
||||
Qt.Key_G: SDLK_g,
|
||||
Qt.Key_H: SDLK_h,
|
||||
Qt.Key_I: SDLK_i,
|
||||
Qt.Key_J: SDLK_j,
|
||||
Qt.Key_K: SDLK_k,
|
||||
Qt.Key_L: SDLK_l,
|
||||
Qt.Key_M: SDLK_m,
|
||||
Qt.Key_N: SDLK_n,
|
||||
Qt.Key_O: SDLK_o,
|
||||
Qt.Key_P: SDLK_p,
|
||||
Qt.Key_Q: SDLK_q,
|
||||
Qt.Key_R: SDLK_r,
|
||||
Qt.Key_S: SDLK_s,
|
||||
Qt.Key_T: SDLK_t,
|
||||
Qt.Key_U: SDLK_u,
|
||||
Qt.Key_V: SDLK_v,
|
||||
Qt.Key_W: SDLK_w,
|
||||
Qt.Key_X: SDLK_x,
|
||||
Qt.Key_Y: SDLK_y,
|
||||
Qt.Key_Z: SDLK_z,
|
||||
Qt.Key_Alt: SDLK_LALT,
|
||||
Qt.Key_Control: SDLK_LCTRL,
|
||||
Qt.Key_Meta: SDLK_LMETA,
|
||||
Qt.Key_Shift: SDLK_LSHIFT,
|
||||
Qt.Key_Super_L: SDLK_LSUPER,
|
||||
Qt.Key_Super_R: SDLK_RSUPER
|
||||
}
|
||||
QT2SDL = {}
|
||||
QT2SDL2 = {}
|
||||
SCANCODE2KEYCODE = {}
|
||||
KEYCODE2SCANCODE = {}
|
||||
|
||||
QT_MODIFIERS = {
|
||||
Qt.Key_Alt: Qt.AltModifier,
|
||||
Qt.Key_Control: Qt.ControlModifier,
|
||||
Qt.Key_Meta: Qt.MetaModifier,
|
||||
Qt.Key_Shift: Qt.ShiftModifier
|
||||
}
|
||||
QT2SDL[Qt.Key_A] = SDLK_a
|
||||
QT2SDL[Qt.Key_B] = SDLK_b
|
||||
QT2SDL[Qt.Key_C] = SDLK_c
|
||||
QT2SDL[Qt.Key_D] = SDLK_d
|
||||
QT2SDL[Qt.Key_E] = SDLK_e
|
||||
QT2SDL[Qt.Key_F] = SDLK_f
|
||||
QT2SDL[Qt.Key_G] = SDLK_g
|
||||
QT2SDL[Qt.Key_H] = SDLK_h
|
||||
QT2SDL[Qt.Key_I] = SDLK_i
|
||||
QT2SDL[Qt.Key_J] = SDLK_j
|
||||
QT2SDL[Qt.Key_K] = SDLK_k
|
||||
QT2SDL[Qt.Key_L] = SDLK_l
|
||||
QT2SDL[Qt.Key_M] = SDLK_m
|
||||
QT2SDL[Qt.Key_N] = SDLK_n
|
||||
QT2SDL[Qt.Key_O] = SDLK_o
|
||||
QT2SDL[Qt.Key_P] = SDLK_p
|
||||
QT2SDL[Qt.Key_Q] = SDLK_q
|
||||
QT2SDL[Qt.Key_R] = SDLK_r
|
||||
QT2SDL[Qt.Key_S] = SDLK_s
|
||||
QT2SDL[Qt.Key_T] = SDLK_t
|
||||
QT2SDL[Qt.Key_U] = SDLK_u
|
||||
QT2SDL[Qt.Key_V] = SDLK_v
|
||||
QT2SDL[Qt.Key_W] = SDLK_w
|
||||
QT2SDL[Qt.Key_X] = SDLK_x
|
||||
QT2SDL[Qt.Key_Y] = SDLK_y
|
||||
QT2SDL[Qt.Key_Z] = SDLK_z
|
||||
QT2SDL[Qt.Key_0] = SDLK_0
|
||||
QT2SDL[Qt.Key_1] = SDLK_1
|
||||
QT2SDL[Qt.Key_2] = SDLK_2
|
||||
QT2SDL[Qt.Key_3] = SDLK_3
|
||||
QT2SDL[Qt.Key_4] = SDLK_4
|
||||
QT2SDL[Qt.Key_5] = SDLK_5
|
||||
QT2SDL[Qt.Key_6] = SDLK_6
|
||||
QT2SDL[Qt.Key_7] = SDLK_7
|
||||
QT2SDL[Qt.Key_8] = SDLK_8
|
||||
QT2SDL[Qt.Key_9] = SDLK_9
|
||||
QT2SDL[Qt.Key_F1] = SDLK_F1
|
||||
QT2SDL[Qt.Key_F2] = SDLK_F2
|
||||
QT2SDL[Qt.Key_F3] = SDLK_F3
|
||||
QT2SDL[Qt.Key_F4] = SDLK_F4
|
||||
QT2SDL[Qt.Key_F5] = SDLK_F5
|
||||
QT2SDL[Qt.Key_F6] = SDLK_F6
|
||||
QT2SDL[Qt.Key_F7] = SDLK_F7
|
||||
QT2SDL[Qt.Key_F8] = SDLK_F8
|
||||
QT2SDL[Qt.Key_F9] = SDLK_F9
|
||||
QT2SDL[Qt.Key_F10] = SDLK_F10
|
||||
QT2SDL[Qt.Key_F11] = SDLK_F11
|
||||
QT2SDL[Qt.Key_F12] = SDLK_F12
|
||||
QT2SDL[Qt.Key_F13] = SDLK_F13
|
||||
QT2SDL[Qt.Key_F14] = SDLK_F14
|
||||
QT2SDL[Qt.Key_F15] = SDLK_F15
|
||||
QT2SDL[Qt.Key_Insert] = SDLK_INSERT
|
||||
QT2SDL[Qt.Key_Delete] = SDLK_DELETE
|
||||
QT2SDL[Qt.Key_Home] = SDLK_HOME
|
||||
QT2SDL[Qt.Key_End] = SDLK_END
|
||||
QT2SDL[Qt.Key_PageUp] = SDLK_PAGEUP
|
||||
QT2SDL[Qt.Key_PageDown] = SDLK_PAGEDOWN
|
||||
QT2SDL[Qt.Key_Up] = SDLK_UP
|
||||
QT2SDL[Qt.Key_Down] = SDLK_DOWN
|
||||
QT2SDL[Qt.Key_Left] = SDLK_LEFT
|
||||
QT2SDL[Qt.Key_Right] = SDLK_RIGHT
|
||||
QT2SDL[Qt.Key_Enter] = SDLK_KP_ENTER
|
||||
QT2SDL[Qt.Key_Return] = SDLK_RETURN
|
||||
QT2SDL[Qt.Key_Escape] = SDLK_ESCAPE
|
||||
QT2SDL[Qt.Key_Pause] = SDLK_PAUSE
|
||||
QT2SDL[Qt.Key_QuoteLeft] = SDLK_BACKQUOTE
|
||||
QT2SDL[Qt.Key_Backspace] = SDLK_BACKSPACE
|
||||
QT2SDL[Qt.Key_Tab] = SDLK_TAB
|
||||
QT2SDL[Qt.Key_CapsLock] = SDLK_CAPSLOCK
|
||||
QT2SDL[Qt.Key_Space] = SDLK_SPACE
|
||||
QT2SDL[Qt.Key_Slash] = SDLK_SLASH
|
||||
QT2SDL[Qt.Key_Backslash] = SDLK_BACKSLASH
|
||||
QT2SDL[Qt.Key_Minus] = SDLK_MINUS
|
||||
QT2SDL[Qt.Key_Plus] = SDLK_PLUS
|
||||
QT2SDL[Qt.Key_Equal] = SDLK_EQUALS
|
||||
QT2SDL[Qt.Key_BracketLeft] = SDLK_LEFTBRACKET
|
||||
QT2SDL[Qt.Key_BracketRight] = SDLK_RIGHTBRACKET
|
||||
QT2SDL[Qt.Key_Semicolon] = SDLK_SEMICOLON
|
||||
QT2SDL[Qt.Key_Apostrophe] = SDLK_QUOTE
|
||||
QT2SDL[Qt.Key_Comma] = SDLK_COMMA
|
||||
QT2SDL[Qt.Key_Period] = SDLK_PERIOD
|
||||
QT2SDL[Qt.Key_Alt] = SDLK_LALT
|
||||
QT2SDL[Qt.Key_Control] = SDLK_LCTRL
|
||||
QT2SDL[Qt.Key_Shift] = SDLK_LSHIFT
|
||||
QT2SDL[Qt.AltModifier.__int__()] = SDLK_LALT
|
||||
QT2SDL[Qt.ControlModifier.__int__()] = SDLK_LCTRL
|
||||
QT2SDL[Qt.ShiftModifier.__int__()] = SDLK_LSHIFT
|
||||
QT2SDL[Qt.Key_Print] = SDLK_PRINT
|
||||
QT2SDL[Qt.Key_ScrollLock] = SDLK_SCROLLOCK
|
||||
QT2SDL[Qt.Key_Meta] = SDLK_LMETA
|
||||
QT2SDL[Qt.MetaModifier.__int__()] = SDLK_LMETA
|
||||
QT2SDL[Qt.Key_Super_L] = SDLK_LSUPER
|
||||
QT2SDL[Qt.Key_Super_R] = SDLK_RSUPER
|
||||
QT2SDL[Qt.Key_unknown] = SDLK_UNKNOWN
|
||||
|
||||
QT_KEYSTRING = {
|
||||
"Alt": Qt.Key_Alt,
|
||||
"Ctrl": Qt.Key_Control,
|
||||
"Meta": Qt.Key_Meta,
|
||||
"Shift": Qt.Key_Shift
|
||||
}
|
||||
QT2SDL2[Qt.Key_A] = SDL_SCANCODE_A
|
||||
QT2SDL2[Qt.Key_B] = SDL_SCANCODE_B
|
||||
QT2SDL2[Qt.Key_C] = SDL_SCANCODE_C
|
||||
QT2SDL2[Qt.Key_D] = SDL_SCANCODE_D
|
||||
QT2SDL2[Qt.Key_E] = SDL_SCANCODE_E
|
||||
QT2SDL2[Qt.Key_F] = SDL_SCANCODE_F
|
||||
QT2SDL2[Qt.Key_G] = SDL_SCANCODE_G
|
||||
QT2SDL2[Qt.Key_H] = SDL_SCANCODE_H
|
||||
QT2SDL2[Qt.Key_I] = SDL_SCANCODE_I
|
||||
QT2SDL2[Qt.Key_J] = SDL_SCANCODE_J
|
||||
QT2SDL2[Qt.Key_K] = SDL_SCANCODE_K
|
||||
QT2SDL2[Qt.Key_L] = SDL_SCANCODE_L
|
||||
QT2SDL2[Qt.Key_M] = SDL_SCANCODE_M
|
||||
QT2SDL2[Qt.Key_N] = SDL_SCANCODE_N
|
||||
QT2SDL2[Qt.Key_O] = SDL_SCANCODE_O
|
||||
QT2SDL2[Qt.Key_P] = SDL_SCANCODE_P
|
||||
QT2SDL2[Qt.Key_Q] = SDL_SCANCODE_Q
|
||||
QT2SDL2[Qt.Key_R] = SDL_SCANCODE_R
|
||||
QT2SDL2[Qt.Key_S] = SDL_SCANCODE_S
|
||||
QT2SDL2[Qt.Key_T] = SDL_SCANCODE_T
|
||||
QT2SDL2[Qt.Key_U] = SDL_SCANCODE_U
|
||||
QT2SDL2[Qt.Key_V] = SDL_SCANCODE_V
|
||||
QT2SDL2[Qt.Key_W] = SDL_SCANCODE_W
|
||||
QT2SDL2[Qt.Key_X] = SDL_SCANCODE_X
|
||||
QT2SDL2[Qt.Key_Y] = SDL_SCANCODE_Y
|
||||
QT2SDL2[Qt.Key_Z] = SDL_SCANCODE_Z
|
||||
QT2SDL2[Qt.Key_0] = SDL_SCANCODE_0
|
||||
QT2SDL2[Qt.Key_1] = SDL_SCANCODE_1
|
||||
QT2SDL2[Qt.Key_2] = SDL_SCANCODE_2
|
||||
QT2SDL2[Qt.Key_3] = SDL_SCANCODE_3
|
||||
QT2SDL2[Qt.Key_4] = SDL_SCANCODE_4
|
||||
QT2SDL2[Qt.Key_5] = SDL_SCANCODE_5
|
||||
QT2SDL2[Qt.Key_6] = SDL_SCANCODE_6
|
||||
QT2SDL2[Qt.Key_7] = SDL_SCANCODE_7
|
||||
QT2SDL2[Qt.Key_8] = SDL_SCANCODE_8
|
||||
QT2SDL2[Qt.Key_9] = SDL_SCANCODE_9
|
||||
QT2SDL2[Qt.Key_F1] = SDL_SCANCODE_F1
|
||||
QT2SDL2[Qt.Key_F2] = SDL_SCANCODE_F2
|
||||
QT2SDL2[Qt.Key_F3] = SDL_SCANCODE_F3
|
||||
QT2SDL2[Qt.Key_F4] = SDL_SCANCODE_F4
|
||||
QT2SDL2[Qt.Key_F5] = SDL_SCANCODE_F5
|
||||
QT2SDL2[Qt.Key_F6] = SDL_SCANCODE_F6
|
||||
QT2SDL2[Qt.Key_F7] = SDL_SCANCODE_F7
|
||||
QT2SDL2[Qt.Key_F8] = SDL_SCANCODE_F8
|
||||
QT2SDL2[Qt.Key_F9] = SDL_SCANCODE_F9
|
||||
QT2SDL2[Qt.Key_F10] = SDL_SCANCODE_F10
|
||||
QT2SDL2[Qt.Key_F11] = SDL_SCANCODE_F11
|
||||
QT2SDL2[Qt.Key_F12] = SDL_SCANCODE_F12
|
||||
QT2SDL2[Qt.Key_F13] = SDL_SCANCODE_F13
|
||||
QT2SDL2[Qt.Key_F14] = SDL_SCANCODE_F14
|
||||
QT2SDL2[Qt.Key_F15] = SDL_SCANCODE_F15
|
||||
QT2SDL2[Qt.Key_Insert] = SDL_SCANCODE_INSERT
|
||||
QT2SDL2[Qt.Key_Delete] = SDL_SCANCODE_DELETE
|
||||
QT2SDL2[Qt.Key_Home] = SDL_SCANCODE_HOME
|
||||
QT2SDL2[Qt.Key_End] = SDL_SCANCODE_END
|
||||
QT2SDL2[Qt.Key_PageUp] = SDL_SCANCODE_PAGEUP
|
||||
QT2SDL2[Qt.Key_PageDown] = SDL_SCANCODE_PAGEDOWN
|
||||
QT2SDL2[Qt.Key_Up] = SDL_SCANCODE_UP
|
||||
QT2SDL2[Qt.Key_Down] = SDL_SCANCODE_DOWN
|
||||
QT2SDL2[Qt.Key_Left] = SDL_SCANCODE_LEFT
|
||||
QT2SDL2[Qt.Key_Right] = SDL_SCANCODE_RIGHT
|
||||
QT2SDL2[Qt.Key_Return] = SDL_SCANCODE_RETURN
|
||||
QT2SDL2[Qt.Key_Enter] = SDL_SCANCODE_RETURN2
|
||||
QT2SDL2[Qt.Key_Escape] = SDL_SCANCODE_ESCAPE
|
||||
QT2SDL2[Qt.Key_Pause] = SDL_SCANCODE_PAUSE
|
||||
QT2SDL2[Qt.Key_QuoteLeft] = SDL_SCANCODE_GRAVE
|
||||
QT2SDL2[Qt.Key_Backspace] = SDL_SCANCODE_BACKSPACE
|
||||
QT2SDL2[Qt.Key_Tab] = SDL_SCANCODE_TAB
|
||||
QT2SDL2[Qt.Key_CapsLock] = SDL_SCANCODE_CAPSLOCK
|
||||
QT2SDL2[Qt.Key_Space] = SDL_SCANCODE_SPACE
|
||||
QT2SDL2[Qt.Key_Slash] = SDL_SCANCODE_SLASH
|
||||
QT2SDL2[Qt.Key_Backslash] = SDL_SCANCODE_BACKSLASH
|
||||
QT2SDL2[Qt.Key_Minus] = SDL_SCANCODE_MINUS
|
||||
QT2SDL2[Qt.Key_Plus] = SDL_SCANCODE_UNKNOWN
|
||||
QT2SDL2[Qt.Key_Equal] = SDL_SCANCODE_EQUALS
|
||||
QT2SDL2[Qt.Key_BracketLeft] = SDL_SCANCODE_LEFTBRACKET
|
||||
QT2SDL2[Qt.Key_BracketRight] = SDL_SCANCODE_RIGHTBRACKET
|
||||
QT2SDL2[Qt.Key_Semicolon] = SDL_SCANCODE_SEMICOLON
|
||||
QT2SDL2[Qt.Key_Apostrophe] = SDL_SCANCODE_APOSTROPHE
|
||||
QT2SDL2[Qt.Key_Comma] = SDL_SCANCODE_COMMA
|
||||
QT2SDL2[Qt.Key_Period] = SDL_SCANCODE_PERIOD
|
||||
QT2SDL2[Qt.Key_Alt] = SDL_SCANCODE_LALT
|
||||
QT2SDL2[Qt.Key_Control] = SDL_SCANCODE_LCTRL
|
||||
QT2SDL2[Qt.Key_Shift] = SDL_SCANCODE_LSHIFT
|
||||
QT2SDL2[Qt.AltModifier.__int__()] = SDL_SCANCODE_LALT
|
||||
QT2SDL2[Qt.ControlModifier.__int__()] = SDL_SCANCODE_LCTRL
|
||||
QT2SDL2[Qt.ShiftModifier.__int__()] = SDL_SCANCODE_LSHIFT
|
||||
QT2SDL2[Qt.Key_Print] = SDL_SCANCODE_PRINTSCREEN
|
||||
QT2SDL2[Qt.Key_ScrollLock] = SDL_SCANCODE_SCROLLLOCK
|
||||
QT2SDL2[Qt.Key_Meta] = SDL_SCANCODE_LGUI
|
||||
QT2SDL2[Qt.MetaModifier.__int__()] = SDL_SCANCODE_LGUI
|
||||
QT2SDL2[Qt.Key_Super_L] = SDL_SCANCODE_LGUI
|
||||
QT2SDL2[Qt.Key_Super_R] = SDL_SCANCODE_RGUI
|
||||
QT2SDL2[Qt.Key_unknown] = SDL_SCANCODE_UNKNOWN
|
||||
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_A] = SDLK_a
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_B] = SDLK_b
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_C] = SDLK_c
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_D] = SDLK_d
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_E] = SDLK_e
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F] = SDLK_f
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_G] = SDLK_g
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_H] = SDLK_h
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_I] = SDLK_i
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_J] = SDLK_j
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_K] = SDLK_k
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_L] = SDLK_l
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_M] = SDLK_m
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_N] = SDLK_n
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_O] = SDLK_o
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_P] = SDLK_p
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_Q] = SDLK_q
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_R] = SDLK_r
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_S] = SDLK_s
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_T] = SDLK_t
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_U] = SDLK_u
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_V] = SDLK_v
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_W] = SDLK_w
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_X] = SDLK_x
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_Y] = SDLK_y
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_Z] = SDLK_z
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_0] = SDLK_0
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_1] = SDLK_1
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_2] = SDLK_2
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_3] = SDLK_3
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_4] = SDLK_4
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_5] = SDLK_5
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_6] = SDLK_6
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_7] = SDLK_7
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_8] = SDLK_8
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_9] = SDLK_9
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F1] = SDLK_F1
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F2] = SDLK_F2
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F3] = SDLK_F3
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F4] = SDLK_F4
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F5] = SDLK_F5
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F6] = SDLK_F6
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F7] = SDLK_F7
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F8] = SDLK_F8
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F9] = SDLK_F9
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F10] = SDLK_F10
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F11] = SDLK_F11
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F12] = SDLK_F12
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F13] = SDLK_F13
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F14] = SDLK_F14
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_F15] = SDLK_F15
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_INSERT] = SDLK_INSERT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_DELETE] = SDLK_DELETE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_HOME] = SDLK_HOME
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_END] = SDLK_END
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_PAGEUP] = SDLK_PAGEUP
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_PAGEDOWN] = SDLK_PAGEDOWN
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_UP] = SDLK_UP
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_DOWN] = SDLK_DOWN
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LEFT] = SDLK_LEFT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_RIGHT] = SDLK_RIGHT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_RETURN2] = SDLK_KP_ENTER
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_RETURN] = SDLK_RETURN
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_ESCAPE] = SDLK_ESCAPE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_PAUSE] = SDLK_PAUSE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_GRAVE] = SDLK_BACKQUOTE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_BACKSPACE] = SDLK_BACKSPACE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_TAB] = SDLK_TAB
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_CAPSLOCK] = SDLK_CAPSLOCK
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_SPACE] = SDLK_SPACE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_SLASH] = SDLK_SLASH
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_BACKSLASH] = SDLK_BACKSLASH
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_MINUS] = SDLK_MINUS
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_UNKNOWN] = SDLK_PLUS
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_EQUALS] = SDLK_EQUALS
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LEFTBRACKET] = SDLK_LEFTBRACKET
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_RIGHTBRACKET] = SDLK_RIGHTBRACKET
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_SEMICOLON] = SDLK_SEMICOLON
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_APOSTROPHE] = SDLK_QUOTE
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_COMMA] = SDLK_COMMA
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_PERIOD] = SDLK_PERIOD
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LALT] = SDLK_LALT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LCTRL] = SDLK_LCTRL
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LSHIFT] = SDLK_LSHIFT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LALT] = SDLK_LALT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LCTRL] = SDLK_LCTRL
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LSHIFT] = SDLK_LSHIFT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_PRINTSCREEN] = SDLK_PRINT
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_SCROLLLOCK] = SDLK_SCROLLOCK
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LGUI] = SDLK_LMETA
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LGUI] = SDLK_LMETA
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_LGUI] = SDLK_LSUPER
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_RGUI] = SDLK_RSUPER
|
||||
SCANCODE2KEYCODE[SDL_SCANCODE_UNKNOWN] = SDLK_UNKNOWN
|
||||
|
||||
KEYCODE2SCANCODE[SDLK_a] = SDL_SCANCODE_A
|
||||
KEYCODE2SCANCODE[SDLK_b] = SDL_SCANCODE_B
|
||||
KEYCODE2SCANCODE[SDLK_c] = SDL_SCANCODE_C
|
||||
KEYCODE2SCANCODE[SDLK_d] = SDL_SCANCODE_D
|
||||
KEYCODE2SCANCODE[SDLK_e] = SDL_SCANCODE_E
|
||||
KEYCODE2SCANCODE[SDLK_f] = SDL_SCANCODE_F
|
||||
KEYCODE2SCANCODE[SDLK_g] = SDL_SCANCODE_G
|
||||
KEYCODE2SCANCODE[SDLK_h] = SDL_SCANCODE_H
|
||||
KEYCODE2SCANCODE[SDLK_i] = SDL_SCANCODE_I
|
||||
KEYCODE2SCANCODE[SDLK_j] = SDL_SCANCODE_J
|
||||
KEYCODE2SCANCODE[SDLK_k] = SDL_SCANCODE_K
|
||||
KEYCODE2SCANCODE[SDLK_l] = SDL_SCANCODE_L
|
||||
KEYCODE2SCANCODE[SDLK_m] = SDL_SCANCODE_M
|
||||
KEYCODE2SCANCODE[SDLK_n] = SDL_SCANCODE_N
|
||||
KEYCODE2SCANCODE[SDLK_o] = SDL_SCANCODE_O
|
||||
KEYCODE2SCANCODE[SDLK_p] = SDL_SCANCODE_P
|
||||
KEYCODE2SCANCODE[SDLK_q] = SDL_SCANCODE_Q
|
||||
KEYCODE2SCANCODE[SDLK_r] = SDL_SCANCODE_R
|
||||
KEYCODE2SCANCODE[SDLK_s] = SDL_SCANCODE_S
|
||||
KEYCODE2SCANCODE[SDLK_t] = SDL_SCANCODE_T
|
||||
KEYCODE2SCANCODE[SDLK_u] = SDL_SCANCODE_U
|
||||
KEYCODE2SCANCODE[SDLK_v] = SDL_SCANCODE_V
|
||||
KEYCODE2SCANCODE[SDLK_w] = SDL_SCANCODE_W
|
||||
KEYCODE2SCANCODE[SDLK_x] = SDL_SCANCODE_X
|
||||
KEYCODE2SCANCODE[SDLK_y] = SDL_SCANCODE_Y
|
||||
KEYCODE2SCANCODE[SDLK_z] = SDL_SCANCODE_Z
|
||||
KEYCODE2SCANCODE[SDLK_0] = SDL_SCANCODE_0
|
||||
KEYCODE2SCANCODE[SDLK_1] = SDL_SCANCODE_1
|
||||
KEYCODE2SCANCODE[SDLK_2] = SDL_SCANCODE_2
|
||||
KEYCODE2SCANCODE[SDLK_3] = SDL_SCANCODE_3
|
||||
KEYCODE2SCANCODE[SDLK_4] = SDL_SCANCODE_4
|
||||
KEYCODE2SCANCODE[SDLK_5] = SDL_SCANCODE_5
|
||||
KEYCODE2SCANCODE[SDLK_6] = SDL_SCANCODE_6
|
||||
KEYCODE2SCANCODE[SDLK_7] = SDL_SCANCODE_7
|
||||
KEYCODE2SCANCODE[SDLK_8] = SDL_SCANCODE_8
|
||||
KEYCODE2SCANCODE[SDLK_9] = SDL_SCANCODE_9
|
||||
KEYCODE2SCANCODE[SDLK_F1] = SDL_SCANCODE_F1
|
||||
KEYCODE2SCANCODE[SDLK_F2] = SDL_SCANCODE_F2
|
||||
KEYCODE2SCANCODE[SDLK_F3] = SDL_SCANCODE_F3
|
||||
KEYCODE2SCANCODE[SDLK_F4] = SDL_SCANCODE_F4
|
||||
KEYCODE2SCANCODE[SDLK_F5] = SDL_SCANCODE_F5
|
||||
KEYCODE2SCANCODE[SDLK_F6] = SDL_SCANCODE_F6
|
||||
KEYCODE2SCANCODE[SDLK_F7] = SDL_SCANCODE_F7
|
||||
KEYCODE2SCANCODE[SDLK_F8] = SDL_SCANCODE_F8
|
||||
KEYCODE2SCANCODE[SDLK_F9] = SDL_SCANCODE_F9
|
||||
KEYCODE2SCANCODE[SDLK_F10] = SDL_SCANCODE_F10
|
||||
KEYCODE2SCANCODE[SDLK_F11] = SDL_SCANCODE_F11
|
||||
KEYCODE2SCANCODE[SDLK_F12] = SDL_SCANCODE_F12
|
||||
KEYCODE2SCANCODE[SDLK_F13] = SDL_SCANCODE_F13
|
||||
KEYCODE2SCANCODE[SDLK_F14] = SDL_SCANCODE_F14
|
||||
KEYCODE2SCANCODE[SDLK_F15] = SDL_SCANCODE_F15
|
||||
KEYCODE2SCANCODE[SDLK_INSERT] = SDL_SCANCODE_INSERT
|
||||
KEYCODE2SCANCODE[SDLK_DELETE] = SDL_SCANCODE_DELETE
|
||||
KEYCODE2SCANCODE[SDLK_HOME] = SDL_SCANCODE_HOME
|
||||
KEYCODE2SCANCODE[SDLK_END] = SDL_SCANCODE_END
|
||||
KEYCODE2SCANCODE[SDLK_PAGEUP] = SDL_SCANCODE_PAGEUP
|
||||
KEYCODE2SCANCODE[SDLK_PAGEDOWN] = SDL_SCANCODE_PAGEDOWN
|
||||
KEYCODE2SCANCODE[SDLK_UP] = SDL_SCANCODE_UP
|
||||
KEYCODE2SCANCODE[SDLK_DOWN] = SDL_SCANCODE_DOWN
|
||||
KEYCODE2SCANCODE[SDLK_LEFT] = SDL_SCANCODE_LEFT
|
||||
KEYCODE2SCANCODE[SDLK_RIGHT] = SDL_SCANCODE_RIGHT
|
||||
KEYCODE2SCANCODE[SDLK_KP_ENTER] = SDL_SCANCODE_RETURN2
|
||||
KEYCODE2SCANCODE[SDLK_RETURN] = SDL_SCANCODE_RETURN
|
||||
KEYCODE2SCANCODE[SDLK_ESCAPE] = SDL_SCANCODE_ESCAPE
|
||||
KEYCODE2SCANCODE[SDLK_PAUSE] = SDL_SCANCODE_PAUSE
|
||||
KEYCODE2SCANCODE[SDLK_BACKQUOTE] = SDL_SCANCODE_GRAVE
|
||||
KEYCODE2SCANCODE[SDLK_BACKSPACE] = SDL_SCANCODE_BACKSPACE
|
||||
KEYCODE2SCANCODE[SDLK_TAB] = SDL_SCANCODE_TAB
|
||||
KEYCODE2SCANCODE[SDLK_CAPSLOCK] = SDL_SCANCODE_CAPSLOCK
|
||||
KEYCODE2SCANCODE[SDLK_SPACE] = SDL_SCANCODE_SPACE
|
||||
KEYCODE2SCANCODE[SDLK_SLASH] = SDL_SCANCODE_SLASH
|
||||
KEYCODE2SCANCODE[SDLK_BACKSLASH] = SDL_SCANCODE_BACKSLASH
|
||||
KEYCODE2SCANCODE[SDLK_MINUS] = SDL_SCANCODE_MINUS
|
||||
KEYCODE2SCANCODE[SDLK_PLUS] = SDL_SCANCODE_UNKNOWN
|
||||
KEYCODE2SCANCODE[SDLK_EQUALS] = SDL_SCANCODE_EQUALS
|
||||
KEYCODE2SCANCODE[SDLK_LEFTBRACKET] = SDL_SCANCODE_LEFTBRACKET
|
||||
KEYCODE2SCANCODE[SDLK_RIGHTBRACKET] = SDL_SCANCODE_RIGHTBRACKET
|
||||
KEYCODE2SCANCODE[SDLK_SEMICOLON] = SDL_SCANCODE_SEMICOLON
|
||||
KEYCODE2SCANCODE[SDLK_QUOTE] = SDL_SCANCODE_APOSTROPHE
|
||||
KEYCODE2SCANCODE[SDLK_COMMA] = SDL_SCANCODE_COMMA
|
||||
KEYCODE2SCANCODE[SDLK_PERIOD] = SDL_SCANCODE_PERIOD
|
||||
KEYCODE2SCANCODE[SDLK_LALT] = SDL_SCANCODE_LALT
|
||||
KEYCODE2SCANCODE[SDLK_LCTRL] = SDL_SCANCODE_LCTRL
|
||||
KEYCODE2SCANCODE[SDLK_LSHIFT] = SDL_SCANCODE_LSHIFT
|
||||
KEYCODE2SCANCODE[SDLK_LALT] = SDL_SCANCODE_LALT
|
||||
KEYCODE2SCANCODE[SDLK_LCTRL] = SDL_SCANCODE_LCTRL
|
||||
KEYCODE2SCANCODE[SDLK_LSHIFT] = SDL_SCANCODE_LSHIFT
|
||||
KEYCODE2SCANCODE[SDLK_PRINT] = SDL_SCANCODE_PRINTSCREEN
|
||||
KEYCODE2SCANCODE[SDLK_SCROLLOCK] = SDL_SCANCODE_SCROLLLOCK
|
||||
KEYCODE2SCANCODE[SDLK_LMETA] = SDL_SCANCODE_LGUI
|
||||
KEYCODE2SCANCODE[SDLK_LMETA] = SDL_SCANCODE_LGUI
|
||||
KEYCODE2SCANCODE[SDLK_LSUPER] = SDL_SCANCODE_LGUI
|
||||
KEYCODE2SCANCODE[SDLK_RSUPER] = SDL_SCANCODE_RGUI
|
||||
KEYCODE2SCANCODE[SDLK_UNKNOWN] = SDL_SCANCODE_UNKNOWN
|
||||
|
|
|
@ -23,6 +23,7 @@ from PyQt4.QtCore import *
|
|||
from m64py.core.defs import *
|
||||
from m64py.utils import log
|
||||
from m64py.loader import find_library
|
||||
from m64py.screensaver import screensaver
|
||||
from m64py.core.core import Core
|
||||
from m64py.core.vidext import video
|
||||
from m64py.archive import Archive
|
||||
|
@ -77,7 +78,7 @@ class Worker(QThread):
|
|||
else:
|
||||
path_library = self.settings.qset.value(
|
||||
"Paths/Library", find_library(CORE_NAME))
|
||||
self.m64p.core_load(path_library, self.use_vidext)
|
||||
self.m64p.core_load(str(path_library), self.use_vidext)
|
||||
|
||||
def core_shutdown(self):
|
||||
"""Shutdowns core library."""
|
||||
|
@ -128,6 +129,9 @@ class Worker(QThread):
|
|||
del romfile
|
||||
self.m64p.rom_get_header()
|
||||
self.m64p.rom_get_settings()
|
||||
if bool(int(self.settings.qset.value(
|
||||
"disable_screensaver", 1))):
|
||||
screensaver.disable()
|
||||
self.parent.emit(SIGNAL("rom_opened()"))
|
||||
self.parent.recent_files.add(self.filepath)
|
||||
|
||||
|
@ -136,6 +140,9 @@ class Worker(QThread):
|
|||
self.m64p.detach_plugins()
|
||||
self.m64p.plugins_shutdown()
|
||||
self.m64p.rom_close()
|
||||
if bool(int(self.settings.qset.value(
|
||||
"disable_screensaver", 1))):
|
||||
screensaver.enable()
|
||||
self.parent.emit(SIGNAL("rom_closed()"))
|
||||
|
||||
def core_state_query(self, state):
|
||||
|
@ -158,7 +165,7 @@ class Worker(QThread):
|
|||
for filename in os.listdir(path):
|
||||
if filename.startswith(rom_name):
|
||||
screenshots.append(os.path.join(
|
||||
screenshots_path, filename))
|
||||
path, filename))
|
||||
if screenshots:
|
||||
return sorted(screenshots)[-1]
|
||||
return None
|
||||
|
@ -253,8 +260,14 @@ class Worker(QThread):
|
|||
"""Toggles pause."""
|
||||
if self.state == M64EMU_RUNNING:
|
||||
self.m64p.pause()
|
||||
if bool(int(self.settings.qset.value(
|
||||
"disable_screensaver", 1))):
|
||||
screensaver.enable()
|
||||
elif self.state == M64EMU_PAUSED:
|
||||
self.m64p.resume()
|
||||
if bool(int(self.settings.qset.value(
|
||||
"disable_screensaver", 1))):
|
||||
screensaver.disable()
|
||||
self.toggle_actions()
|
||||
|
||||
def toggle_mute(self):
|
||||
|
|
|
@ -56,7 +56,6 @@ class LibraryLoader(object):
|
|||
self.other_dirs=[]
|
||||
|
||||
def find_library(self, libname):
|
||||
"""Given the name of a library, return path."""
|
||||
paths = self.getpaths(libname)
|
||||
for path in paths:
|
||||
if os.path.exists(path):
|
||||
|
@ -64,7 +63,6 @@ class LibraryLoader(object):
|
|||
return None
|
||||
|
||||
def load_library(self, libname):
|
||||
"""Given the name of a library, load it."""
|
||||
paths = self.getpaths(libname)
|
||||
for path in paths:
|
||||
if os.path.exists(path):
|
||||
|
@ -75,7 +73,6 @@ class LibraryLoader(object):
|
|||
dlclose(tdll._handle)
|
||||
|
||||
def load(self, path):
|
||||
"""Given a path to a library, load it."""
|
||||
try:
|
||||
# Darwin requires dlopen to be called with mode RTLD_GLOBAL instead
|
||||
# of the default RTLD_LOCAL. Without this, you end up with
|
||||
|
@ -89,7 +86,6 @@ class LibraryLoader(object):
|
|||
raise ImportError(e)
|
||||
|
||||
def getpaths(self, libname):
|
||||
"""Return a list of paths where the library might be found."""
|
||||
if os.path.isabs(libname):
|
||||
yield libname
|
||||
|
||||
|
@ -103,10 +99,9 @@ class LibraryLoader(object):
|
|||
def getplatformpaths(self, libname):
|
||||
return []
|
||||
|
||||
# Darwin (Mac OS X)
|
||||
class DarwinLibraryLoader(LibraryLoader):
|
||||
name_formats = ["lib%s.dylib", "lib%s.so", "lib%s.bundle", "%s.dylib",
|
||||
"%s.so", "%s.bundle", "%s"]
|
||||
name_formats = ["lib%s.dylib", "lib%s.so", "lib%s.bundle",
|
||||
"%s.dylib", "%s.so", "%s.bundle", "%s"]
|
||||
|
||||
def getplatformpaths(self, libname):
|
||||
if os.path.pathsep in libname:
|
||||
|
@ -135,7 +130,6 @@ class DarwinLibraryLoader(LibraryLoader):
|
|||
'/usr/local/lib', '/usr/lib']
|
||||
|
||||
dirs = []
|
||||
|
||||
if '/' in libname:
|
||||
dirs.extend(_environ_path("DYLD_LIBRARY_PATH"))
|
||||
else:
|
||||
|
@ -152,10 +146,8 @@ class DarwinLibraryLoader(LibraryLoader):
|
|||
'Frameworks'))
|
||||
|
||||
dirs.extend(dyld_fallback_library_path)
|
||||
|
||||
return dirs
|
||||
|
||||
# Posix
|
||||
class PosixLibraryLoader(LibraryLoader):
|
||||
_ld_so_cache = None
|
||||
|
||||
|
@ -178,8 +170,10 @@ class PosixLibraryLoader(LibraryLoader):
|
|||
directories.extend(self.other_dirs)
|
||||
directories.append(".")
|
||||
|
||||
try: directories.extend([dir.strip() for dir in open('/etc/ld.so.conf')])
|
||||
except IOError: pass
|
||||
try:
|
||||
directories.extend([dir.strip() for dir in open('/etc/ld.so.conf')])
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
directories.extend(['/lib', '/usr/lib', '/lib64',
|
||||
'/usr/lib64', '/usr/games/lib', '/usr/games/lib64',
|
||||
|
@ -217,7 +211,6 @@ class PosixLibraryLoader(LibraryLoader):
|
|||
path = ctypes.util.find_library(libname)
|
||||
if path: yield os.path.join("/lib",path)
|
||||
|
||||
# Windows
|
||||
class _WindowsLibrary(object):
|
||||
def __init__(self, path):
|
||||
try:
|
||||
|
@ -226,7 +219,7 @@ class _WindowsLibrary(object):
|
|||
self.windll = ctypes.windll.LoadLibrary(path)
|
||||
except WindowsError:
|
||||
os.environ['PATH'] = ';'.join(
|
||||
[os.path.dirname(path), os.environ['PATH']])
|
||||
[os.path.dirname(path), os.environ['PATH']])
|
||||
path = os.path.basename(path)
|
||||
self.cdll = ctypes.cdll.LoadLibrary(path)
|
||||
self.windll = ctypes.windll.LoadLibrary(path)
|
||||
|
@ -276,7 +269,6 @@ class WindowsLibraryLoader(LibraryLoader):
|
|||
if path:
|
||||
yield path
|
||||
|
||||
# Platform switching
|
||||
loaderclass = {
|
||||
"darwin": DarwinLibraryLoader,
|
||||
"cygwin": WindowsLibraryLoader,
|
||||
|
@ -287,7 +279,7 @@ loader = loaderclass.get(sys.platform, PosixLibraryLoader)()
|
|||
|
||||
load = loader.load
|
||||
load_library = loader.load_library
|
||||
unload_library = loader.unload_library
|
||||
find_library = loader.find_library
|
||||
unload_library = loader.unload_library
|
||||
|
||||
del loaderclass
|
||||
|
|
|
@ -20,7 +20,9 @@ from m64py.core.defs import FRONTEND_VERSION
|
|||
|
||||
usage = 'usage: %prog <romfile>'
|
||||
parser = OptionParser(usage=usage, version="M64Py Version %s" % FRONTEND_VERSION)
|
||||
parser.add_option("-v", "--verbose", action="store_true", dest="verbose")
|
||||
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="show verbose output")
|
||||
parser.add_option("--sdl2", action="store_true", dest="sdl2", help="use libSDL2 library")
|
||||
opts, args = parser.parse_args()
|
||||
|
||||
SDL2 = opts.sdl2
|
||||
VERBOSE = opts.verbose
|
||||
|
|
|
@ -18,6 +18,7 @@ import os
|
|||
import sys
|
||||
|
||||
if sys.platform.startswith("linux"):
|
||||
LDD_CMD = "ldd %s | grep -q SDL2"
|
||||
DLL_EXT = ".so"
|
||||
DLL_FILTER = ".so.2"
|
||||
DEFAULT_DYNLIB = "libmupen64plus.so.2"
|
||||
|
@ -31,6 +32,7 @@ if sys.platform.startswith("linux"):
|
|||
"."
|
||||
]
|
||||
elif sys.platform == "darwin":
|
||||
LDD_CMD = "otool -L %s | grep -q SDL2"
|
||||
DLL_EXT = ".dylib"
|
||||
DLL_FILTER = ".dylib"
|
||||
DEFAULT_DYNLIB = "libmupen64plus.dylib"
|
||||
|
@ -41,6 +43,7 @@ elif sys.platform == "darwin":
|
|||
"."
|
||||
]
|
||||
elif sys.platform == "win32":
|
||||
LDD_CMD = ""
|
||||
DLL_EXT = ".dll"
|
||||
DLL_FILTER = ".dll"
|
||||
DEFAULT_DYNLIB = "mupen64plus.dll"
|
||||
|
|
BIN
src/m64py/ui/icons/action_graphics.png
Normal file
BIN
src/m64py/ui/icons/action_graphics.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 966 B |
Loading…
Add table
Reference in a new issue