From adf3d864012e0663f5259bbfb73d318c6e712369 Mon Sep 17 00:00:00 2001 From: PallasNeko <124042774+PallasNeko@users.noreply.github.com> Date: Sun, 12 Feb 2023 23:36:03 +0900 Subject: [PATCH] Added code to determine if the OS is Win or Linux. Changed so that if Linux, PlaySound does nothing when executed. --- EyeTrackApp/camera_widget.py | 6 ++---- EyeTrackApp/eye_processor.py | 7 ++----- EyeTrackApp/eyetrackapp.py | 8 +++++--- EyeTrackApp/osc.py | 6 ++---- EyeTrackApp/osc_calibrate_filter.py | 9 +++------ EyeTrackApp/utils/misc_utils.py | 14 +++++++++++++- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/EyeTrackApp/camera_widget.py b/EyeTrackApp/camera_widget.py index 109794b..06376c6 100644 --- a/EyeTrackApp/camera_widget.py +++ b/EyeTrackApp/camera_widget.py @@ -9,8 +9,7 @@ from camera import Camera, CameraState from osc import EyeId import cv2 import sys -if sys.platform.startswith("win"): - from winsound import PlaySound, SND_FILENAME, SND_ASYNC +from utils.misc_utils import PlaySound,SND_FILENAME,SND_ASYNC import traceback import numpy as np @@ -243,8 +242,7 @@ class CameraWidget: if event == self.gui_restart_calibration: self.ransac.calibration_frame_counter = 300 - if sys.platform.startswith("win"): - PlaySound('Audio/start.wav', SND_FILENAME | SND_ASYNC) + PlaySound('Audio/start.wav', SND_FILENAME | SND_ASYNC) if event == self.gui_recenter_eyes: self.settings.gui_recenter_eyes = True diff --git a/EyeTrackApp/eye_processor.py b/EyeTrackApp/eye_processor.py index 5d2633a..b5be316 100644 --- a/EyeTrackApp/eye_processor.py +++ b/EyeTrackApp/eye_processor.py @@ -46,9 +46,7 @@ import numpy as np import cv2 from enum import Enum from one_euro_filter import OneEuroFilter -if sys.platform.startswith("win"): - from winsound import PlaySound, SND_FILENAME, SND_ASYNC - +from utils.misc_utils import PlaySound, SND_FILENAME, SND_ASYNC import importlib from osc_calibrate_filter import * from haar_surround_feature import External_Run_HSF @@ -93,8 +91,7 @@ def run_once(f): async def delayed_setting_change(setting, value): await asyncio.sleep(5) setting = value - if sys.platform.startswith("win"): - PlaySound('Audio/compleated.wav', SND_FILENAME | SND_ASYNC) + PlaySound('Audio/compleated.wav', SND_FILENAME | SND_ASYNC) diff --git a/EyeTrackApp/eyetrackapp.py b/EyeTrackApp/eyetrackapp.py index c2c2ed5..60690c3 100644 --- a/EyeTrackApp/eyetrackapp.py +++ b/EyeTrackApp/eyetrackapp.py @@ -1,8 +1,10 @@ import os +from utils.misc_utils import is_nt from osc import VRChatOSCReceiver, VRChatOSC, EyeId from config import EyeTrackConfig from camera_widget import CameraWidget from settings_widget import SettingsWidget + import queue import threading import PySimpleGUI as sg @@ -11,8 +13,7 @@ import urllib.request import webbrowser -if sys.platform.startswith("win"): - from win10toast_click import ToastNotifier + # Random environment variable to speed up webcam opening on the MSMF backend. # https://github.com/opencv/opencv/issues/17687 @@ -68,7 +69,8 @@ def main(): else: print( f"\033[93m[INFO] You have app version [{appversion}] installed. Please update to [{latestversion}] for the newest features.\033[0m") - if sys.platform.startswith("win"): + if is_nt: + from win10toast_click import ToastNotifier toaster = ToastNotifier() toaster.show_toast( # show windows toast "EyeTrackVR has an update.", diff --git a/EyeTrackApp/osc.py b/EyeTrackApp/osc.py index 5bd639e..b8d7f74 100644 --- a/EyeTrackApp/osc.py +++ b/EyeTrackApp/osc.py @@ -3,8 +3,7 @@ from pythonosc import udp_client from pythonosc import osc_server from pythonosc import dispatcher import sys -if sys.platform.startswith("win"): - from winsound import PlaySound, SND_FILENAME, SND_ASYNC +from utils.misc_utils import PlaySound,SND_FILENAME,SND_ASYNC import queue import threading from enum import IntEnum @@ -179,8 +178,7 @@ class VRChatOSCReceiver: if osc_value: for eye in self.eyes: eye.ransac.calibration_frame_counter = 300 - if sys.platform.startswith("win"): - PlaySound('Audio/start.wav', SND_FILENAME | SND_ASYNC) + PlaySound('Audio/start.wav', SND_FILENAME | SND_ASYNC) def run(self): diff --git a/EyeTrackApp/osc_calibrate_filter.py b/EyeTrackApp/osc_calibrate_filter.py index eb76b0a..c952b54 100644 --- a/EyeTrackApp/osc_calibrate_filter.py +++ b/EyeTrackApp/osc_calibrate_filter.py @@ -1,6 +1,5 @@ import sys -if sys.platform.startswith("win"): - from winsound import PlaySound, SND_FILENAME, SND_ASYNC +from utils.misc_utils import PlaySound, SND_FILENAME, SND_ASYNC import numpy as np def cal_osc(self, cx, cy): @@ -12,8 +11,7 @@ def cal_osc(self, cx, cy): self.calibration_frame_counter = None self.xoff = cx self.yoff = cy - if sys.platform.startswith("win"): - PlaySound('Audio/compleated.wav', SND_FILENAME | SND_ASYNC) + PlaySound('Audio/compleated.wav', SND_FILENAME | SND_ASYNC) elif self.calibration_frame_counter != None: self.settings.gui_recenter_eyes = False if cx > self.xmax: @@ -30,8 +28,7 @@ def cal_osc(self, cx, cy): self.yoff = cy if self.ts == 0: self.settings.gui_recenter_eyes = False - if sys.platform.startswith("win"): - PlaySound('Audio/compleated.wav', SND_FILENAME | SND_ASYNC) + PlaySound('Audio/compleated.wav', SND_FILENAME | SND_ASYNC) else: self.ts = self.ts - 1 else: diff --git a/EyeTrackApp/utils/misc_utils.py b/EyeTrackApp/utils/misc_utils.py index 13931a7..0d99d66 100644 --- a/EyeTrackApp/utils/misc_utils.py +++ b/EyeTrackApp/utils/misc_utils.py @@ -1,2 +1,14 @@ +import os +is_nt = True if os.name == "nt" else False + +def PlaySound(*args, **kwargs): pass +SND_FILENAME = SND_ASYNC = 1 + +if is_nt: + import winsound + PlaySound = winsound.PlaySound + SND_FILENAME = winsound.SND_FILENAME + SND_ASYNC = winsound.SND_ASYNC + def clamp(x, low, high): - return max(low, min(x, high)) \ No newline at end of file + return max(low, min(x, high))