19 Commits

Author SHA1 Message Date
10a2e23c19 increased ndisplay swap barrier 2025-12-12 10:37:19 +02:00
6b3b52966d increased ndisplay swap barrier 2025-12-12 10:34:41 +02:00
cad01ca11d added timecode frame delay 2025-12-12 10:18:15 +02:00
22566b6767 changed dante timecode fps to 25 2025-12-03 12:43:35 +02:00
98780c7aae final level snapshots 2025-12-03 09:53:34 +02:00
0f9d0455ef saved level snapshots 2025-12-02 18:44:57 +02:00
aa350d3c44 saved level snapshots 2025-12-02 18:23:25 +02:00
4fbd6d0538 take 2 final level snapshot 2025-12-02 17:14:36 +02:00
82f9d06c77 deleted old remote settings 2025-12-02 17:07:09 +02:00
92ab98604a take 2 level snapshot 2025-12-02 16:48:28 +02:00
7577315b80 removed media player 2025-12-02 12:04:24 +02:00
fa12826333 added sound component to media plate 2025-12-02 11:54:34 +02:00
13293bf32f enabled audio in ndisplay 2025-12-02 11:26:58 +02:00
c43c96dbf1 set startup level 2025-12-01 11:56:59 +02:00
686b148d3f readded media plate location to remote 2025-12-01 11:55:30 +02:00
64b69b8ede Added colour grading settings to remote web interface 2025-12-01 11:26:03 +02:00
a283fdeff7 Added remote web interface 2025-12-01 10:43:58 +02:00
b3ed8e9223 Adjusted inner frustum settings 2025-12-01 10:07:05 +02:00
865ddf77aa changed frame rate to 25 2025-12-01 09:40:58 +02:00
42 changed files with 152 additions and 44 deletions

View File

@@ -2,7 +2,7 @@
[/Script/EngineSettings.GameMapsSettings] [/Script/EngineSettings.GameMapsSettings]
GameDefaultMap=/Engine/Maps/Templates/OpenWorld GameDefaultMap=/Engine/Maps/Templates/OpenWorld
EditorStartupMap=/Game/Levels/Lidinis360/Lidinis360.Lidinis360 EditorStartupMap=/Game/Levels/JoakemVideoClip/Joakem.Joakem
[/Script/Engine.RendererSettings] [/Script/Engine.RendererSettings]
r.AllowStaticLighting=False r.AllowStaticLighting=False
@@ -84,10 +84,12 @@ FontDPI=72
+ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/DEV_TheStudio") +ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/DEV_TheStudio")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/DEV_TheStudio") +ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/DEV_TheStudio")
bUseFixedFrameRate=True bUseFixedFrameRate=True
FixedFrameRate=24.000000 FixedFrameRate=25.000000
CustomTimeStepClassName=/Game/TheStudio/Media/Sync/BlackMagicGencode.BlackMagicGencode_C CustomTimeStepClassName=/Game/TheStudio/Media/Sync/BlackMagicGencode.BlackMagicGencode_C
TimecodeProviderClassName=/Game/TheStudio/Media/Sync/DanteAudioTimecodeProvider.DanteAudioTimecodeProvider_C TimecodeProviderClassName=/Game/TheStudio/Media/Sync/DanteAudioTimecodeProvider.DanteAudioTimecodeProvider_C
NearClipPlane=0.100000 NearClipPlane=0.100000
GenerateDefaultTimecodeFrameRate=(Numerator=25,Denominator=1)
GenerateDefaultTimecodeFrameDelay=2.000000
[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] [/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
bEnablePlugin=True bEnablePlugin=True

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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)