diff --git a/MXF-Track-Swap.au3 b/MXF-Track-Swap.au3 index 8692449bcb7e96e0c02d54b9e269cc29012924ed..419b01e0078c624be79862f03e220526961b6bb1 100644 --- a/MXF-Track-Swap.au3 +++ b/MXF-Track-Swap.au3 @@ -3,7 +3,7 @@ #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Res_Comment=Swaps audio tracks in mxf files. #AutoIt3Wrapper_Res_Description=Swaps audio tracks in mxf files. -#AutoIt3Wrapper_Res_Fileversion=1.0.0.11 +#AutoIt3Wrapper_Res_Fileversion=1.0.0.12 #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p #AutoIt3Wrapper_Res_LegalCopyright=Conrad Zelck #AutoIt3Wrapper_Res_SaveSource=y @@ -615,6 +615,35 @@ Next ConsoleWrite("$g_bMuteRouted: " & $g_bMuteRouted & @CRLF) ConsoleWrite("$g_bExternalWavRouted: " & $g_bExternalWavRouted & @CRLF) +#Region - Check for enough space in %temp% +Local $iSize = FileGetSize($g_sMXFFile) +ConsoleWrite("File size: " & $iSize & @CRLF) + +Local $iSafetyFactor = 1.01 +$iSize *= $iSafetyFactor +$iSize = Ceiling($iSize) +ConsoleWrite("File size with some reserve: " & $iSize & " +" & $iSafetyFactor * 100 -100 & "%" & @CRLF) + +If $g_bExternalWavRouted Then + $iSize *= 2 ; because we need that temporary ffmpeg file too +EndIf + +Global $g_bEnoughSpace = False + +Do + If $iSize < _GetSpace() Then $g_bEnoughSpace = True + If Not $g_bEnoughSpace Then + Local $iReturn = MsgBox($MB_TOPMOST + $MB_OKCANCEL, "Warning", "It seems that there is not enough memory in the %temp% folder." & _ + " Good " & _ByteSuffix($iSize) & " is required." & @CRLF & @CRLF & _ + "You can now clean up in the %temp% folder and click 'OK' afterwards (it will be checked again) or cancel the whole thing completely.") + If $iReturn <> 1 Then + Exit + EndIf + EndIf +Until $g_bEnoughSpace +ConsoleWrite("Do it." & @CRLF) +#EndRegion + SplashTextOn("Be patient", "MXF-Track-Swap will be prepared ...", 300, 50) If Not FileExists(@TempDir & "\ffmpeg.exe") Then FileInstall('K:\ffmpeg\bin\ffmpeg.exe', @TempDir & "\ffmpeg.exe", $FC_OVERWRITE) @@ -642,7 +671,6 @@ WEnd GUIDelete($g_hGUI) Exit -;~ #cs #Region Funcs Func _CheckForInputFiles($aFiles) ;~ _ArrayDisplay($aFiles) @@ -676,6 +704,22 @@ Func _CheckForInputFiles($aFiles) EndFunc +Func _GetSpace() + Local $iFreeSpace = DriveSpaceFree(@TempDir) + $iFreeSpace *= 1024 ; in KB + $iFreeSpace *= 1024 ; in Byte + ConsoleWrite("Free space: " & $iFreeSpace & @CRLF) + Return Int($iFreeSpace) +EndFunc + +Func _ByteSuffix($iBytes) + Local $iIndex = 0, $aArray = [' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB'] + While $iBytes > 1023 + $iIndex += 1 + $iBytes /= 1024 + WEnd + Return Round($iBytes) & $aArray[$iIndex] +EndFunc ;==>ByteSuffix Func _ReWrap() $g_hTimerStart = TimerInit()