mirror of
https://github.com/EyeTrackVR/EyeTrackVR.git
synced 2025-11-04 14:39:42 +08:00
Feat: Set timer resolution (1ms)
This commit is contained in:
parent
a291b2fc4f
commit
fd40ffedd3
@ -29,6 +29,7 @@ import PySimpleGUI as sg
|
|||||||
import queue
|
import queue
|
||||||
import requests
|
import requests
|
||||||
import threading
|
import threading
|
||||||
|
from ctypes import windll, c_int
|
||||||
from camera_widget import CameraWidget
|
from camera_widget import CameraWidget
|
||||||
from config import EyeTrackConfig
|
from config import EyeTrackConfig
|
||||||
from eye import EyeId
|
from eye import EyeId
|
||||||
@ -48,6 +49,13 @@ if is_nt:
|
|||||||
from winotify import Notification
|
from winotify import Notification
|
||||||
os.system("color") # init ANSI color
|
os.system("color") # init ANSI color
|
||||||
|
|
||||||
|
winmm = None
|
||||||
|
try:
|
||||||
|
winmm = windll.winmm
|
||||||
|
except OSError:
|
||||||
|
#print("[WARN] Failed to load winmm.dll")
|
||||||
|
pass
|
||||||
|
|
||||||
# Random environment variable to speed up webcam opening on the MSMF backend.
|
# Random environment variable to speed up webcam opening on the MSMF backend.
|
||||||
# https://github.com/opencv/opencv/issues/17687
|
# https://github.com/opencv/opencv/issues/17687
|
||||||
os.environ["OPENCV_VIDEOIO_MSMF_ENABLE_HW_TRANSFORMS"] = "0"
|
os.environ["OPENCV_VIDEOIO_MSMF_ENABLE_HW_TRANSFORMS"] = "0"
|
||||||
@ -202,7 +210,15 @@ def create_window(config, settings, eyes):
|
|||||||
icon=resource_path("Images/logo.ico"),
|
icon=resource_path("Images/logo.ico"),
|
||||||
background_color="#292929")
|
background_color="#292929")
|
||||||
|
|
||||||
|
def timerResolution(toggle):
|
||||||
|
if winmm != None:
|
||||||
|
if toggle:
|
||||||
|
rc = c_int(winmm.timeBeginPeriod(1))
|
||||||
|
if rc.value != 0:
|
||||||
|
# TIMEERR_NOCANDO = 97
|
||||||
|
print(f"[WARN] Failed to set timer resolution: {rc.value}")
|
||||||
|
else:
|
||||||
|
winmm.timeEndPeriod(1)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Get Configuration
|
# Get Configuration
|
||||||
@ -245,6 +261,8 @@ def main():
|
|||||||
except:
|
except:
|
||||||
print("\033[91m[INFO] Could not check for updates. Please try again later.\033[0m")
|
print("\033[91m[INFO] Could not check for updates. Please try again later.\033[0m")
|
||||||
|
|
||||||
|
timerResolution(True)
|
||||||
|
|
||||||
osc_queue: queue.Queue[OSCMessage] = queue.Queue(maxsize=10)
|
osc_queue: queue.Queue[OSCMessage] = queue.Queue(maxsize=10)
|
||||||
|
|
||||||
eyes = [
|
eyes = [
|
||||||
@ -323,6 +341,7 @@ def main():
|
|||||||
eye.stop()
|
eye.stop()
|
||||||
cancellation_event.set()
|
cancellation_event.set()
|
||||||
osc_manager.shutdown()
|
osc_manager.shutdown()
|
||||||
|
timerResolution(False)
|
||||||
print("\033[94m[INFO] Exiting EyeTrackApp\033[0m")
|
print("\033[94m[INFO] Exiting EyeTrackApp\033[0m")
|
||||||
window.close()
|
window.close()
|
||||||
os._exit(0) # I do not like this, but for now this fixes app hang on close
|
os._exit(0) # I do not like this, but for now this fixes app hang on close
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user