From 22566b6767a15cd147bd741dc91e4fbb0486a59a Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 3 Dec 2025 12:43:35 +0200 Subject: [PATCH] changed dante timecode fps to 25 --- .../Levels/ColorCalibration/OpenVPCal.umap | Bin 20703 -> 20703 bytes .../Media/ElectraFileMediaSource.uasset | Bin 6842 -> 5933 bytes .../ColorCalibrationPatterns.uasset | Bin 14299 -> 14032 bytes .../Sync/DanteAudioTimecodeProvider.uasset | Bin 6246 -> 6246 bytes Source/git_management.bat | 190 ++++++++++++++---- 5 files changed, 148 insertions(+), 42 deletions(-) diff --git a/Content/Levels/ColorCalibration/OpenVPCal.umap b/Content/Levels/ColorCalibration/OpenVPCal.umap index 96069c42b51e392c422ced410c58e7a67c1dbf05..2c772febe652660ca7c39d5b42a812120a8d77cd 100644 GIT binary patch delta 128 zcmcb=kn#RP#tmB;1W;bMtFYPDWzXb$f@f0s!v2 BEnxrv delta 65 zcmcb=kn#RP#tmB;1LYTrW*%2jRb(g z6nwgt=b9P4pBueV-8;q-hJ-3gi2}fe81VnH`%kq0VFLfqZLx>Bko{2M>;G$Li?MVB z#91$48W11WAWWRKR{#lZ5MwC{ctXARKfELm1qJ7y^O7r|yhW~`J9CjcZaZ$3qA3s` zIBxHoYWII_q1K`vN=X4Ohhb73rm4~}3wj0m#sHg({v<2t-dL|`OzjOYdQ86=oS{60 z&L25QM zyF5UR$y&4)7J}*zc}lN|CJZn+zC|Wl09Efy)4X-asjH>IpJTr24}&N8Y@j@>8`Y^+ zU>Q7bd5B4n_n*fhU&Hv;fe3Ek4VnQ@;^ZE)3xNC zRfSwIe)Y~X+C{2sRvgpu_227Ld_rRQ7QrJ^ru1yNJOkBiFq=FYKgNsS{39r85m6AE+ zSHaRI`IQdE_tRTl$Eb4=H7ERhFZ@GUv^e32v1uxwRKIn$SLGeC&qmCw@fe?(>fq~Z ztH^cN4YsJ0KZmR~$lB^RB_9Z=Oz$iEjV;ZKdOPUdI56HgSwNqHA=|h?=DBy;tY$vN z6vJwf9l0R*SJ`#HRZ+b?%-rqybTNEf?HqnVb;U3IXSKmCo;!?J`B14~gIN5xWsX2|K~-mhYTTc}5k%wuNz-2=&YY)P z^}E0mr`plU3tFks2V7Q9R1R1~R=eoHjEn*sUA~Bd$dyLcLXZgD0>1FP!qT$MU4GMn zk5)|R`eB}gD*Dv6Vt7ay9go;Dd6Np2RWXy8>*J7STD85_*A(raf{kT>Jv zCGUZ2SKxw`-*Q?E+Em_kIA)`9#Pp>1dO>dwBFQDRcNL<3;3Ty2&UM@mAfl5az$~B^ zk^)hu$8LwJnWQPyQeJMWT3rWF*K7GHw<7L?BaSZlmRf9)avM_p7kvbeb2!IDx84XS z+pgD)e7wC+%ojDoiLB$LalTe0juuXIfuDkpw^Ft=6E88G#3e=hL+vj_5F+qfD{($8 zDkTBS#aZ-SK&hW%eMIh?Z{Avt%C)XJV$;W8;yasnUi?+_{%q97u;s+lCr|UOW(YHv zve4(GHtnS@BshP^REsO8UTu({?e9FFQOqbYUE_1r?eZBtV4M>%2mFW0JRIhYjoF)wl$_Mq% ziqx9Sc=|YLep?Dfe+)5bCkiYY>gk_8Ymyf5x;cH|r{>f3D4Y1pe{3*}G}xCr9^N01 z&1=56Oh?#~^Aoe;w8*?=+(GCZC~X2)xxWkW?P>KLN(sG<;cl_(5Kh7Z8}|?idzx!>OSUab<$J3WXd_XNc%eDfsU49L%4c=OS844sOACD z)bYOzAAgsdXg)&HjqtIgSkVrmt8t;p3xY%>uTuYBPpZy}WP#CPYUTk)=j};Ih0yiH z#N``1o5*3b3U*!nq`~vw%(njER*?#{dAPxFVK-IeYK-%*qdVWZl3Lx;SzCY1-aV3` z)U&to9Kq#gQ$+g;0en-jJ(h&IHM}NA4u%2Z5&JV|4N(yCtuOj-9QA3e2PYOB%E*Si zIPrb2YBxl2n+}65--T1DV!gP%;n-c^yxeFtKCE+whX4JjF33Gv#qIECc&6&S<4mKB z!(=uw%;sf%Ncm_~Y9|?CBxIEEq@XU{AMxSl@2$Eqvl|H{@W-kB#_PvU-OXb%on(8I z`+E<+3Bv@fZEvk?IN8Vu6ROrqDQUwm5~mJDRb{xnGi%D!XC&p*MUi%IdkDCUBXfJy zOnSKOT(rZLpY792hO4ujvEn7HVay!YBgD!(w%)6q9dt=yJDd zo9K%zVcDmFh*vr56^6O}TP^LzbgJxx)Q)S>x&+r>a{oT(vL1Mi)pk)bkvcT&pxl1C zFf$R^|3KEXO^)Q`H(-_b@tEG_t|3vY-ZR~1mU!$pC%5j)FQTmVY|gE5LlVUiYo5ED|}VQs&K&l^j1 z`$%SygEf%T_JI+ft?`&P5kSOJkP>nMdGn;xrq{lY3!MoSv$NvZ*sG&AQo8gMvFk+& zGF5kU#)us4kLBg=Hfc|$4jZ=(?LjfUKAK7}q*|^`d8TCChkfrQuscf`cN^AEP?^n6 zhkh7>lG&$>10U82t+iF!cSR!9(!JGIbT3dEA|@A|(26JbwsV%wK9l{ZCK@x|nK32q z)I(1EX~QtSYSPyv9sq}9dOK?zG8XXYco}|d^8k!)dtYTsU1<5@nJ0v6vRk`=+hl{} zSu6B|>Zn5oO~RGMXx0G4sgmGPtH1HsX%PkPmlv^w{WY{&uBknW;vU8NYcytTiJ=kq zR(Ci{Z&Gi5(tus6#>xL?jKuY+ZcR2E*BKA|*R2kGmq?hIf3`aBVH`BrGl)IwTdn_>hXbGXG~Vw`h3&1N zVk514Qx31Z;}5#NaeD!nt5)p{PLCc-2Dcw=>@l1i+4NyJEDs+XDl<#GRpw&}TZGK7VRC72Q-^@uF|INvZfyb92UdElhHMXhET=!>ykB8D9z79}8+%yn{-X zP}MUUU(Z?U9UkX5#OwkZOx-vWul}uQx0@l^taMJD4ddk5Eq)H>Z|9>;^;aD>JHU*3 z!}r^e+vluYu~gPCFpU<#_<8GD^+XTeZ7jK&L58;;|7|wB3%qjdrRDXhNqU?wDU8%7 zu7<>}+(#j%)i3emkIu=57U+Gq@WWKcMNx)HW!|+#%GMWOU{eXuB_U{#fAJDOB%rly#e^|^JQ;XP@|ezTT`g+0~P zWp6NhqkIu@G%~(M{#^KD>WCO!$(+>tDy^Lq;t?vw=A`I}w&-EmDVbKI;G{=QV45q$yJi^n zY;&~xsYUmB3ZuzLEpa^bg_b(v*Z#`c&;p0(Ua2xiOs?^2^U&MoaNSbG+{U@eUZo^C zKHlW3-1ia5Zoq3>g{V7mZ$h*x9%RInv*#rWi^+D>^9i8Xn zm#sIVKgv{^t6-*?Q;}c5uhsgZSWM=v+j{j-d}Fqg7Mk%jF8hRXiF?D3H6Pn2g3jIC z-XO_`?z$d|o8n>j{L*6!-YM_JD&>k|v7I9N%mRa$s)o31&Y(iWkhe&5D43^xq))QwxqVRr*%UM9cJl{;>HCufoB?K6H14jbi= z_3gxE!~K1(#DGTetGAWTNu6v?dV4_KIJ&I_B|Vw6r=DTTCmnz^yKlXKNRa zRS-BoMu+{f6I4Z??NBBxr~2#3*9X>u-KRU&F2LnXm2PlPZCc=Q~7N{1**1`R0flNdK_WmiV5X+#Tx|TG+ zP&(iyuJqGy%B3#WFE+3gX9vBjcEn&Ov+>*IjUl>RM|vk+0)bt`1IuK=#6ps>*SEw> zfWuoM5q2ca5YZb{h{0ADo7}1v`?Eyr3$_H(z_^OJ9s3Oz-o;fg9Ds5_7EWT32$E=U zE+B#46s9J9{85_9*afmwF+giP+w8*hfRL@B{inD@OdI)+wIaD11Nmqh^g#kl;v3$U zWIg!H4j}dlr5AMo{&W!=>GfhJakU7VqGJK5dB_F|8?cY!q4a%sl9JcC?}2$s(*;#X z(@SnwMN!h*0YN|}e&`yk6@(;I;D8ltAtvKp$rO(h85fP$+A>mw2qDkTrcTH6W|`@a zvjH=y@CrQ^TO`<3QPPd{Lvrk()3U?({~U}RoRuhX z0xB!UYLf7T7_i1sa;iskyc`G?HWpqwUPQ8ky{(rs(cHp|O0ad%4vWP6`*S+dLIE?D b8%kO7Kg+Bv6i&$Ge@^MYXaAdtkgWO_Eq@Y_ delta 4778 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 diff --git a/Content/Media/ColorCalibration/ColorCalibrationPatterns.uasset b/Content/Media/ColorCalibration/ColorCalibrationPatterns.uasset index e5d5bf7fddb079f49f08a3b143529513dbdcf7db..bbd6b874bc7d80e623ae2baf3692aac7e2384394 100644 GIT binary patch delta 7064 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 delta 7321 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 diff --git a/Content/TheStudio/Media/Sync/DanteAudioTimecodeProvider.uasset b/Content/TheStudio/Media/Sync/DanteAudioTimecodeProvider.uasset index 30ca0a501057745067bee14f13df4637f63f62ee..973cd3596fbf6e587339d36f304d22c35009df87 100644 GIT binary patch delta 36 scmaE6@XTO?H>1Ej)AGp?Gwj^grHQ>>-s$pxb2Q^|QAWwl%Hqz903sd^NdN!< delta 36 scmaE6@XTO?H=}^o886QR#=P!(ESwBh3xBTN9L;!Klu=@{vbZxN00yZH(f|Me diff --git a/Source/git_management.bat b/Source/git_management.bat index 94bf34d..061c507 100644 --- a/Source/git_management.bat +++ b/Source/git_management.bat @@ -1,47 +1,153 @@ -@echo off -REM --------------------------------------------- -REM Safe Switchboard External Command: Git Pull -REM Discards local changes, pulls latest from current branch -REM Safe to keep inside the Git repo -REM --------------------------------------------- +# plugin_prelaunch.py - With connection check +from switchboard.devices.device_base import Device, DeviceStatus +from switchboard.devices.device_widget_base import DeviceWidget +from switchboard.switchboard_logging import LOGGER +from switchboard.config import IntSetting, StringSetting -REM Change this to your project repo path (can be inside repo) -set REPO_PATH=D:\Projects\DEV_TheStudio_Plugin +from PySide6 import QtCore -REM Name of this batch file -set BATCH_NAME=%~nx0 -echo ------------------------------------------------ -echo [%COMPUTERNAME%] Starting safe Git pull on %REPO_PATH% -echo ------------------------------------------------ +class DevicePreLaunch(Device): + """PreLaunch device - executes batch file on connect""" + + 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 -where git >nul 2>&1 -IF %ERRORLEVEL% NEQ 0 ( - echo ERROR: Git is not installed or not in PATH - exit /b 1 -) - -REM Get current branch -for /f "tokens=*" %%i in ('git rev-parse --abbrev-ref HEAD') do set CURRENT_BRANCH=%%i -echo Current branch: %CURRENT_BRANCH% - -REM Discard any local changes (staged and unstaged) -git reset --hard - -REM Clean untracked files and directories, excluding this batch file -git clean -fdX -e "%BATCH_NAME%" - -REM Pull latest changes from origin for current branch -git pull origin %CURRENT_BRANCH% - -REM Show status -git status - -echo ------------------------------------------------ -echo [%COMPUTERNAME%] Git pull complete -echo ------------------------------------------------ -pause +class DeviceWidgetPreLaunch(DeviceWidget): + """Widget for PreLaunch device""" + + def __init__(self, name, device_hash, address, icons, parent=None): + super().__init__(name, device_hash, address, icons, parent=parent) + LOGGER.info(f"PreLaunch widget created for {name}") + + def _add_control_buttons(self): + """Add connect button""" + super()._add_control_buttons() + + CONTROL_BUTTON_ICON_SIZE = QtCore.QSize(21, 21) + + self.connect_button = self.add_control_button( + icon_size=CONTROL_BUTTON_ICON_SIZE, + checkable=True, + tool_tip='Connect and execute batch file', + hover_focus=False, + name='connect') + + self.connect_button.clicked.connect(self.connect_button_clicked) + + def connect_button_clicked(self): + """Handle connect button click""" + if self.connect_button.isChecked(): + self._connect() + 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) \ No newline at end of file