From d81b7bfb518513ab7da2180e9530d7cb5b18b873 Mon Sep 17 00:00:00 2001 From: ske087 Date: Fri, 22 Aug 2025 12:15:37 +0100 Subject: [PATCH] Enhance settings screen logic: auto-resume playback when closed, fix style.map syntax --- tkinter_app/resources/log.txt | 89 ++++++++++++++++++ .../tkinter_simple_player.cpython-311.pyc | Bin 115854 -> 116358 bytes tkinter_app/src/tkinter_simple_player.py | 15 ++- 3 files changed, 102 insertions(+), 2 deletions(-) diff --git a/tkinter_app/resources/log.txt b/tkinter_app/resources/log.txt index 5652d5b..a2b40a6 100644 --- a/tkinter_app/resources/log.txt +++ b/tkinter_app/resources/log.txt @@ -1261,3 +1261,92 @@ [INFO] [SignageApp] Playing media: SampleVideo_1280x720_1mb.mp4 from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4 2025-08-22 11:11:45 - STARTED: SampleVideo_1280x720_1mb.mp4 [INFO] [SignageApp] Starting VLC for video: /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/SampleVideo_1280x720_1mb.mp4 +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880 +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] python_functions: Starting load_local_playlist function. +[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5} +[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully. +[INFO] [SignageApp] Found fallback playlist with 3 items +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880 +[INFO] [SignageApp] Attempting to connect to server... +[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'} +[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522 +[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist +[INFO] [SignageApp] Loaded fallback playlist with 3 items +[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +2025-08-22 11:26:00 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0)) +[INFO] [SignageApp] Starting Simple Tkinter Media Player +[INFO] [SignageApp] Media paused +[INFO] [SignageApp] Loading configuration in enhanced settings window +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Config loaded: {'screen_orientation': 'Landscape', 'screen_name': 'tv-terasa', 'quickconnect_key': '8887779', 'server_ip': 'digi-signage.moto-adv.com', 'port': '8880', 'screen_w': '1920', 'screen_h': '1080', 'playlist_version': 5} +[INFO] [SignageApp] Configuration values loaded successfully in enhanced settings +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Application exit requested +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880 +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] python_functions: Starting load_local_playlist function. +[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5} +[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully. +[INFO] [SignageApp] Found fallback playlist with 3 items +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880 +[INFO] [SignageApp] Attempting to connect to server... +[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'} +[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522 +[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist +[INFO] [SignageApp] Loaded fallback playlist with 3 items +[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +2025-08-22 12:01:27 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0)) +[INFO] [SignageApp] Starting Simple Tkinter Media Player +[INFO] [SignageApp] Media paused +[INFO] [SignageApp] Loading configuration in enhanced settings window +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Config loaded: {'screen_orientation': 'Landscape', 'screen_name': 'tv-terasa', 'quickconnect_key': '8887779', 'server_ip': 'digi-signage.moto-adv.com', 'port': '8880', 'screen_w': '1920', 'screen_h': '1080', 'playlist_version': 5} +[INFO] [SignageApp] Configuration values loaded successfully in enhanced settings +[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +2025-08-22 12:02:45 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1080, Mode: fit, Offset: (96, 0)) +[INFO] [SignageApp] Media resumed +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Application exit requested +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] python_functions: Configuration loaded: server=digi-signage.moto-adv.com, host=tv-terasa, quick=8887779, port=8880 +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] python_functions: Starting load_local_playlist function. +[INFO] [SignageApp] python_functions: Local playlist loaded: {'playlist': [{'file_name': '1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'url': 'static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg', 'duration': 20}, {'file_name': 'wp2782770-1846651530.jpg', 'url': 'static/resurse/wp2782770-1846651530.jpg', 'duration': 15}, {'file_name': 'SampleVideo_1280x720_1mb.mp4', 'url': 'static/resurse/SampleVideo_1280x720_1mb.mp4', 'duration': 5}], 'version': 5} +[INFO] [SignageApp] python_functions: Finished load_local_playlist function successfully. +[INFO] [SignageApp] Found fallback playlist with 3 items +[INFO] [SignageApp] python_functions: Starting load_config function. +[INFO] [SignageApp] python_functions: Configuration file loaded successfully. +[INFO] [SignageApp] Initializing with settings: server=digi-signage.moto-adv.com, host=tv-terasa, port=8880 +[INFO] [SignageApp] Attempting to connect to server... +[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com:8880/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'} +[ERROR] [SignageApp] Failed to fetch playlist. Status Code: 522 +[WARNING] [SignageApp] Server returned empty playlist, falling back to local playlist +[INFO] [SignageApp] Loaded fallback playlist with 3 items +[INFO] [SignageApp] Playing media: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +2025-08-22 12:14:24 - STARTED: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg +[INFO] [SignageApp] Successfully displayed image: 1307306470-nature_wallpaper_hd_hd_nature_3-3828209637.jpg (Original: (1600, 1000), Screen: 1920x1018, Mode: fit, Offset: (146, 0)) +[INFO] [SignageApp] Starting Simple Tkinter Media Player +[INFO] [SignageApp] Playing media: wp2782770-1846651530.jpg from /home/pi/Desktop/signage-player/tkinter_app/src/static/resurse/wp2782770-1846651530.jpg +2025-08-22 12:14:45 - STARTED: wp2782770-1846651530.jpg +[INFO] [SignageApp] Successfully displayed image: wp2782770-1846651530.jpg (Original: (3840, 2400), Screen: 1920x1018, Mode: fit, Offset: (146, 0)) +[INFO] [SignageApp] Application exit requested diff --git a/tkinter_app/src/__pycache__/tkinter_simple_player.cpython-311.pyc b/tkinter_app/src/__pycache__/tkinter_simple_player.cpython-311.pyc index 7c6c5fb0454acaba207cafb986c321332d3c6798..ee4aa56adb78fbca9cfba107e71e78d4427aa10c 100644 GIT binary patch delta 6271 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 delta 5774 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", on_press) button.bind("", on_release) button.bind("", on_enter) @@ -772,8 +772,19 @@ class SimpleMediaPlayerApp: if hasattr(self, 'settings_window') and self.settings_window and self.settings_window.winfo_exists(): self.settings_window.lift() return - + + # Pause media playback when opening settings + if not self.is_paused: + self.toggle_play_pause() + self.settings_window = SettingsWindow(self.root, self) + + # Add a callback to resume playback when the settings window is closed + def on_settings_close(): + if self.is_paused: + self.toggle_play_pause() + + self.settings_window.protocol("WM_DELETE_WINDOW", on_settings_close) def show_exit_dialog(self): """Show modern password-protected exit dialog"""