2020-11-23 16:51:05 +01:00
using Flowframes.IO ;
using Microsoft.WindowsAPICodePack.Dialogs ;
using System ;
using System.Collections.Generic ;
using System.ComponentModel ;
using System.Data ;
using System.Drawing ;
using System.Linq ;
using System.Text ;
using System.Threading.Tasks ;
using System.Windows.Forms ;
namespace Flowframes.Forms
{
public partial class SettingsForm : Form
{
bool initialized = false ;
public SettingsForm ( )
{
InitializeComponent ( ) ;
}
private void SettingsForm_Load ( object sender , EventArgs e )
{
LoadSettings ( ) ;
initialized = true ;
}
private void SettingsForm_FormClosing ( object sender , FormClosingEventArgs e )
{
SaveSettings ( ) ;
2020-12-03 01:20:33 +01:00
Program . mainForm . UpdateStepByStepControls ( true ) ;
2020-11-23 16:51:05 +01:00
}
void SaveSettings ( )
{
2020-11-25 17:27:15 +01:00
// Clamp...
2020-11-23 16:51:05 +01:00
h264Crf . Text = h264Crf . GetInt ( ) . Clamp ( 0 , 40 ) . ToString ( ) ;
h265Crf . Text = h265Crf . GetInt ( ) . Clamp ( 0 , 40 ) . ToString ( ) ;
2020-11-25 17:48:27 +01:00
ncnnThreads . Text = ncnnThreads . GetInt ( ) . Clamp ( 1 , 8 ) . ToString ( ) ;
2020-11-25 17:27:15 +01:00
// Remove spaces...
2020-11-23 16:51:05 +01:00
torchGpus . Text = torchGpus . Text . Replace ( " " , "" ) ;
ncnnGpus . Text = ncnnGpus . Text . Replace ( " " , "" ) ;
2020-11-25 17:27:15 +01:00
// Force numbers...
2020-11-23 16:51:05 +01:00
ffEncThreads . Text = ffEncThreads . GetInt ( ) . ToString ( ) ;
// General
2020-11-29 16:10:31 +01:00
ConfigParser . SaveComboxIndex ( processingMode ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . SaveGuiElement ( maxVidHeight ) ;
ConfigParser . SaveComboxIndex ( tempFolderLoc ) ;
ConfigParser . SaveGuiElement ( keepTempFolder ) ;
2020-12-08 21:46:17 +01:00
ConfigParser . SaveGuiElement ( delLogsOnStartup ) ;
2020-11-23 16:51:05 +01:00
// Interpolation
ConfigParser . SaveGuiElement ( enableAudio ) ;
ConfigParser . SaveComboxIndex ( dedupMode ) ;
2020-11-25 12:40:17 +01:00
ConfigParser . SaveComboxIndex ( mpdecimateMode ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . SaveGuiElement ( dedupThresh , ConfigParser . StringMode . Float ) ;
ConfigParser . SaveComboxIndex ( timingMode ) ;
ConfigParser . SaveGuiElement ( enableLoop ) ;
ConfigParser . SaveGuiElement ( jpegInterps ) ;
2020-11-26 20:17:18 +01:00
ConfigParser . SaveGuiElement ( scnDetect ) ;
2020-12-06 18:49:53 +01:00
ConfigParser . SaveGuiElement ( scnDetectValue , ConfigParser . StringMode . Float ) ;
ConfigParser . SaveComboxIndex ( autoEncMode ) ;
2020-12-07 12:34:12 +01:00
ConfigParser . SaveGuiElement ( sbsAllowAutoEnc ) ;
2020-11-23 16:51:05 +01:00
// AI
ConfigParser . SaveGuiElement ( torchGpus ) ;
ConfigParser . SaveGuiElement ( ncnnGpus ) ;
2020-11-25 17:27:15 +01:00
ConfigParser . SaveGuiElement ( ncnnThreads ) ;
2020-11-23 16:51:05 +01:00
// Video Export
ConfigParser . SaveGuiElement ( minOutVidLength , ConfigParser . StringMode . Int ) ;
ConfigParser . SaveComboxIndex ( mp4Enc ) ;
ConfigParser . SaveGuiElement ( h264Crf ) ;
ConfigParser . SaveGuiElement ( h265Crf ) ;
2020-12-08 15:22:46 +01:00
ConfigParser . SaveGuiElement ( gifColors ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . SaveGuiElement ( maxFps ) ;
ConfigParser . SaveComboxIndex ( maxFpsMode ) ;
2020-11-26 21:18:31 +01:00
ConfigParser . SaveComboxIndex ( loopMode ) ;
2020-11-23 16:51:05 +01:00
// Debugging
ConfigParser . SaveComboxIndex ( cmdDebugMode ) ;
ConfigParser . SaveGuiElement ( autoDedupFrames ) ;
ConfigParser . SaveGuiElement ( ffEncThreads ) ;
2020-11-25 17:48:27 +01:00
ConfigParser . SaveGuiElement ( ffEncPreset ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . SaveGuiElement ( ffprobeCountFrames ) ;
}
void LoadSettings ( )
{
// General
2020-11-29 16:10:31 +01:00
ConfigParser . LoadComboxIndex ( processingMode ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . LoadGuiElement ( maxVidHeight ) ;
ConfigParser . LoadComboxIndex ( tempFolderLoc ) ; ConfigParser . LoadGuiElement ( tempDirCustom ) ;
2020-12-08 21:46:17 +01:00
ConfigParser . LoadGuiElement ( delLogsOnStartup ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . LoadGuiElement ( keepTempFolder ) ;
// Interpolation
ConfigParser . LoadGuiElement ( enableAudio ) ;
ConfigParser . LoadComboxIndex ( dedupMode ) ;
2020-11-25 12:40:17 +01:00
ConfigParser . LoadComboxIndex ( mpdecimateMode ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . LoadGuiElement ( dedupThresh , "%" ) ;
ConfigParser . LoadComboxIndex ( timingMode ) ;
ConfigParser . LoadGuiElement ( enableLoop ) ;
ConfigParser . LoadGuiElement ( jpegInterps ) ;
2020-11-26 20:17:18 +01:00
ConfigParser . LoadGuiElement ( scnDetect ) ;
ConfigParser . LoadGuiElement ( scnDetectValue ) ;
2020-12-06 18:49:53 +01:00
ConfigParser . LoadComboxIndex ( autoEncMode ) ;
2020-12-07 12:34:12 +01:00
ConfigParser . LoadGuiElement ( sbsAllowAutoEnc ) ;
2020-11-23 16:51:05 +01:00
// AI
ConfigParser . LoadGuiElement ( torchGpus ) ;
ConfigParser . LoadGuiElement ( ncnnGpus ) ;
2020-11-25 17:27:15 +01:00
ConfigParser . LoadGuiElement ( ncnnThreads ) ;
2020-11-23 16:51:05 +01:00
// Video Export
ConfigParser . LoadGuiElement ( minOutVidLength ) ;
ConfigParser . LoadComboxIndex ( mp4Enc ) ;
ConfigParser . LoadGuiElement ( h264Crf ) ;
ConfigParser . LoadGuiElement ( h265Crf ) ;
2020-12-08 15:22:46 +01:00
ConfigParser . LoadGuiElement ( gifColors ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . LoadGuiElement ( maxFps ) ;
ConfigParser . LoadComboxIndex ( maxFpsMode ) ;
2020-11-26 21:18:31 +01:00
ConfigParser . LoadComboxIndex ( loopMode ) ;
2020-11-23 16:51:05 +01:00
// Debugging
ConfigParser . LoadComboxIndex ( cmdDebugMode ) ;
ConfigParser . LoadGuiElement ( autoDedupFrames ) ;
ConfigParser . LoadGuiElement ( ffEncThreads ) ;
2020-11-25 17:48:27 +01:00
ConfigParser . LoadGuiElement ( ffEncPreset ) ;
2020-11-23 16:51:05 +01:00
ConfigParser . LoadGuiElement ( ffprobeCountFrames ) ;
}
private void dedupThresh_Leave ( object sender , EventArgs e )
{
dedupThresh . Text = dedupThresh . GetFloat ( ) . ToString ( ) + "%" ;
}
private void tempFolderLoc_SelectedIndexChanged ( object sender , EventArgs e )
{
tempDirBrowseBtn . Visible = tempFolderLoc . SelectedIndex = = 4 ;
tempDirCustom . Visible = tempFolderLoc . SelectedIndex = = 4 ;
}
private void tempDirBrowseBtn_Click ( object sender , EventArgs e )
{
CommonOpenFileDialog dialog = new CommonOpenFileDialog ( ) ;
dialog . InitialDirectory = tempDirCustom . Text . Trim ( ) ;
dialog . IsFolderPicker = true ;
if ( dialog . ShowDialog ( ) = = CommonFileDialogResult . Ok )
tempDirCustom . Text = dialog . FileName ;
ConfigParser . SaveGuiElement ( tempDirCustom ) ;
}
private void cmdDebugMode_SelectedIndexChanged ( object sender , EventArgs e )
{
if ( initialized & & cmdDebugMode . SelectedIndex = = 2 )
MessageBox . Show ( "If you enable this, you need to close the CMD window manually after the process has finished, otherwise processing will be paused!" , "Notice" ) ;
}
2020-11-25 12:40:17 +01:00
private void dedupMode_SelectedIndexChanged ( object sender , EventArgs e )
{
magickDedupePanel . Visible = dedupMode . SelectedIndex = = 1 ;
mpDedupePanel . Visible = dedupMode . SelectedIndex = = 2 ;
}
2020-11-23 16:51:05 +01:00
}
}