Skip to content

Commit

Permalink
Merge pull request #52 from SnuffSocket/focus-branch
Browse files Browse the repository at this point in the history
Feat: Lower CPU usage when not in focus
  • Loading branch information
RamesTheGeneric authored Oct 26, 2024
2 parents b999e3d + 290fcdc commit 5eef764
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 2 deletions.
1 change: 1 addition & 0 deletions BabbleApp/Locale/English/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"general.recalibrate": "Recalibrate Address",
"general.recalibrateTooltip": "OSC address we use for recalibrating",
"general.uvcCameraSettings": "UVC Camera Settings",
"general.windowFocus": "Interface Paused",
"general.useRedChannel": "Use Red Channel",
"general.useRedChannelTooltip": "Uses only the red channel for Omnicept capture",
"general.xResolution": "X Resolution",
Expand Down
1 change: 1 addition & 0 deletions BabbleApp/Locale/OwO/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"general.recalibrate": "Wecawibwate Addwess :3",
"general.recalibrateTooltip": "OSC addwess we use fow wecawibwating OwO",
"general.uvcCameraSettings": "UVC Camewa Settings UwU",
"general.windowFocus": "Intwaface Pawused",
"general.useRedChannel": "Use Wed Channew >w<",
"general.useRedChannelTooltip": "Uses onwy the wed channew fow Omnicept captuwe nya~",
"general.xResolution": "X Wesowution :3",
Expand Down
1 change: 1 addition & 0 deletions BabbleApp/Locale/Pirate Speak/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"general.recalibrate": "Recalibrate Yer Bearings",
"general.recalibrateTooltip": "OSC bearings we use fer recalibratin'",
"general.uvcCameraSettings": "Spyglass Settings",
"general.windowFocus": "Interfayce Be Paused",
"general.useRedChannel": "Use th' Red Channel",
"general.useRedChannelTooltip": "Uses only th' red channel fer Omnicept plunderin'",
"general.xResolution": "X Marks th' Spot",
Expand Down
2 changes: 1 addition & 1 deletion BabbleApp/babble_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def output_images_and_update(self, output_information: CamInfo):
self.image_queue_outgoing.put((image_stack, output_information))
if self.image_queue_outgoing.qsize() > 1:
self.image_queue_outgoing.get()

self.previous_image = self.current_image
self.previous_rotation = self.config.rotation_angle

Expand Down
25 changes: 24 additions & 1 deletion BabbleApp/babbleapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ def main():
background_color=bg_color_highlight,
),
],
# Keep at bottom!
[sg.Text(f'- - - {lang._instance.get_string("general.windowFocus")} - - -', key="-WINFOCUS-", background_color=bg_color_clear, text_color="#F0F0F0", justification="center", expand_x=True, visible=False)],
]

if config.cam_display_id in [Tab.CAM]:
Expand All @@ -229,10 +231,12 @@ def main():
f"{appversion}", layout, icon="Images/logo.ico", background_color=bg_color_clear
)

tint = 33
fs = False
# GUI Render loop
while True:
# First off, check for any events from the GUI
event, values = window.read(timeout=30)
event, values = window.read(timeout=tint)

# If we're in either mode and someone hits q, quit immediately
if event in ("Exit", sg.WIN_CLOSED):
Expand All @@ -258,6 +262,25 @@ def main():
)
return

try:
# If window isn't in focus increase timeout and stop loop early
if window.TKroot.focus_get():
if fs:
fs = False
tint = 33
window["-WINFOCUS-"].update(visible=False)
window["-WINFOCUS-"].hide_row()
window.refresh()
else:
if not fs:
fs = True
tint = 100
window["-WINFOCUS-"].update(visible=True)
window["-WINFOCUS-"].unhide_row()
continue
except KeyError:
pass

if values[CAM_RADIO_NAME] and config.cam_display_id != Tab.CAM:
cams[0].start()
settings[0].stop()
Expand Down

0 comments on commit 5eef764

Please sign in to comment.