コード例 #1
0
ファイル: sdl_test.py プロジェクト: Kebirs/Work_hours_app
 def test_SDL_INIT_TIMER(self):
     ret = SDL_Init(SDL_INIT_TIMER)
     if ret != 0:
         pytest.skip('Timer subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_TIMER)
     assert ret == SDL_INIT_TIMER
     SDL_QuitSubSystem(SDL_INIT_TIMER)
コード例 #2
0
 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()
     if SDL_WasInit(SDL_INIT_VIDEO):
         SDL_QuitSubSystem(SDL_INIT_VIDEO)
コード例 #3
0
ファイル: sdl_test.py プロジェクト: Kebirs/Work_hours_app
 def test_SDL_INIT_VIDEO(self):
     ret = SDL_Init(SDL_INIT_VIDEO)
     if ret != 0:
         pytest.skip('Video subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_VIDEO)
     assert ret == SDL_INIT_VIDEO
     SDL_QuitSubSystem(SDL_INIT_VIDEO)
コード例 #4
0
ファイル: sdl_test.py プロジェクト: Kebirs/Work_hours_app
 def test_SDL_INIT_AUDIO(self):
     ret = SDL_Init(SDL_INIT_AUDIO)
     if ret != 0:
         pytest.skip('Audio subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_AUDIO)
     assert ret == SDL_INIT_AUDIO
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #5
0
ファイル: sdl_test.py プロジェクト: Kebirs/Work_hours_app
 def test_SDL_INIT_HAPTIC(self):
     ret = SDL_Init(SDL_INIT_HAPTIC)
     if ret != 0:
         pytest.skip('Haptic subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_HAPTIC)
     assert ret == SDL_INIT_HAPTIC
     SDL_QuitSubSystem(SDL_INIT_HAPTIC)
コード例 #6
0
ファイル: sdl_test.py プロジェクト: Kebirs/Work_hours_app
 def test_SDL_INIT_JOYSTICK(self):
     ret = SDL_Init(SDL_INIT_JOYSTICK)
     if ret != 0:
         pytest.skip('Joystick subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_JOYSTICK)
     assert ret == SDL_INIT_JOYSTICK
     SDL_QuitSubSystem(SDL_INIT_JOYSTICK)
コード例 #7
0
 def test_SDL_GetAudioDeviceName(self):
     devices = {}
     # Reset audio subsystem
     SDL_Quit()
     SDL_Init(0)
     for index in range(audio.SDL_GetNumAudioDrivers()):
         # Get input/output device names for each audio driver
         drivername = audio.SDL_GetAudioDriver(index)
         os.environ["SDL_AUDIODRIVER"] = drivername.decode("utf-8")
         # Need to reinitialize subsystem for each driver
         SDL_InitSubSystem(SDL_INIT_AUDIO)
         driver = audio.SDL_GetCurrentAudioDriver()
         if driver is not None:
             driver = driver.decode("utf-8")
             devices[driver] = {'input': [], 'output': []}
             outnum = audio.SDL_GetNumAudioDevices(False)
             innum = audio.SDL_GetNumAudioDevices(True)
             for x in range(outnum):
                 name = audio.SDL_GetAudioDeviceName(x, False)
                 assert name is not None
                 devices[driver]['output'].append(name.decode('utf-8'))
             for x in range(innum):
                 name = audio.SDL_GetAudioDeviceName(x, True)
                 assert name is not None
                 devices[driver]['input'].append(name.decode('utf-8'))
         SDL_QuitSubSystem(SDL_INIT_AUDIO)
     print("Available audio drivers and devices:")
     for driver in devices.keys():
         print(driver)
         print(" - input: {0}".format(str(devices[driver]['input'])))
         print(" - output: {0}".format(str(devices[driver]['output'])))
コード例 #8
0
 def test_SDL_INIT_HAPTIC(self):
     ret = SDL_Init(SDL_INIT_HAPTIC)
     if ret != 0:
         self.skipTest('Haptic subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_HAPTIC)
     self.assertEqual(ret, SDL_INIT_HAPTIC)
     SDL_QuitSubSystem(SDL_INIT_HAPTIC)
コード例 #9
0
 def test_SDL_INIT_JOYSTICK(self):
     ret = SDL_Init(SDL_INIT_JOYSTICK)
     if ret != 0:
         self.skipTest('Joystick subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_JOYSTICK)
     self.assertEqual(ret, SDL_INIT_JOYSTICK)
     SDL_QuitSubSystem(SDL_INIT_JOYSTICK)
コード例 #10
0
 def test_SDL_INIT_VIDEO(self):
     ret = SDL_Init(SDL_INIT_VIDEO)
     if ret != 0:
         self.skipTest('Video subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_VIDEO)
     self.assertEqual(ret, SDL_INIT_VIDEO)
     SDL_QuitSubSystem(SDL_INIT_VIDEO)
コード例 #11
0
 def test_SDL_INIT_TIMER(self):
     ret = SDL_Init(SDL_INIT_TIMER)
     if ret != 0:
         self.skipTest('Timer subsystem not supported')
     ret = SDL_WasInit(SDL_INIT_TIMER)
     self.assertEqual(ret, SDL_INIT_TIMER)
     SDL_QuitSubSystem(SDL_INIT_TIMER)
コード例 #12
0
 def test_SDL_GetNumAudioDevices(self):
     os.environ["SDL_AUDIODRIVER"] = "dummy"
     SDL_InitSubSystem(SDL_INIT_AUDIO)
     outnum = audio.SDL_GetNumAudioDevices(False)
     self.assertGreaterEqual(outnum, 1)
     innum = audio.SDL_GetNumAudioDevices(True)
     self.assertGreaterEqual(innum, 0)
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #13
0
 def test_SDL_GetNumAudioDevices(self):
     os.environ["SDL_AUDIODRIVER"] = "dummy"
     if SDL_InitSubSystem(SDL_INIT_AUDIO) != 0:
         self.skipTest('Audio subsystem not supported')
     outnum = audio.SDL_GetNumAudioDevices(False)
     self.assertGreaterEqual(outnum, 1)
     innum = audio.SDL_GetNumAudioDevices(True)
     self.assertGreaterEqual(innum, 0)
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #14
0
 def test_SDL_GetCurrentAudioDriver(self):
     if SDL_InitSubSystem(SDL_INIT_AUDIO) != 0:
         self.skipTest('Audio subsystem not supported')
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
     success = 0
     for index in range(audio.SDL_GetNumAudioDrivers()):
         drivername = audio.SDL_GetAudioDriver(index)
         os.environ["SDL_AUDIODRIVER"] = drivername.decode("utf-8")
         # Certain drivers fail without bringing up the correct
         # return value, such as the esd, if it is not running.
         SDL_InitSubSystem(SDL_INIT_AUDIO)
         driver = audio.SDL_GetCurrentAudioDriver()
         # Do not handle wrong return values.
         if driver is not None:
             self.assertEqual(drivername, driver)
             success += 1
         SDL_QuitSubSystem(SDL_INIT_AUDIO)
     self.assertGreaterEqual(success, 1,
                             "Could not initialize any sound driver")
コード例 #15
0
 def signal_handler(signum, frame):
     signal.signal(signal.SIGINT, signal.SIG_IGN)
     signal.signal(signal.SIGTERM, signal.SIG_IGN)
     if tty_fd:
         os.close(tty_fd)
     if SDL_WasInit(SDL_INIT_JOYSTICK) == SDL_INIT_JOYSTICK:
         SDL_QuitSubSystem(SDL_INIT_JOYSTICK)
     SDL_Quit()
     LOG.debug(f'{sys.argv[0]} exiting cleanly')
     sys.exit(0)
コード例 #16
0
 def test_SDL_OpenAudio(self):
     os.environ["SDL_AUDIODRIVER"] = "dummy"
     SDL_InitSubSystem(SDL_INIT_AUDIO)
     reqspec = audio.SDL_AudioSpec(44100, audio.AUDIO_U16SYS, 2, 8192,
                                   self.audiocallback, None)
     spec = audio.SDL_AudioSpec(0, 0, 0, 0)
     ret = audio.SDL_OpenAudio(reqspec, ctypes.byref(spec))
     self.assertEqual(ret, 0)
     self.assertEqual(spec.format, reqspec.format)
     self.assertEqual(spec.freq, reqspec.freq)
     self.assertEqual(spec.channels, reqspec.channels)
     audio.SDL_CloseAudio()
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #17
0
 def test_SDL_GetAudioDeviceName(self):
     os.environ["SDL_AUDIODRIVER"] = "dummy"
     SDL_InitSubSystem(SDL_INIT_AUDIO)
     outnum = audio.SDL_GetNumAudioDevices(False)
     for x in range(outnum):
         name = audio.SDL_GetAudioDeviceName(x, False)
         self.assertIsNotNone(name)
     innum = audio.SDL_GetNumAudioDevices(True)
     for x in range(innum):
         name = audio.SDL_GetAudioDeviceName(x, True)
         self.assertIsNotNone(name)
     # self.assertRaises(SDLError, audio.get_audio_device_name, -1)
     # self.assertRaises(SDLError, audio.get_audio_device_name, -1, True)
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #18
0
 def test_SDL_GetCurrentAudioDriver(self):
     success = 0
     # Reset audio subsystem
     SDL_Quit()
     SDL_Init(0)
     for index in range(audio.SDL_GetNumAudioDrivers()):
         drivername = audio.SDL_GetAudioDriver(index)
         os.environ["SDL_AUDIODRIVER"] = drivername.decode("utf-8")
         # Certain drivers fail without bringing up the correct
         # return value, such as the esd, if it is not running.
         SDL_InitSubSystem(SDL_INIT_AUDIO)
         driver = audio.SDL_GetCurrentAudioDriver()
         SDL_QuitSubSystem(SDL_INIT_AUDIO)
         # Do not handle wrong return values.
         if driver is not None:
             assert drivername == driver
             success += 1
     assert success >= 1
コード例 #19
0
 def test_SDL_GetAudioDriver(self):
     if SDL_InitSubSystem(SDL_INIT_AUDIO) != 0:
         self.skipTest('Audio subsystem not supported')
     founddummy = False
     drivercount = audio.SDL_GetNumAudioDrivers()
     for index in range(drivercount):
         drivername = audio.SDL_GetAudioDriver(index)
         self.assertIsInstance(drivername, (str, bytes))
         if drivername == b"dummy":
             founddummy = True
     self.assertTrue(founddummy, "could not find dummy driver")
     # self.assertRaises(SDLError, audio.SDL_GetAudioDriver, -1)
     # self.assertRaises(SDLError, audio.get_audio_driver,
     #                  drivercount + 1)
     self.assertRaises((ctypes.ArgumentError, TypeError),
                       audio.SDL_GetAudioDriver, "Test")
     self.assertRaises((ctypes.ArgumentError, TypeError),
                       audio.SDL_GetAudioDriver, None)
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #20
0
 def test_SDL_OpenCloseAudioDevice(self):
     os.environ["SDL_AUDIODRIVER"] = "dummy"
     SDL_InitSubSystem(SDL_INIT_AUDIO)
     reqspec = audio.SDL_AudioSpec(44100, audio.AUDIO_U16SYS, 2, 8192,
                                   self.audiocallback, None)
     outnum = audio.SDL_GetNumAudioDevices(0)
     for x in range(outnum):
         spec = audio.SDL_AudioSpec()
         name = audio.SDL_GetAudioDeviceName(x, 0)
         self.assertIsNotNone(name)
         deviceid = audio.SDL_OpenAudioDevice(None, 0, reqspec,
                                              ctypes.byref(spec), 1)
         self.assertGreaterEqual(deviceid, 2)
         self.assertIsInstance(spec, audio.SDL_AudioSpec)
         self.assertEqual(spec.format, reqspec.format)
         self.assertEqual(spec.freq, reqspec.freq)
         self.assertEqual(spec.channels, reqspec.channels)
         audio.SDL_CloseAudioDevice(deviceid)
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #21
0
def main():
    # install a signal handler so the script can stop safely
    def signal_handler(signum, frame):
        signal.signal(signal.SIGINT, signal.SIG_IGN)
        signal.signal(signal.SIGTERM, signal.SIG_IGN)
        if tty_fd:
            os.close(tty_fd)
        if SDL_WasInit(SDL_INIT_JOYSTICK) == SDL_INIT_JOYSTICK:
            SDL_QuitSubSystem(SDL_INIT_JOYSTICK)
        SDL_Quit()
        LOG.debug(f'{sys.argv[0]} exiting cleanly')
        sys.exit(0)

    debug_flag, hex_chars = parse_arguments(sys.argv)
    if debug_flag:
        LOG.setLevel(logging.DEBUG)

    signal.signal(signal.SIGINT, signal_handler)
    signal.signal(signal.SIGTERM, signal_handler)
    # daemonize after signal handlers are registered
    if os.fork():
        os._exit(0)

    try:
        tty_fd = os.open('/dev/tty', os.O_WRONLY)
    except IOError:
        LOG.error('Unable to open /dev/tty', file=sys.stderr)
        sys.exit(1)

    curses.setupterm()
    mapped_chars = [
        get_hex_chars(code) for code in hex_chars
        if get_hex_chars(code) is not None
    ]

    def_buttons = [
        'left', 'right', 'up', 'down', 'a', 'b', 'x', 'y', 'pageup', 'pagedown'
    ]
    joy_map = {}
    # add for each button the mapped keycode, based on the arguments received
    for i, btn in enumerate(def_buttons):
        if i < len(mapped_chars):
            joy_map[btn] = mapped_chars[i]

    menu_swap = ra_btn_swap_config()
    # if button A is <enter> and menu_swap_ok_cancel_buttons is true, swap buttons A and B functions
    if menu_swap \
            and 'a' in joy_map.keys() \
            and 'b' in joy_map.keys() \
            and joy_map['a'] == '\n':
        joy_map['a'] = joy_map['b']
        joy_map['b'] = '\n'

    # tell SDL that we don't want to grab and lock the keyboard
    os.environ['SDL_INPUT_LINUX_KEEP_KBD'] = '1'

    # disable the HIDAPI joystick driver in SDL
    if not (SDL_USE_HIDAPI):
        os.environ['SDL_JOYSTICK_HIDAPI'] = '0'

    # tell SDL to not add any signal handlers for TERM/INT
    os.environ['SDL_NO_SIGNAL_HANDLERS'] = '1'

    configs = get_all_ra_config(def_buttons)

    if SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO) < 0:
        LOG.error(f'Error in SDL_Init: {SDL_GetError()}')
        exit(2)

    if LOG.isEnabledFor(logging.DEBUG):
        sdl_ver = version.SDL_version()
        version.SDL_GetVersion(byref(sdl_ver))
        wrapper_version = '.'.join(str(i) for i in version_info)
        LOG.debug(
            f'Using SDL Version {sdl_ver.major}.{sdl_ver.minor}.{sdl_ver.patch}, PySDL2 version {wrapper_version}'
        )

    if joystick.SDL_NumJoysticks() < 1:
        LOG.debug(f'No available joystick devices found on startup')

    event_loop(configs, joy_map, tty_fd)

    SDL_QuitSubSystem(SDL_INIT_JOYSTICK)
    SDL_Quit()
    return 0
コード例 #22
0
 def tearDownClass(cls):
     SDL_QuitSubSystem(SDL_INIT_VIDEO)
     SDL_Quit()
コード例 #23
0
 def test_SDL_GetNumAudioDrivers(self):
     if SDL_InitSubSystem(SDL_INIT_AUDIO) != 0:
         self.skipTest('Audio subsystem not supported')
     count = audio.SDL_GetNumAudioDrivers()
     self.assertGreaterEqual(count, 1)
     SDL_QuitSubSystem(SDL_INIT_AUDIO)
コード例 #24
0
 def teardown_class(cls):
     SDL_QuitSubSystem(SDL_INIT_VIDEO)
     SDL_Quit()
コード例 #25
0
ファイル: hints_test.py プロジェクト: Kebirs/Work_hours_app
 def teardown_method(self):
     SDL_QuitSubSystem(SDL_INIT_EVERYTHING)
     SDL_Quit()
コード例 #26
0
 def test_SDL_INIT_HAPTIC(self):
     ret = SDL_Init(SDL_INIT_HAPTIC)
     self.assertEqual(ret, 0, SDL_GetError())
     ret = SDL_WasInit(SDL_INIT_HAPTIC)
     self.assertEqual(ret, SDL_INIT_HAPTIC)
     SDL_QuitSubSystem(SDL_INIT_HAPTIC)
コード例 #27
0
 def tearDown(self):
     SDL_QuitSubSystem(SDL_INIT_EVERYTHING)
     SDL_Quit()
コード例 #28
0
ファイル: timer_test.py プロジェクト: josewtf01/py-sdl2
 def tearDownClass(cls):
     SDL_QuitSubSystem(SDL_INIT_TIMER)
     SDL_Quit()
コード例 #29
0
from sdl2 import SDL_GetNumDisplayModes, SDL_DisplayMode, SDL_GetDisplayMode

from m64py.core.defs import *
from m64py.frontend.log import log

try:
    if not SDL_WasInit(SDL_INIT_VIDEO):
        SDL_InitSubSystem(SDL_INIT_VIDEO)
    MODES = []
    display = SDL_DisplayMode()
    for mode in range(SDL_GetNumDisplayModes(0)):
        ret = SDL_GetDisplayMode(0, mode, ctypes.byref(display))
        if (display.w, display.h) not in MODES:
            MODES.append((display.w, display.h))
    if SDL_WasInit(SDL_INIT_VIDEO):
        SDL_QuitSubSystem(SDL_INIT_VIDEO)
except Exception as err:
    log.warn(str(err))


class Video():
    """Mupen64Plus video extension"""
    def __init__(self):
        """Constructor."""
        self.parent = None
        self.widget = None
        self.glformat = None
        self.glcontext = None
        self.major = None
        self.minor = None
コード例 #30
0
 def tearDownClass(cls):
     SDL_QuitSubSystem(SDL_INIT_EVERYTHING)
     SDL_Quit()