changed dante timecode fps to 25

This commit is contained in:
2025-12-03 12:43:35 +02:00
parent 98780c7aae
commit 22566b6767
5 changed files with 148 additions and 42 deletions

View File

@@ -1,47 +1,153 @@
@echo off # plugin_prelaunch.py - With connection check
REM --------------------------------------------- from switchboard.devices.device_base import Device, DeviceStatus
REM Safe Switchboard External Command: Git Pull from switchboard.devices.device_widget_base import DeviceWidget
REM Discards local changes, pulls latest from current branch from switchboard.switchboard_logging import LOGGER
REM Safe to keep inside the Git repo from switchboard.config import IntSetting, StringSetting
REM ---------------------------------------------
REM Change this to your project repo path (can be inside repo) from PySide6 import QtCore
set REPO_PATH=D:\Projects\DEV_TheStudio_Plugin
REM Name of this batch file
set BATCH_NAME=%~nx0
echo ------------------------------------------------ class DevicePreLaunch(Device):
echo [%COMPUTERNAME%] Starting safe Git pull on %REPO_PATH% """PreLaunch device - executes batch file on connect"""
echo ------------------------------------------------
csettings = {
'batch_file': StringSetting(
attr_name="batch_file",
nice_name="Batch File Path",
value="D:\\Projects\\DEV_TheStudio_Plugin\\Source\\git_management.bat",
tool_tip="Full path to the batch file on the remote machine",
category="PreLaunch Settings",
),
'port': IntSetting(
attr_name="port",
nice_name="Listener Port",
value=2980,
tool_tip="Port of SwitchboardListener",
category="Network Settings",
),
}
def __init__(self, name, address, **kwargs):
super().__init__(name, address, **kwargs)
LOGGER.info(f"PreLaunch device '{name}' created")
def device_settings(self):
return super().device_settings()
def connect(self):
"""Called when connect button clicked"""
LOGGER.info(f">>> {self.name}: connect() called!")
# First, check if listener is reachable
LOGGER.info(f">>> {self.name}: Checking listener connection...")
# Try a simple connectivity test
try:
# Send a simple test message
test_message = {'command': 'state'}
success, response = self.unreal_client.send_message(test_message)
if not success:
LOGGER.error(f">>> {self.name}: Cannot connect to listener!")
self.device_qt_handler.signal_device_connect_failed.emit(self)
return
LOGGER.info(f">>> {self.name}: Listener responded: {response}")
except Exception as e:
LOGGER.error(f">>> {self.name}: Connection test failed: {e}")
self.device_qt_handler.signal_device_connect_failed.emit(self)
return
# Set status to READY
self.status = DeviceStatus.READY
LOGGER.info(f">>> {self.name}: Status set to READY, executing batch file...")
# Execute batch file
self.execute_batch_file()
def disconnect(self):
"""Called when disconnect button clicked"""
LOGGER.info(f">>> {self.name}: disconnect() called!")
self.status = DeviceStatus.DISCONNECTED
def execute_batch_file(self):
"""Execute the batch file"""
batch_file = self.batch_file.get_value()
if not batch_file:
LOGGER.warning(f"  {self.name}: No batch file configured")
return False
LOGGER.info(f">>> {self.name}: ========== EXECUTING ==========")
LOGGER.info(f">>> {self.name}: File: {batch_file}")
LOGGER.info(f">>> {self.name}: Address: {self.address}")
LOGGER.info(f">>> {self.name}: Port: {self.port.get_value()}")
try:
message = {
'command': 'start',
'bTryKill': False,
'bUpdateWorkingDir': False,
'caller': self.name,
'name': 'cmd.exe',
'args': f'/c "{batch_file}"',
'working_dir': '',
}
LOGGER.info(f">>> {self.name}: Sending message...")
success, msg = self.unreal_client.send_message(message)
if success:
LOGGER.info(f">>>  {self.name}: SUCCESS!")
LOGGER.info(f">>> Response: {msg}")
return True
else:
LOGGER.error(f">>> L {self.name}: Send failed!")
return False
except Exception as e:
LOGGER.error(f">>> L {self.name}: ERROR: {e}")
import traceback
LOGGER.error(traceback.format_exc())
return False
REM Navigate to the repo
cd /d "%REPO_PATH%"
REM Ensure Git is installed class DeviceWidgetPreLaunch(DeviceWidget):
where git >nul 2>&1 """Widget for PreLaunch device"""
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: Git is not installed or not in PATH def __init__(self, name, device_hash, address, icons, parent=None):
exit /b 1 super().__init__(name, device_hash, address, icons, parent=parent)
) LOGGER.info(f"PreLaunch widget created for {name}")
REM Get current branch def _add_control_buttons(self):
for /f "tokens=*" %%i in ('git rev-parse --abbrev-ref HEAD') do set CURRENT_BRANCH=%%i """Add connect button"""
echo Current branch: %CURRENT_BRANCH% super()._add_control_buttons()
REM Discard any local changes (staged and unstaged) CONTROL_BUTTON_ICON_SIZE = QtCore.QSize(21, 21)
git reset --hard
self.connect_button = self.add_control_button(
REM Clean untracked files and directories, excluding this batch file icon_size=CONTROL_BUTTON_ICON_SIZE,
git clean -fdX -e "%BATCH_NAME%" checkable=True,
tool_tip='Connect and execute batch file',
REM Pull latest changes from origin for current branch hover_focus=False,
git pull origin %CURRENT_BRANCH% name='connect')
REM Show status self.connect_button.clicked.connect(self.connect_button_clicked)
git status
def connect_button_clicked(self):
echo ------------------------------------------------ """Handle connect button click"""
echo [%COMPUTERNAME%] Git pull complete if self.connect_button.isChecked():
echo ------------------------------------------------ self._connect()
pause else:
self._disconnect()
def _connect(self):
"""Connect"""
self.connect_button.setChecked(True)
self.signal_device_widget_connect.emit(self)
def _disconnect(self):
"""Disconnect"""
self.connect_button.setChecked(False)
self.signal_device_widget_disconnect.emit(self)