add support for SDL2

This commit is contained in:
gen2brain 2013-09-28 20:09:01 +02:00
parent 91ed3b8485
commit 629f66a5f1
13 changed files with 502 additions and 208 deletions

4
m64py
View file

@ -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_()

View file

@ -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"],

View file

@ -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:

View file

@ -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"""

View file

@ -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

View file

@ -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()

View file

@ -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:

View file

@ -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

View file

@ -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):

View file

@ -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

View file

@ -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

View file

@ -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"

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 B