mirror of
https://github.com/mupen64plus/mupen64plus-ui-python.git
synced 2025-04-02 10:51:53 -04:00
Use SDL_EnableScreenSaver/SDL_DisableScreenSaver, remove screensaver.py
This commit is contained in:
parent
03e79fdc4b
commit
01f7edc94f
2 changed files with 5 additions and 106 deletions
|
@ -18,12 +18,12 @@ import os
|
|||
import shutil
|
||||
|
||||
from PyQt5.QtCore import QThread, QTimer
|
||||
from sdl2 import SDL_EnableScreenSaver, SDL_DisableScreenSaver
|
||||
|
||||
from m64py.utils import sl
|
||||
from m64py.core.defs import *
|
||||
from m64py.frontend.log import log
|
||||
from m64py.loader import find_library, unload_library
|
||||
from m64py.screensaver import screensaver
|
||||
from m64py.core.core import Core
|
||||
from m64py.core.vidext import video
|
||||
from m64py.archive import Archive
|
||||
|
@ -180,7 +180,7 @@ class Worker(QThread):
|
|||
self.core.rom_get_settings()
|
||||
if bool(self.settings.get_int_safe(
|
||||
"disable_screensaver", 1)):
|
||||
screensaver.disable()
|
||||
SDL_DisableScreenSaver()
|
||||
self.parent.rom_opened.emit()
|
||||
self.parent.recent_files.add(self.filepath)
|
||||
|
||||
|
@ -189,7 +189,7 @@ class Worker(QThread):
|
|||
self.core.rom_close()
|
||||
if bool(self.settings.get_int_safe(
|
||||
"disable_screensaver", 1)):
|
||||
screensaver.enable()
|
||||
SDL_EnableScreenSaver()
|
||||
self.parent.rom_closed.emit()
|
||||
|
||||
def core_state_query(self, state):
|
||||
|
@ -306,11 +306,11 @@ class Worker(QThread):
|
|||
if self.state == M64EMU_RUNNING:
|
||||
self.core.pause()
|
||||
if bool(self.settings.get_int_safe("disable_screensaver", 1)):
|
||||
screensaver.enable()
|
||||
SDL_EnableScreenSaver()
|
||||
elif self.state == M64EMU_PAUSED:
|
||||
self.core.resume()
|
||||
if bool(self.settings.get_int_safe("disable_screensaver", 1)):
|
||||
screensaver.disable()
|
||||
SDL_DisableScreenSaver()
|
||||
self.toggle_actions()
|
||||
|
||||
def toggle_mute(self):
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Author: Milan Nikolic <gen2brain@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import sys
|
||||
import ctypes
|
||||
import subprocess
|
||||
|
||||
from m64py.frontend.log import log
|
||||
|
||||
|
||||
class LinuxScreenSaver:
|
||||
cookie = None
|
||||
screensaver = None
|
||||
|
||||
def __init__(self):
|
||||
try:
|
||||
import dbus
|
||||
self.screensaver = dbus.SessionBus().get_object(
|
||||
"org.freedesktop.ScreenSaver", "/ScreenSaver")
|
||||
except Exception as err:
|
||||
log.info("ScreenSaver not available: %s" % str(err))
|
||||
|
||||
def disable(self):
|
||||
if self.screensaver:
|
||||
try:
|
||||
self.cookie = self.screensaver.Inhibit(
|
||||
"M64Py", "Emulation started")
|
||||
log.info("ScreenSaver disabled")
|
||||
except Exception as err:
|
||||
log.exception(str(err))
|
||||
|
||||
def enable(self):
|
||||
if self.cookie:
|
||||
try:
|
||||
self.screensaver.UnInhibit(self.cookie)
|
||||
log.info("ScreenSaver enabled")
|
||||
self.cookie = None
|
||||
except Exception as err:
|
||||
log.exception(str(err))
|
||||
|
||||
|
||||
class DarwinScreenSaver:
|
||||
def __init__(self):
|
||||
try:
|
||||
self.idle_time = subprocess.check_output(
|
||||
"defaults -currentHost read com.apple.screensaver idleTime",
|
||||
shell=True).strip()
|
||||
except subprocess.CalledProcessError:
|
||||
self.idle_time = 0
|
||||
|
||||
def disable(self):
|
||||
subprocess.call(
|
||||
"defaults -currentHost write com.apple.screensaver idleTime 0",
|
||||
shell=True)
|
||||
log.info("ScreenSaver disabled")
|
||||
|
||||
def enable(self):
|
||||
subprocess.call(
|
||||
"defaults -currentHost write com.apple.screensaver idleTime %s" % self.idle_time,
|
||||
shell=True)
|
||||
log.info("ScreenSaver enabled")
|
||||
|
||||
|
||||
class WindowsScreenSaver:
|
||||
sys_param_info = None
|
||||
SPI_SETSCREENSAVEACTIVE = 17
|
||||
|
||||
def __init__(self):
|
||||
try:
|
||||
self.sys_param_info = ctypes.windll.user32.SystemParametersInfoA
|
||||
except Exception as err:
|
||||
log.info("ScreenSaver not available: %s" % str(err))
|
||||
|
||||
def disable(self):
|
||||
self.sys_param_info(self.SPI_SETSCREENSAVEACTIVE, False, None, 0)
|
||||
log.info("ScreenSaver disabled")
|
||||
|
||||
def enable(self):
|
||||
self.sys_param_info(self.SPI_SETSCREENSAVEACTIVE, True, None, 0)
|
||||
log.info("ScreenSaver enabled")
|
||||
|
||||
screensaver_class = {
|
||||
"darwin": DarwinScreenSaver,
|
||||
"cygwin": WindowsScreenSaver,
|
||||
"win32": WindowsScreenSaver
|
||||
}
|
||||
|
||||
screensaver = screensaver_class.get(sys.platform, LinuxScreenSaver)()
|
Loading…
Add table
Reference in a new issue