diff --git a/WinFormsApp1/App.config b/WinFormsApp1/App.config
index 279cf4d..483bcf7 100644
--- a/WinFormsApp1/App.config
+++ b/WinFormsApp1/App.config
@@ -34,6 +34,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WinFormsApp1/ChaturbateLoginForm.Designer.cs b/WinFormsApp1/ChaturbateLoginForm.Designer.cs
new file mode 100644
index 0000000..edf7869
--- /dev/null
+++ b/WinFormsApp1/ChaturbateLoginForm.Designer.cs
@@ -0,0 +1,39 @@
+namespace WinFormsApp1
+{
+ partial class ChaturbateLoginForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Text = "ChaturbateLoginForm";
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WinFormsApp1/ChaturbateLoginForm.cs b/WinFormsApp1/ChaturbateLoginForm.cs
new file mode 100644
index 0000000..6f7b8fd
--- /dev/null
+++ b/WinFormsApp1/ChaturbateLoginForm.cs
@@ -0,0 +1,107 @@
+using System;
+using System.Linq;
+using System.Windows.Forms;
+using Microsoft.Web.WebView2.WinForms;
+using Microsoft.Web.WebView2.Core;
+
+namespace WinFormsApp1
+{
+ public partial class ChaturbateLoginForm : Form
+ {
+ private readonly WebView2 _webView;
+ private readonly Button _btnDone;
+
+ // Einzeln gespeicherte Werte
+ public string? CfClearance { get; private set; }
+ public string? SessionId { get; private set; }
+
+ // Kombinierter String für den Recorder:
+ // "cf_clearance=...; sessionid=..."
+ public string? SessionCookie { get; private set; }
+
+ public ChaturbateLoginForm()
+ {
+ Text = "Chaturbate Login";
+ Width = 1000;
+ Height = 800;
+
+ _webView = new WebView2
+ {
+ Dock = DockStyle.Fill
+ };
+
+ _btnDone = new Button
+ {
+ Text = "Login fertig",
+ Dock = DockStyle.Bottom,
+ Height = 40
+ };
+ _btnDone.Click += BtnDone_Click;
+
+ Controls.Add(_webView);
+ Controls.Add(_btnDone);
+
+ Shown += ChaturbateLoginForm_Shown;
+ }
+
+ private async void ChaturbateLoginForm_Shown(object? sender, EventArgs e)
+ {
+ try
+ {
+ await _webView.EnsureCoreWebView2Async();
+ _webView.CoreWebView2.Navigate("https://chaturbate.com/");
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("Browser konnte nicht initialisiert werden:\n" + ex.Message,
+ "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private async void BtnDone_Click(object? sender, EventArgs e)
+ {
+ try
+ {
+ if (_webView.CoreWebView2 == null)
+ {
+ MessageBox.Show("Browser noch nicht bereit.");
+ return;
+ }
+
+ CoreWebView2CookieManager cookieManager = _webView.CoreWebView2.CookieManager;
+ var cookies = await cookieManager.GetCookiesAsync("https://chaturbate.com/");
+
+ // beide Cookies holen
+ var cfClearance = cookies.FirstOrDefault(c => c.Name == "cf_clearance");
+ var sessionId = cookies.FirstOrDefault(c => c.Name == "sessionid");
+
+ if (cfClearance == null || sessionId == null)
+ {
+ MessageBox.Show(
+ "Die nötigen Cookies wurden nicht gefunden.\n\n" +
+ "Stelle sicher, dass du auf Chaturbate eingeloggt bist\n" +
+ "und ggf. die Seite einmal neu lädst.",
+ "Hinweis",
+ MessageBoxButtons.OK,
+ MessageBoxIcon.Information);
+ return;
+ }
+
+ // Einzelwerte speichern
+ CfClearance = cfClearance.Value;
+ SessionId = sessionId.Value;
+
+ // kombinierten Header bauen, wie du ihn an recorder.exe übergibst
+ SessionCookie = $"cf_clearance={CfClearance}; sessionid={SessionId}";
+
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("Fehler beim Lesen der Cookies:\n" + ex.Message,
+ "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ }
+}
diff --git a/WinFormsApp1/ChaturbateLoginForm.resx b/WinFormsApp1/ChaturbateLoginForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/WinFormsApp1/ChaturbateLoginForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/WinFormsApp1/Form1.Designer.cs b/WinFormsApp1/Form1.Designer.cs
index ea4f6d4..fdd585f 100644
--- a/WinFormsApp1/Form1.Designer.cs
+++ b/WinFormsApp1/Form1.Designer.cs
@@ -81,9 +81,7 @@
imageList_Thumbnails_Temp = new ImageList(components);
tabPage_Editor = new TabPage();
splitContainer_Editor_Player_Timestamps = new SplitContainer();
- splitContainer_Editor_PlayerDetails = new SplitContainer();
- splitContainer_Editor_VLC = new SplitContainer();
- label_Editor_Label = new Label();
+ tableLayoutPanel_Editor_Player = new TableLayoutPanel();
flyleafHost_Editor = new FlyleafLib.Controls.WinForms.FlyleafHost();
tableLayoutPanel_Editor_VLC = new TableLayoutPanel();
comboBox_Editor_VLC_PlaybackSpeed = new ComboBox();
@@ -106,14 +104,9 @@
label_Date_Trim_Value = new Label();
label_Size_Trim = new Label();
label_Size_Trim_Value = new Label();
- splitContainer_Editor_cutClips = new SplitContainer();
- splitContainer_Editor_Timestamps = new SplitContainer();
- listView_Split = new ListView();
- columnHeader_Trim_Checkbox = new ColumnHeader();
- columnHeader_Trim_Start = new ColumnHeader();
- columnHeader_Trim_End = new ColumnHeader();
- columnHeader_Trim_Duration = new ColumnHeader();
- columnHeader_Trim_Label = new ColumnHeader();
+ tableLayoutPanel_AI = new TableLayoutPanel();
+ button_AddSplit = new Button();
+ button_editClip_scanAI_Results = new Button();
groupBox_editClip_Options = new GroupBox();
tableLayoutPanel_scanAI_Options = new TableLayoutPanel();
checkBox_scanAI_UseThresholdForPredictionLabel = new CheckBox();
@@ -129,11 +122,15 @@
trackBar_scanAI_sexyThreshold = new TrackBar();
label_scanAI_hentaiThreshold_Value = new Label();
checkBox_scanAI_HentaiThreshold = new CheckBox();
- tableLayoutPanel_editClip_ScanAI = new TableLayoutPanel();
- button_editClip_scanAI = new Button();
- button_editClip_scanAI_Results = new Button();
- button_AddSplit = new Button();
+ listView_Split = new ListView();
+ columnHeader_Trim_Checkbox = new ColumnHeader();
+ columnHeader_Trim_Start = new ColumnHeader();
+ columnHeader_Trim_End = new ColumnHeader();
+ columnHeader_Trim_Duration = new ColumnHeader();
+ columnHeader_Trim_Label = new ColumnHeader();
button_SplitFiles = new Button();
+ button_editClip_scanAI = new Button();
+ button_Editor_Options = new Button();
tabPage_Player = new TabPage();
splitContainer_Player = new SplitContainer();
splitContainer_Player_VLC = new SplitContainer();
@@ -280,11 +277,10 @@
checkBox_dateTime_AutoShutdown = new CheckBox();
numericUpDown_warnFreeDiskSpace = new NumericUpDown();
checkBox_PausePlaybackWhenSwitchingTabs = new CheckBox();
- label_checkSpeed = new Label();
- comboBox_checkSpeed = new ComboBox();
- label_Thumbnail = new Label();
- comboBox_Thumbnail = new ComboBox();
button_SaveEntries = new Button();
+ label_ChaturbateLoginStatus = new Label();
+ button_ChaturbateLogin = new Button();
+ checkBox_AutoQuickScan = new CheckBox();
groupBox_Settings_Downloads = new GroupBox();
tableLayoutPanel_Settings_Downloads = new TableLayoutPanel();
checkBox_MaxConcurrentDownloads = new CheckBox();
@@ -363,33 +359,18 @@
splitContainer_Editor_Player_Timestamps.Panel1.SuspendLayout();
splitContainer_Editor_Player_Timestamps.Panel2.SuspendLayout();
splitContainer_Editor_Player_Timestamps.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_PlayerDetails).BeginInit();
- splitContainer_Editor_PlayerDetails.Panel1.SuspendLayout();
- splitContainer_Editor_PlayerDetails.Panel2.SuspendLayout();
- splitContainer_Editor_PlayerDetails.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_VLC).BeginInit();
- splitContainer_Editor_VLC.Panel1.SuspendLayout();
- splitContainer_Editor_VLC.Panel2.SuspendLayout();
- splitContainer_Editor_VLC.SuspendLayout();
+ tableLayoutPanel_Editor_Player.SuspendLayout();
tableLayoutPanel_Editor_VLC.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackBar_Editor_VLC).BeginInit();
((System.ComponentModel.ISupportInitialize)trackBar_Editor_VLC_Volume).BeginInit();
tableLayoutPanel_Editor_PlayerTrim.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureBox_HotIcon_Trim).BeginInit();
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_cutClips).BeginInit();
- splitContainer_Editor_cutClips.Panel1.SuspendLayout();
- splitContainer_Editor_cutClips.Panel2.SuspendLayout();
- splitContainer_Editor_cutClips.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_Timestamps).BeginInit();
- splitContainer_Editor_Timestamps.Panel1.SuspendLayout();
- splitContainer_Editor_Timestamps.Panel2.SuspendLayout();
- splitContainer_Editor_Timestamps.SuspendLayout();
+ tableLayoutPanel_AI.SuspendLayout();
groupBox_editClip_Options.SuspendLayout();
tableLayoutPanel_scanAI_Options.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackBar_scanAI_hentaiThreshold).BeginInit();
((System.ComponentModel.ISupportInitialize)trackBar_scanAI_pornThreshold).BeginInit();
((System.ComponentModel.ISupportInitialize)trackBar_scanAI_sexyThreshold).BeginInit();
- tableLayoutPanel_editClip_ScanAI.SuspendLayout();
tabPage_Player.SuspendLayout();
((System.ComponentModel.ISupportInitialize)splitContainer_Player).BeginInit();
splitContainer_Player.Panel1.SuspendLayout();
@@ -866,69 +847,32 @@
//
// splitContainer_Editor_Player_Timestamps.Panel1
//
- splitContainer_Editor_Player_Timestamps.Panel1.Controls.Add(splitContainer_Editor_PlayerDetails);
+ splitContainer_Editor_Player_Timestamps.Panel1.Controls.Add(tableLayoutPanel_Editor_Player);
//
// splitContainer_Editor_Player_Timestamps.Panel2
//
- splitContainer_Editor_Player_Timestamps.Panel2.Controls.Add(splitContainer_Editor_cutClips);
+ splitContainer_Editor_Player_Timestamps.Panel2.Controls.Add(tableLayoutPanel_AI);
splitContainer_Editor_Player_Timestamps.Size = new Size(820, 417);
- splitContainer_Editor_Player_Timestamps.SplitterDistance = 500;
+ splitContainer_Editor_Player_Timestamps.SplitterDistance = 520;
splitContainer_Editor_Player_Timestamps.TabIndex = 27;
//
- // splitContainer_Editor_PlayerDetails
+ // tableLayoutPanel_Editor_Player
//
- splitContainer_Editor_PlayerDetails.Dock = DockStyle.Fill;
- splitContainer_Editor_PlayerDetails.FixedPanel = FixedPanel.Panel2;
- splitContainer_Editor_PlayerDetails.IsSplitterFixed = true;
- splitContainer_Editor_PlayerDetails.Location = new Point(0, 0);
- splitContainer_Editor_PlayerDetails.Name = "splitContainer_Editor_PlayerDetails";
- splitContainer_Editor_PlayerDetails.Orientation = Orientation.Horizontal;
- //
- // splitContainer_Editor_PlayerDetails.Panel1
- //
- splitContainer_Editor_PlayerDetails.Panel1.Controls.Add(splitContainer_Editor_VLC);
- //
- // splitContainer_Editor_PlayerDetails.Panel2
- //
- splitContainer_Editor_PlayerDetails.Panel2.Controls.Add(tableLayoutPanel_Editor_PlayerTrim);
- splitContainer_Editor_PlayerDetails.Size = new Size(500, 417);
- splitContainer_Editor_PlayerDetails.SplitterDistance = 391;
- splitContainer_Editor_PlayerDetails.SplitterWidth = 1;
- splitContainer_Editor_PlayerDetails.TabIndex = 0;
- //
- // splitContainer_Editor_VLC
- //
- splitContainer_Editor_VLC.Dock = DockStyle.Fill;
- splitContainer_Editor_VLC.FixedPanel = FixedPanel.Panel2;
- splitContainer_Editor_VLC.IsSplitterFixed = true;
- splitContainer_Editor_VLC.Location = new Point(0, 0);
- splitContainer_Editor_VLC.Name = "splitContainer_Editor_VLC";
- splitContainer_Editor_VLC.Orientation = Orientation.Horizontal;
- //
- // splitContainer_Editor_VLC.Panel1
- //
- splitContainer_Editor_VLC.Panel1.Controls.Add(label_Editor_Label);
- splitContainer_Editor_VLC.Panel1.Controls.Add(flyleafHost_Editor);
- //
- // splitContainer_Editor_VLC.Panel2
- //
- splitContainer_Editor_VLC.Panel2.Controls.Add(tableLayoutPanel_Editor_VLC);
- splitContainer_Editor_VLC.Size = new Size(500, 391);
- splitContainer_Editor_VLC.SplitterDistance = 352;
- splitContainer_Editor_VLC.TabIndex = 1;
- //
- // label_Editor_Label
- //
- label_Editor_Label.AutoSize = true;
- label_Editor_Label.Dock = DockStyle.Bottom;
- label_Editor_Label.Font = new Font("Segoe UI", 8.25F);
- label_Editor_Label.Location = new Point(0, 339);
- label_Editor_Label.Name = "label_Editor_Label";
- label_Editor_Label.Size = new Size(74, 13);
- label_Editor_Label.TabIndex = 18;
- label_Editor_Label.Text = "Pornography";
- label_Editor_Label.TextAlign = ContentAlignment.MiddleLeft;
- label_Editor_Label.Visible = false;
+ tableLayoutPanel_Editor_Player.ColumnCount = 1;
+ tableLayoutPanel_Editor_Player.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+ tableLayoutPanel_Editor_Player.Controls.Add(flyleafHost_Editor, 0, 0);
+ tableLayoutPanel_Editor_Player.Controls.Add(tableLayoutPanel_Editor_VLC, 0, 1);
+ tableLayoutPanel_Editor_Player.Controls.Add(tableLayoutPanel_Editor_PlayerTrim, 0, 2);
+ tableLayoutPanel_Editor_Player.Dock = DockStyle.Fill;
+ tableLayoutPanel_Editor_Player.Location = new Point(0, 0);
+ tableLayoutPanel_Editor_Player.Name = "tableLayoutPanel_Editor_Player";
+ tableLayoutPanel_Editor_Player.RowCount = 3;
+ tableLayoutPanel_Editor_Player.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+ tableLayoutPanel_Editor_Player.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
+ tableLayoutPanel_Editor_Player.RowStyles.Add(new RowStyle(SizeType.Absolute, 85F));
+ tableLayoutPanel_Editor_Player.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
+ tableLayoutPanel_Editor_Player.Size = new Size(520, 417);
+ tableLayoutPanel_Editor_Player.TabIndex = 2;
//
// flyleafHost_Editor
//
@@ -938,14 +882,14 @@
flyleafHost_Editor.DragMove = true;
flyleafHost_Editor.IsFullScreen = false;
flyleafHost_Editor.KeyBindings = true;
- flyleafHost_Editor.Location = new Point(0, 0);
+ flyleafHost_Editor.Location = new Point(3, 3);
flyleafHost_Editor.Name = "flyleafHost_Editor";
flyleafHost_Editor.OpenOnDrop = false;
flyleafHost_Editor.PanMoveOnCtrl = true;
flyleafHost_Editor.PanRotateOnShiftWheel = true;
flyleafHost_Editor.PanZoomOnCtrlWheel = true;
flyleafHost_Editor.Player = null;
- flyleafHost_Editor.Size = new Size(500, 352);
+ flyleafHost_Editor.Size = new Size(514, 286);
flyleafHost_Editor.SwapDragEnterOnShift = true;
flyleafHost_Editor.SwapOnDrop = true;
flyleafHost_Editor.TabIndex = 0;
@@ -955,18 +899,18 @@
// tableLayoutPanel_Editor_VLC
//
tableLayoutPanel_Editor_VLC.ColumnCount = 12;
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 70F));
- tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 60F));
+ tableLayoutPanel_Editor_VLC.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));
tableLayoutPanel_Editor_VLC.Controls.Add(comboBox_Editor_VLC_PlaybackSpeed, 10, 0);
tableLayoutPanel_Editor_VLC.Controls.Add(button_Editor_VLC_Fullscreen, 11, 0);
tableLayoutPanel_Editor_VLC.Controls.Add(button_Editor_VLC_PlayPause, 0, 0);
@@ -977,11 +921,11 @@
tableLayoutPanel_Editor_VLC.Controls.Add(button_Editor_VLC_VolumeMute, 2, 0);
tableLayoutPanel_Editor_VLC.Controls.Add(trackBar_Editor_VLC_Volume, 3, 0);
tableLayoutPanel_Editor_VLC.Dock = DockStyle.Fill;
- tableLayoutPanel_Editor_VLC.Location = new Point(0, 0);
+ tableLayoutPanel_Editor_VLC.Location = new Point(3, 295);
tableLayoutPanel_Editor_VLC.Name = "tableLayoutPanel_Editor_VLC";
tableLayoutPanel_Editor_VLC.RowCount = 1;
tableLayoutPanel_Editor_VLC.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
- tableLayoutPanel_Editor_VLC.Size = new Size(500, 35);
+ tableLayoutPanel_Editor_VLC.Size = new Size(514, 34);
tableLayoutPanel_Editor_VLC.TabIndex = 0;
//
// comboBox_Editor_VLC_PlaybackSpeed
@@ -992,10 +936,10 @@
comboBox_Editor_VLC_PlaybackSpeed.FormattingEnabled = true;
comboBox_Editor_VLC_PlaybackSpeed.ItemHeight = 13;
comboBox_Editor_VLC_PlaybackSpeed.Items.AddRange(new object[] { "x0,25", "x0,5", "x1", "x1,5", "x2", "x4", "x8", "x16" });
- comboBox_Editor_VLC_PlaybackSpeed.Location = new Point(398, 7);
+ comboBox_Editor_VLC_PlaybackSpeed.Location = new Point(427, 7);
comboBox_Editor_VLC_PlaybackSpeed.Margin = new Padding(3, 7, 3, 7);
comboBox_Editor_VLC_PlaybackSpeed.Name = "comboBox_Editor_VLC_PlaybackSpeed";
- comboBox_Editor_VLC_PlaybackSpeed.Size = new Size(64, 21);
+ comboBox_Editor_VLC_PlaybackSpeed.Size = new Size(54, 21);
comboBox_Editor_VLC_PlaybackSpeed.TabIndex = 9;
comboBox_Editor_VLC_PlaybackSpeed.SelectedIndexChanged += comboBox_Editor_VLC_PlaybackSpeed_SelectedIndexChanged;
//
@@ -1004,9 +948,9 @@
button_Editor_VLC_Fullscreen.BackgroundImage = (Image)resources.GetObject("button_Editor_VLC_Fullscreen.BackgroundImage");
button_Editor_VLC_Fullscreen.BackgroundImageLayout = ImageLayout.Zoom;
button_Editor_VLC_Fullscreen.Dock = DockStyle.Fill;
- button_Editor_VLC_Fullscreen.Location = new Point(468, 3);
+ button_Editor_VLC_Fullscreen.Location = new Point(487, 3);
button_Editor_VLC_Fullscreen.Name = "button_Editor_VLC_Fullscreen";
- button_Editor_VLC_Fullscreen.Size = new Size(29, 29);
+ button_Editor_VLC_Fullscreen.Size = new Size(24, 28);
button_Editor_VLC_Fullscreen.TabIndex = 7;
button_Editor_VLC_Fullscreen.UseVisualStyleBackColor = true;
button_Editor_VLC_Fullscreen.Click += button_Editor_VLC_Fullscreen_Click;
@@ -1018,7 +962,7 @@
button_Editor_VLC_PlayPause.Dock = DockStyle.Fill;
button_Editor_VLC_PlayPause.Location = new Point(3, 3);
button_Editor_VLC_PlayPause.Name = "button_Editor_VLC_PlayPause";
- button_Editor_VLC_PlayPause.Size = new Size(29, 29);
+ button_Editor_VLC_PlayPause.Size = new Size(24, 28);
button_Editor_VLC_PlayPause.TabIndex = 0;
button_Editor_VLC_PlayPause.UseVisualStyleBackColor = true;
button_Editor_VLC_PlayPause.Click += button_Editor_VLC_PlayPause_Click;
@@ -1028,9 +972,9 @@
button_Editor_VLC_Stop.BackgroundImage = (Image)resources.GetObject("button_Editor_VLC_Stop.BackgroundImage");
button_Editor_VLC_Stop.BackgroundImageLayout = ImageLayout.Zoom;
button_Editor_VLC_Stop.Dock = DockStyle.Fill;
- button_Editor_VLC_Stop.Location = new Point(38, 3);
+ button_Editor_VLC_Stop.Location = new Point(33, 3);
button_Editor_VLC_Stop.Name = "button_Editor_VLC_Stop";
- button_Editor_VLC_Stop.Size = new Size(29, 29);
+ button_Editor_VLC_Stop.Size = new Size(24, 28);
button_Editor_VLC_Stop.TabIndex = 1;
button_Editor_VLC_Stop.UseVisualStyleBackColor = true;
button_Editor_VLC_Stop.Click += button_Editor_VLC_Stop_Click;
@@ -1040,9 +984,9 @@
label_Editor_VLC_Starttime.AutoSize = true;
tableLayoutPanel_Editor_VLC.SetColumnSpan(label_Editor_VLC_Starttime, 2);
label_Editor_VLC_Starttime.Dock = DockStyle.Fill;
- label_Editor_VLC_Starttime.Location = new Point(178, 0);
+ label_Editor_VLC_Starttime.Location = new Point(153, 0);
label_Editor_VLC_Starttime.Name = "label_Editor_VLC_Starttime";
- label_Editor_VLC_Starttime.Size = new Size(64, 35);
+ label_Editor_VLC_Starttime.Size = new Size(54, 34);
label_Editor_VLC_Starttime.TabIndex = 2;
label_Editor_VLC_Starttime.Text = "00:00:00";
label_Editor_VLC_Starttime.TextAlign = ContentAlignment.MiddleCenter;
@@ -1051,10 +995,10 @@
//
trackBar_Editor_VLC.Dock = DockStyle.Fill;
trackBar_Editor_VLC.LargeChange = 10;
- trackBar_Editor_VLC.Location = new Point(248, 3);
+ trackBar_Editor_VLC.Location = new Point(213, 3);
trackBar_Editor_VLC.Maximum = 100;
trackBar_Editor_VLC.Name = "trackBar_Editor_VLC";
- trackBar_Editor_VLC.Size = new Size(74, 29);
+ trackBar_Editor_VLC.Size = new Size(148, 28);
trackBar_Editor_VLC.SmallChange = 5;
trackBar_Editor_VLC.TabIndex = 4;
trackBar_Editor_VLC.TickStyle = TickStyle.None;
@@ -1066,9 +1010,9 @@
label_Editor_VLC_Endtime.AutoSize = true;
tableLayoutPanel_Editor_VLC.SetColumnSpan(label_Editor_VLC_Endtime, 2);
label_Editor_VLC_Endtime.Dock = DockStyle.Fill;
- label_Editor_VLC_Endtime.Location = new Point(328, 0);
+ label_Editor_VLC_Endtime.Location = new Point(367, 0);
label_Editor_VLC_Endtime.Name = "label_Editor_VLC_Endtime";
- label_Editor_VLC_Endtime.Size = new Size(64, 35);
+ label_Editor_VLC_Endtime.Size = new Size(54, 34);
label_Editor_VLC_Endtime.TabIndex = 3;
label_Editor_VLC_Endtime.Text = "00:00:00";
label_Editor_VLC_Endtime.TextAlign = ContentAlignment.MiddleCenter;
@@ -1078,9 +1022,9 @@
button_Editor_VLC_VolumeMute.BackgroundImage = (Image)resources.GetObject("button_Editor_VLC_VolumeMute.BackgroundImage");
button_Editor_VLC_VolumeMute.BackgroundImageLayout = ImageLayout.Zoom;
button_Editor_VLC_VolumeMute.Dock = DockStyle.Fill;
- button_Editor_VLC_VolumeMute.Location = new Point(73, 3);
+ button_Editor_VLC_VolumeMute.Location = new Point(63, 3);
button_Editor_VLC_VolumeMute.Name = "button_Editor_VLC_VolumeMute";
- button_Editor_VLC_VolumeMute.Size = new Size(29, 29);
+ button_Editor_VLC_VolumeMute.Size = new Size(24, 28);
button_Editor_VLC_VolumeMute.TabIndex = 5;
button_Editor_VLC_VolumeMute.UseVisualStyleBackColor = true;
button_Editor_VLC_VolumeMute.Click += button_Editor_VLC_VolumeMute_Click;
@@ -1090,10 +1034,10 @@
tableLayoutPanel_Editor_VLC.SetColumnSpan(trackBar_Editor_VLC_Volume, 2);
trackBar_Editor_VLC_Volume.Dock = DockStyle.Fill;
trackBar_Editor_VLC_Volume.LargeChange = 0;
- trackBar_Editor_VLC_Volume.Location = new Point(108, 3);
+ trackBar_Editor_VLC_Volume.Location = new Point(93, 3);
trackBar_Editor_VLC_Volume.Maximum = 100;
trackBar_Editor_VLC_Volume.Name = "trackBar_Editor_VLC_Volume";
- trackBar_Editor_VLC_Volume.Size = new Size(64, 29);
+ trackBar_Editor_VLC_Volume.Size = new Size(54, 28);
trackBar_Editor_VLC_Volume.SmallChange = 0;
trackBar_Editor_VLC_Volume.TabIndex = 6;
trackBar_Editor_VLC_Volume.TickStyle = TickStyle.None;
@@ -1118,23 +1062,23 @@
tableLayoutPanel_Editor_PlayerTrim.Controls.Add(label_Size_Trim, 2, 2);
tableLayoutPanel_Editor_PlayerTrim.Controls.Add(label_Size_Trim_Value, 3, 2);
tableLayoutPanel_Editor_PlayerTrim.Dock = DockStyle.Fill;
- tableLayoutPanel_Editor_PlayerTrim.Location = new Point(0, 0);
+ tableLayoutPanel_Editor_PlayerTrim.Location = new Point(3, 335);
tableLayoutPanel_Editor_PlayerTrim.Name = "tableLayoutPanel_Editor_PlayerTrim";
tableLayoutPanel_Editor_PlayerTrim.RowCount = 4;
- tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
- tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
- tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
- tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
- tableLayoutPanel_Editor_PlayerTrim.Size = new Size(500, 25);
+ tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
+ tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
+ tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
+ tableLayoutPanel_Editor_PlayerTrim.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
+ tableLayoutPanel_Editor_PlayerTrim.Size = new Size(514, 79);
tableLayoutPanel_Editor_PlayerTrim.TabIndex = 29;
//
// linkLabel_Modelname_Trim_Value
//
linkLabel_Modelname_Trim_Value.AutoSize = true;
linkLabel_Modelname_Trim_Value.Dock = DockStyle.Fill;
- linkLabel_Modelname_Trim_Value.Location = new Point(147, 21);
+ linkLabel_Modelname_Trim_Value.Location = new Point(147, 20);
linkLabel_Modelname_Trim_Value.Name = "linkLabel_Modelname_Trim_Value";
- linkLabel_Modelname_Trim_Value.Size = new Size(350, 21);
+ linkLabel_Modelname_Trim_Value.Size = new Size(364, 20);
linkLabel_Modelname_Trim_Value.TabIndex = 33;
linkLabel_Modelname_Trim_Value.TabStop = true;
linkLabel_Modelname_Trim_Value.Text = "Modelname";
@@ -1149,7 +1093,7 @@
label_FavLikesIcon_Trim.Margin = new Padding(0);
label_FavLikesIcon_Trim.Name = "label_FavLikesIcon_Trim";
tableLayoutPanel_Editor_PlayerTrim.SetRowSpan(label_FavLikesIcon_Trim, 4);
- label_FavLikesIcon_Trim.Size = new Size(32, 84);
+ label_FavLikesIcon_Trim.Size = new Size(32, 80);
label_FavLikesIcon_Trim.TabIndex = 31;
label_FavLikesIcon_Trim.Text = "♥";
label_FavLikesIcon_Trim.TextAlign = ContentAlignment.MiddleCenter;
@@ -1164,7 +1108,7 @@
pictureBox_HotIcon_Trim.Margin = new Padding(0);
pictureBox_HotIcon_Trim.Name = "pictureBox_HotIcon_Trim";
tableLayoutPanel_Editor_PlayerTrim.SetRowSpan(pictureBox_HotIcon_Trim, 4);
- pictureBox_HotIcon_Trim.Size = new Size(32, 84);
+ pictureBox_HotIcon_Trim.Size = new Size(32, 80);
pictureBox_HotIcon_Trim.TabIndex = 32;
pictureBox_HotIcon_Trim.TabStop = false;
//
@@ -1175,7 +1119,7 @@
label_Filename_Trim.Font = new Font("Segoe UI", 8.25F);
label_Filename_Trim.Location = new Point(67, 0);
label_Filename_Trim.Name = "label_Filename_Trim";
- label_Filename_Trim.Size = new Size(74, 21);
+ label_Filename_Trim.Size = new Size(74, 20);
label_Filename_Trim.TabIndex = 17;
label_Filename_Trim.Text = "Dateiname:";
label_Filename_Trim.TextAlign = ContentAlignment.MiddleLeft;
@@ -1187,7 +1131,7 @@
label_Filename_Trim_Value.Font = new Font("Segoe UI", 8.25F);
label_Filename_Trim_Value.Location = new Point(147, 0);
label_Filename_Trim_Value.Name = "label_Filename_Trim_Value";
- label_Filename_Trim_Value.Size = new Size(350, 21);
+ label_Filename_Trim_Value.Size = new Size(364, 20);
label_Filename_Trim_Value.TabIndex = 3;
label_Filename_Trim_Value.Text = "Filename";
label_Filename_Trim_Value.TextAlign = ContentAlignment.MiddleLeft;
@@ -1197,9 +1141,9 @@
label_Modelname_Trim.AutoSize = true;
label_Modelname_Trim.Dock = DockStyle.Fill;
label_Modelname_Trim.Font = new Font("Segoe UI", 8.25F);
- label_Modelname_Trim.Location = new Point(67, 21);
+ label_Modelname_Trim.Location = new Point(67, 20);
label_Modelname_Trim.Name = "label_Modelname_Trim";
- label_Modelname_Trim.Size = new Size(74, 21);
+ label_Modelname_Trim.Size = new Size(74, 20);
label_Modelname_Trim.TabIndex = 19;
label_Modelname_Trim.Text = "Model:";
label_Modelname_Trim.TextAlign = ContentAlignment.MiddleLeft;
@@ -1209,9 +1153,9 @@
label_Date_Trim.AutoSize = true;
label_Date_Trim.Dock = DockStyle.Fill;
label_Date_Trim.Font = new Font("Segoe UI", 8.25F);
- label_Date_Trim.Location = new Point(67, 63);
+ label_Date_Trim.Location = new Point(67, 60);
label_Date_Trim.Name = "label_Date_Trim";
- label_Date_Trim.Size = new Size(74, 21);
+ label_Date_Trim.Size = new Size(74, 20);
label_Date_Trim.TabIndex = 20;
label_Date_Trim.Text = "Datum:";
label_Date_Trim.TextAlign = ContentAlignment.MiddleLeft;
@@ -1221,9 +1165,9 @@
label_Date_Trim_Value.AutoSize = true;
label_Date_Trim_Value.Dock = DockStyle.Fill;
label_Date_Trim_Value.Font = new Font("Segoe UI", 8.25F);
- label_Date_Trim_Value.Location = new Point(147, 63);
+ label_Date_Trim_Value.Location = new Point(147, 60);
label_Date_Trim_Value.Name = "label_Date_Trim_Value";
- label_Date_Trim_Value.Size = new Size(350, 21);
+ label_Date_Trim_Value.Size = new Size(364, 20);
label_Date_Trim_Value.TabIndex = 21;
label_Date_Trim_Value.Text = "Datum";
label_Date_Trim_Value.TextAlign = ContentAlignment.MiddleLeft;
@@ -1232,9 +1176,9 @@
//
label_Size_Trim.AutoSize = true;
label_Size_Trim.Dock = DockStyle.Fill;
- label_Size_Trim.Location = new Point(67, 42);
+ label_Size_Trim.Location = new Point(67, 40);
label_Size_Trim.Name = "label_Size_Trim";
- label_Size_Trim.Size = new Size(74, 21);
+ label_Size_Trim.Size = new Size(74, 20);
label_Size_Trim.TabIndex = 22;
label_Size_Trim.Text = "Größe:";
label_Size_Trim.TextAlign = ContentAlignment.MiddleLeft;
@@ -1243,108 +1187,71 @@
//
label_Size_Trim_Value.AutoSize = true;
label_Size_Trim_Value.Dock = DockStyle.Fill;
- label_Size_Trim_Value.Location = new Point(147, 42);
+ label_Size_Trim_Value.Location = new Point(147, 40);
label_Size_Trim_Value.Name = "label_Size_Trim_Value";
- label_Size_Trim_Value.Size = new Size(350, 21);
+ label_Size_Trim_Value.Size = new Size(364, 20);
label_Size_Trim_Value.TabIndex = 23;
label_Size_Trim_Value.Text = "Größe";
label_Size_Trim_Value.TextAlign = ContentAlignment.MiddleLeft;
//
- // splitContainer_Editor_cutClips
+ // tableLayoutPanel_AI
//
- splitContainer_Editor_cutClips.Dock = DockStyle.Fill;
- splitContainer_Editor_cutClips.FixedPanel = FixedPanel.Panel2;
- splitContainer_Editor_cutClips.IsSplitterFixed = true;
- splitContainer_Editor_cutClips.Location = new Point(0, 0);
- splitContainer_Editor_cutClips.Name = "splitContainer_Editor_cutClips";
- splitContainer_Editor_cutClips.Orientation = Orientation.Horizontal;
+ tableLayoutPanel_AI.ColumnCount = 2;
+ tableLayoutPanel_AI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutPanel_AI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
+ tableLayoutPanel_AI.Controls.Add(button_AddSplit, 0, 3);
+ tableLayoutPanel_AI.Controls.Add(button_editClip_scanAI_Results, 1, 4);
+ tableLayoutPanel_AI.Controls.Add(groupBox_editClip_Options, 0, 2);
+ tableLayoutPanel_AI.Controls.Add(listView_Split, 0, 0);
+ tableLayoutPanel_AI.Controls.Add(button_SplitFiles, 1, 3);
+ tableLayoutPanel_AI.Controls.Add(button_editClip_scanAI, 0, 4);
+ tableLayoutPanel_AI.Controls.Add(button_Editor_Options, 0, 1);
+ tableLayoutPanel_AI.Dock = DockStyle.Fill;
+ tableLayoutPanel_AI.Location = new Point(0, 0);
+ tableLayoutPanel_AI.Name = "tableLayoutPanel_AI";
+ tableLayoutPanel_AI.RowCount = 5;
+ tableLayoutPanel_AI.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+ tableLayoutPanel_AI.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_AI.RowStyles.Add(new RowStyle(SizeType.Absolute, 227F));
+ tableLayoutPanel_AI.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_AI.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
+ tableLayoutPanel_AI.Size = new Size(296, 417);
+ tableLayoutPanel_AI.TabIndex = 1;
//
- // splitContainer_Editor_cutClips.Panel1
+ // button_AddSplit
//
- splitContainer_Editor_cutClips.Panel1.Controls.Add(splitContainer_Editor_Timestamps);
- splitContainer_Editor_cutClips.Panel1.Controls.Add(button_AddSplit);
+ button_AddSplit.BackgroundImageLayout = ImageLayout.Zoom;
+ button_AddSplit.Dock = DockStyle.Fill;
+ button_AddSplit.Font = new Font("Segoe UI", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ button_AddSplit.Location = new Point(3, 360);
+ button_AddSplit.Name = "button_AddSplit";
+ button_AddSplit.Size = new Size(142, 24);
+ button_AddSplit.TabIndex = 31;
+ button_AddSplit.Text = "Hinzufügen";
+ button_AddSplit.UseVisualStyleBackColor = true;
+ button_AddSplit.Click += button_AddSplit_Click;
//
- // splitContainer_Editor_cutClips.Panel2
+ // button_editClip_scanAI_Results
//
- splitContainer_Editor_cutClips.Panel2.Controls.Add(button_SplitFiles);
- splitContainer_Editor_cutClips.Panel2MinSize = 30;
- splitContainer_Editor_cutClips.Size = new Size(316, 417);
- splitContainer_Editor_cutClips.SplitterDistance = 386;
- splitContainer_Editor_cutClips.SplitterWidth = 1;
- splitContainer_Editor_cutClips.TabIndex = 0;
- //
- // splitContainer_Editor_Timestamps
- //
- splitContainer_Editor_Timestamps.Dock = DockStyle.Fill;
- splitContainer_Editor_Timestamps.FixedPanel = FixedPanel.Panel2;
- splitContainer_Editor_Timestamps.Location = new Point(0, 0);
- splitContainer_Editor_Timestamps.Name = "splitContainer_Editor_Timestamps";
- splitContainer_Editor_Timestamps.Orientation = Orientation.Horizontal;
- //
- // splitContainer_Editor_Timestamps.Panel1
- //
- splitContainer_Editor_Timestamps.Panel1.Controls.Add(listView_Split);
- //
- // splitContainer_Editor_Timestamps.Panel2
- //
- splitContainer_Editor_Timestamps.Panel2.Controls.Add(groupBox_editClip_Options);
- splitContainer_Editor_Timestamps.Size = new Size(316, 357);
- splitContainer_Editor_Timestamps.SplitterDistance = 90;
- splitContainer_Editor_Timestamps.TabIndex = 37;
- //
- // listView_Split
- //
- listView_Split.CheckBoxes = true;
- listView_Split.Columns.AddRange(new ColumnHeader[] { columnHeader_Trim_Checkbox, columnHeader_Trim_Start, columnHeader_Trim_End, columnHeader_Trim_Duration, columnHeader_Trim_Label });
- listView_Split.Dock = DockStyle.Fill;
- listView_Split.Font = new Font("Segoe UI", 9F);
- listView_Split.FullRowSelect = true;
- listView_Split.GridLines = true;
- listView_Split.Location = new Point(0, 0);
- listView_Split.Name = "listView_Split";
- listView_Split.OwnerDraw = true;
- listView_Split.Size = new Size(316, 90);
- listView_Split.Sorting = SortOrder.Ascending;
- listView_Split.TabIndex = 1;
- listView_Split.UseCompatibleStateImageBehavior = false;
- listView_Split.View = View.Details;
- listView_Split.ColumnClick += listView_Split_ColumnClick;
- listView_Split.DrawColumnHeader += listView_Split_DrawColumnHeader;
- listView_Split.DrawItem += listView_Split_DrawItem;
- listView_Split.DrawSubItem += listView_Split_DrawSubItem;
- listView_Split.ItemSelectionChanged += listView_Split_ItemSelectionChanged;
- listView_Split.MouseClick += listView_Split_MouseClick;
- //
- // columnHeader_Trim_Checkbox
- //
- columnHeader_Trim_Checkbox.Text = "";
- columnHeader_Trim_Checkbox.Width = 25;
- //
- // columnHeader_Trim_Start
- //
- columnHeader_Trim_Start.Text = "Start";
- //
- // columnHeader_Trim_End
- //
- columnHeader_Trim_End.Text = "Ende";
- //
- // columnHeader_Trim_Duration
- //
- columnHeader_Trim_Duration.Text = "Dauer";
- //
- // columnHeader_Trim_Label
- //
- columnHeader_Trim_Label.Text = "Kategorie";
- columnHeader_Trim_Label.Width = 90;
+ button_editClip_scanAI_Results.Dock = DockStyle.Fill;
+ button_editClip_scanAI_Results.Enabled = false;
+ button_editClip_scanAI_Results.Font = new Font("Segoe UI", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ button_editClip_scanAI_Results.Location = new Point(151, 390);
+ button_editClip_scanAI_Results.Name = "button_editClip_scanAI_Results";
+ button_editClip_scanAI_Results.Size = new Size(142, 24);
+ button_editClip_scanAI_Results.TabIndex = 40;
+ button_editClip_scanAI_Results.Text = "Ergebnis...";
+ button_editClip_scanAI_Results.UseVisualStyleBackColor = true;
+ button_editClip_scanAI_Results.Click += button_editClip_scanAI_Results_Click;
//
// groupBox_editClip_Options
//
+ tableLayoutPanel_AI.SetColumnSpan(groupBox_editClip_Options, 2);
groupBox_editClip_Options.Controls.Add(tableLayoutPanel_scanAI_Options);
- groupBox_editClip_Options.Controls.Add(tableLayoutPanel_editClip_ScanAI);
groupBox_editClip_Options.Dock = DockStyle.Fill;
- groupBox_editClip_Options.Location = new Point(0, 0);
+ groupBox_editClip_Options.Location = new Point(3, 133);
groupBox_editClip_Options.Name = "groupBox_editClip_Options";
- groupBox_editClip_Options.Size = new Size(316, 263);
+ groupBox_editClip_Options.Size = new Size(290, 221);
groupBox_editClip_Options.TabIndex = 37;
groupBox_editClip_Options.TabStop = false;
groupBox_editClip_Options.Text = "Optionen";
@@ -1380,7 +1287,7 @@
tableLayoutPanel_scanAI_Options.RowStyles.Add(new RowStyle(SizeType.Absolute, 25F));
tableLayoutPanel_scanAI_Options.RowStyles.Add(new RowStyle(SizeType.Absolute, 25F));
tableLayoutPanel_scanAI_Options.RowStyles.Add(new RowStyle(SizeType.Absolute, 25F));
- tableLayoutPanel_scanAI_Options.Size = new Size(310, 207);
+ tableLayoutPanel_scanAI_Options.Size = new Size(284, 200);
tableLayoutPanel_scanAI_Options.TabIndex = 10;
//
// checkBox_scanAI_UseThresholdForPredictionLabel
@@ -1388,11 +1295,12 @@
checkBox_scanAI_UseThresholdForPredictionLabel.AutoSize = true;
checkBox_scanAI_UseThresholdForPredictionLabel.Dock = DockStyle.Fill;
checkBox_scanAI_UseThresholdForPredictionLabel.Enabled = false;
- checkBox_scanAI_UseThresholdForPredictionLabel.Location = new Point(155, 25);
+ checkBox_scanAI_UseThresholdForPredictionLabel.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ checkBox_scanAI_UseThresholdForPredictionLabel.Location = new Point(142, 25);
checkBox_scanAI_UseThresholdForPredictionLabel.Margin = new Padding(0);
checkBox_scanAI_UseThresholdForPredictionLabel.Name = "checkBox_scanAI_UseThresholdForPredictionLabel";
checkBox_scanAI_UseThresholdForPredictionLabel.Padding = new Padding(5, 2, 5, 2);
- checkBox_scanAI_UseThresholdForPredictionLabel.Size = new Size(155, 25);
+ checkBox_scanAI_UseThresholdForPredictionLabel.Size = new Size(142, 25);
checkBox_scanAI_UseThresholdForPredictionLabel.TabIndex = 13;
checkBox_scanAI_UseThresholdForPredictionLabel.Text = "auch für Kategorien";
checkBox_scanAI_UseThresholdForPredictionLabel.UseVisualStyleBackColor = true;
@@ -1403,13 +1311,14 @@
checkBox_scanAI_PornThreshold.AutoSize = true;
checkBox_scanAI_PornThreshold.Dock = DockStyle.Fill;
checkBox_scanAI_PornThreshold.Enabled = false;
+ checkBox_scanAI_PornThreshold.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
checkBox_scanAI_PornThreshold.Location = new Point(0, 50);
checkBox_scanAI_PornThreshold.Margin = new Padding(0);
checkBox_scanAI_PornThreshold.Name = "checkBox_scanAI_PornThreshold";
checkBox_scanAI_PornThreshold.Padding = new Padding(5, 2, 5, 2);
- checkBox_scanAI_PornThreshold.Size = new Size(155, 25);
+ checkBox_scanAI_PornThreshold.Size = new Size(142, 25);
checkBox_scanAI_PornThreshold.TabIndex = 11;
- checkBox_scanAI_PornThreshold.Text = "[AI] Porn Schwellwert";
+ checkBox_scanAI_PornThreshold.Text = "[AI] Porn";
checkBox_scanAI_PornThreshold.UseVisualStyleBackColor = true;
checkBox_scanAI_PornThreshold.CheckedChanged += checkBox_scanAI_PornThreshold_CheckedChanged;
//
@@ -1417,11 +1326,12 @@
//
checkBox_scanAI_addToResults.AutoSize = true;
checkBox_scanAI_addToResults.Dock = DockStyle.Fill;
- checkBox_scanAI_addToResults.Location = new Point(155, 0);
+ checkBox_scanAI_addToResults.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ checkBox_scanAI_addToResults.Location = new Point(142, 0);
checkBox_scanAI_addToResults.Margin = new Padding(0);
checkBox_scanAI_addToResults.Name = "checkBox_scanAI_addToResults";
checkBox_scanAI_addToResults.Padding = new Padding(5, 2, 5, 2);
- checkBox_scanAI_addToResults.Size = new Size(155, 25);
+ checkBox_scanAI_addToResults.Size = new Size(142, 25);
checkBox_scanAI_addToResults.TabIndex = 11;
checkBox_scanAI_addToResults.Text = "Ergebnisse hinzufügen";
checkBox_scanAI_addToResults.UseVisualStyleBackColor = true;
@@ -1430,11 +1340,12 @@
//
checkBox_editClip_removeOriginal.AutoSize = true;
checkBox_editClip_removeOriginal.Dock = DockStyle.Fill;
+ checkBox_editClip_removeOriginal.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
checkBox_editClip_removeOriginal.Location = new Point(0, 0);
checkBox_editClip_removeOriginal.Margin = new Padding(0);
checkBox_editClip_removeOriginal.Name = "checkBox_editClip_removeOriginal";
checkBox_editClip_removeOriginal.Padding = new Padding(5, 2, 5, 2);
- checkBox_editClip_removeOriginal.Size = new Size(155, 25);
+ checkBox_editClip_removeOriginal.Size = new Size(142, 25);
checkBox_editClip_removeOriginal.TabIndex = 2;
checkBox_editClip_removeOriginal.Text = "Original entfernen";
checkBox_editClip_removeOriginal.UseVisualStyleBackColor = true;
@@ -1443,11 +1354,12 @@
//
checkBox_scanAI_UseThresholds.AutoSize = true;
checkBox_scanAI_UseThresholds.Dock = DockStyle.Fill;
+ checkBox_scanAI_UseThresholds.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
checkBox_scanAI_UseThresholds.Location = new Point(0, 25);
checkBox_scanAI_UseThresholds.Margin = new Padding(0);
checkBox_scanAI_UseThresholds.Name = "checkBox_scanAI_UseThresholds";
checkBox_scanAI_UseThresholds.Padding = new Padding(5, 2, 5, 2);
- checkBox_scanAI_UseThresholds.Size = new Size(155, 25);
+ checkBox_scanAI_UseThresholds.Size = new Size(142, 25);
checkBox_scanAI_UseThresholds.TabIndex = 12;
checkBox_scanAI_UseThresholds.Text = "Schwellwerte beachten";
checkBox_scanAI_UseThresholds.UseVisualStyleBackColor = true;
@@ -1458,13 +1370,14 @@
checkBox_scanAI_SexyThreshold.AutoSize = true;
checkBox_scanAI_SexyThreshold.Dock = DockStyle.Fill;
checkBox_scanAI_SexyThreshold.Enabled = false;
+ checkBox_scanAI_SexyThreshold.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
checkBox_scanAI_SexyThreshold.Location = new Point(0, 100);
checkBox_scanAI_SexyThreshold.Margin = new Padding(0);
checkBox_scanAI_SexyThreshold.Name = "checkBox_scanAI_SexyThreshold";
checkBox_scanAI_SexyThreshold.Padding = new Padding(5, 2, 5, 2);
- checkBox_scanAI_SexyThreshold.Size = new Size(155, 25);
+ checkBox_scanAI_SexyThreshold.Size = new Size(142, 25);
checkBox_scanAI_SexyThreshold.TabIndex = 10;
- checkBox_scanAI_SexyThreshold.Text = "[AI] Sexy Schwellwert";
+ checkBox_scanAI_SexyThreshold.Text = "[AI] Sexy";
checkBox_scanAI_SexyThreshold.UseVisualStyleBackColor = true;
checkBox_scanAI_SexyThreshold.CheckedChanged += checkBox_scanAI_SexyThreshold_CheckedChanged;
//
@@ -1477,7 +1390,7 @@
trackBar_scanAI_hentaiThreshold.Margin = new Padding(0);
trackBar_scanAI_hentaiThreshold.Maximum = 100;
trackBar_scanAI_hentaiThreshold.Name = "trackBar_scanAI_hentaiThreshold";
- trackBar_scanAI_hentaiThreshold.Size = new Size(310, 32);
+ trackBar_scanAI_hentaiThreshold.Size = new Size(284, 25);
trackBar_scanAI_hentaiThreshold.TabIndex = 8;
trackBar_scanAI_hentaiThreshold.TickFrequency = 10;
trackBar_scanAI_hentaiThreshold.Value = 50;
@@ -1487,10 +1400,11 @@
//
label_scanAI_pornThreshold_Value.AutoSize = true;
label_scanAI_pornThreshold_Value.Dock = DockStyle.Fill;
- label_scanAI_pornThreshold_Value.Location = new Point(155, 50);
+ label_scanAI_pornThreshold_Value.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ label_scanAI_pornThreshold_Value.Location = new Point(142, 50);
label_scanAI_pornThreshold_Value.Margin = new Padding(0);
label_scanAI_pornThreshold_Value.Name = "label_scanAI_pornThreshold_Value";
- label_scanAI_pornThreshold_Value.Size = new Size(155, 25);
+ label_scanAI_pornThreshold_Value.Size = new Size(142, 25);
label_scanAI_pornThreshold_Value.TabIndex = 2;
label_scanAI_pornThreshold_Value.Text = "0,5";
label_scanAI_pornThreshold_Value.TextAlign = ContentAlignment.MiddleCenter;
@@ -1504,7 +1418,7 @@
trackBar_scanAI_pornThreshold.Margin = new Padding(0);
trackBar_scanAI_pornThreshold.Maximum = 100;
trackBar_scanAI_pornThreshold.Name = "trackBar_scanAI_pornThreshold";
- trackBar_scanAI_pornThreshold.Size = new Size(310, 25);
+ trackBar_scanAI_pornThreshold.Size = new Size(284, 25);
trackBar_scanAI_pornThreshold.TabIndex = 0;
trackBar_scanAI_pornThreshold.TickFrequency = 10;
trackBar_scanAI_pornThreshold.Value = 50;
@@ -1514,10 +1428,11 @@
//
label_scanAI_sexyThreshold_Value.AutoSize = true;
label_scanAI_sexyThreshold_Value.Dock = DockStyle.Fill;
- label_scanAI_sexyThreshold_Value.Location = new Point(155, 100);
+ label_scanAI_sexyThreshold_Value.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ label_scanAI_sexyThreshold_Value.Location = new Point(142, 100);
label_scanAI_sexyThreshold_Value.Margin = new Padding(0);
label_scanAI_sexyThreshold_Value.Name = "label_scanAI_sexyThreshold_Value";
- label_scanAI_sexyThreshold_Value.Size = new Size(155, 25);
+ label_scanAI_sexyThreshold_Value.Size = new Size(142, 25);
label_scanAI_sexyThreshold_Value.TabIndex = 4;
label_scanAI_sexyThreshold_Value.Text = "0,5";
label_scanAI_sexyThreshold_Value.TextAlign = ContentAlignment.MiddleCenter;
@@ -1531,7 +1446,7 @@
trackBar_scanAI_sexyThreshold.Margin = new Padding(0);
trackBar_scanAI_sexyThreshold.Maximum = 100;
trackBar_scanAI_sexyThreshold.Name = "trackBar_scanAI_sexyThreshold";
- trackBar_scanAI_sexyThreshold.Size = new Size(310, 25);
+ trackBar_scanAI_sexyThreshold.Size = new Size(284, 25);
trackBar_scanAI_sexyThreshold.TabIndex = 5;
trackBar_scanAI_sexyThreshold.TickFrequency = 10;
trackBar_scanAI_sexyThreshold.Value = 50;
@@ -1541,10 +1456,11 @@
//
label_scanAI_hentaiThreshold_Value.AutoSize = true;
label_scanAI_hentaiThreshold_Value.Dock = DockStyle.Fill;
- label_scanAI_hentaiThreshold_Value.Location = new Point(155, 150);
+ label_scanAI_hentaiThreshold_Value.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ label_scanAI_hentaiThreshold_Value.Location = new Point(142, 150);
label_scanAI_hentaiThreshold_Value.Margin = new Padding(0);
label_scanAI_hentaiThreshold_Value.Name = "label_scanAI_hentaiThreshold_Value";
- label_scanAI_hentaiThreshold_Value.Size = new Size(155, 25);
+ label_scanAI_hentaiThreshold_Value.Size = new Size(142, 25);
label_scanAI_hentaiThreshold_Value.TabIndex = 7;
label_scanAI_hentaiThreshold_Value.Text = "0,5";
label_scanAI_hentaiThreshold_Value.TextAlign = ContentAlignment.MiddleCenter;
@@ -1554,80 +1470,101 @@
checkBox_scanAI_HentaiThreshold.AutoSize = true;
checkBox_scanAI_HentaiThreshold.Dock = DockStyle.Fill;
checkBox_scanAI_HentaiThreshold.Enabled = false;
+ checkBox_scanAI_HentaiThreshold.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
checkBox_scanAI_HentaiThreshold.Location = new Point(0, 150);
checkBox_scanAI_HentaiThreshold.Margin = new Padding(0);
checkBox_scanAI_HentaiThreshold.Name = "checkBox_scanAI_HentaiThreshold";
checkBox_scanAI_HentaiThreshold.Padding = new Padding(5, 2, 5, 2);
- checkBox_scanAI_HentaiThreshold.Size = new Size(155, 25);
+ checkBox_scanAI_HentaiThreshold.Size = new Size(142, 25);
checkBox_scanAI_HentaiThreshold.TabIndex = 9;
- checkBox_scanAI_HentaiThreshold.Text = "[AI] Hentai Schwellwert";
+ checkBox_scanAI_HentaiThreshold.Text = "[AI] Hentai";
checkBox_scanAI_HentaiThreshold.UseVisualStyleBackColor = true;
checkBox_scanAI_HentaiThreshold.CheckedChanged += checkBox_scanAI_HentaiThreshold_CheckedChanged;
//
- // tableLayoutPanel_editClip_ScanAI
+ // listView_Split
//
- tableLayoutPanel_editClip_ScanAI.ColumnCount = 2;
- tableLayoutPanel_editClip_ScanAI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
- tableLayoutPanel_editClip_ScanAI.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
- tableLayoutPanel_editClip_ScanAI.Controls.Add(button_editClip_scanAI, 0, 0);
- tableLayoutPanel_editClip_ScanAI.Controls.Add(button_editClip_scanAI_Results, 1, 0);
- tableLayoutPanel_editClip_ScanAI.Dock = DockStyle.Bottom;
- tableLayoutPanel_editClip_ScanAI.Location = new Point(3, 225);
- tableLayoutPanel_editClip_ScanAI.Name = "tableLayoutPanel_editClip_ScanAI";
- tableLayoutPanel_editClip_ScanAI.RowCount = 1;
- tableLayoutPanel_editClip_ScanAI.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
- tableLayoutPanel_editClip_ScanAI.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
- tableLayoutPanel_editClip_ScanAI.Size = new Size(310, 35);
- tableLayoutPanel_editClip_ScanAI.TabIndex = 9;
+ listView_Split.CheckBoxes = true;
+ listView_Split.Columns.AddRange(new ColumnHeader[] { columnHeader_Trim_Checkbox, columnHeader_Trim_Start, columnHeader_Trim_End, columnHeader_Trim_Duration, columnHeader_Trim_Label });
+ tableLayoutPanel_AI.SetColumnSpan(listView_Split, 2);
+ listView_Split.Dock = DockStyle.Fill;
+ listView_Split.Font = new Font("Segoe UI", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ listView_Split.FullRowSelect = true;
+ listView_Split.GridLines = true;
+ listView_Split.Location = new Point(3, 3);
+ listView_Split.Name = "listView_Split";
+ listView_Split.OwnerDraw = true;
+ listView_Split.Size = new Size(290, 94);
+ listView_Split.Sorting = SortOrder.Ascending;
+ listView_Split.TabIndex = 1;
+ listView_Split.UseCompatibleStateImageBehavior = false;
+ listView_Split.View = View.Details;
+ listView_Split.ColumnClick += listView_Split_ColumnClick;
+ listView_Split.DrawColumnHeader += listView_Split_DrawColumnHeader;
+ listView_Split.DrawItem += listView_Split_DrawItem;
+ listView_Split.DrawSubItem += listView_Split_DrawSubItem;
+ listView_Split.ItemSelectionChanged += listView_Split_ItemSelectionChanged;
+ listView_Split.MouseClick += listView_Split_MouseClick;
//
- // button_editClip_scanAI
+ // columnHeader_Trim_Checkbox
//
- button_editClip_scanAI.Dock = DockStyle.Bottom;
- button_editClip_scanAI.Enabled = false;
- button_editClip_scanAI.Location = new Point(3, 3);
- button_editClip_scanAI.Name = "button_editClip_scanAI";
- button_editClip_scanAI.Size = new Size(149, 29);
- button_editClip_scanAI.TabIndex = 41;
- button_editClip_scanAI.Text = "Mit AI analysieren";
- button_editClip_scanAI.UseVisualStyleBackColor = true;
- button_editClip_scanAI.Click += button_editClip_scanAI_Click;
+ columnHeader_Trim_Checkbox.Text = "";
+ columnHeader_Trim_Checkbox.Width = 25;
//
- // button_editClip_scanAI_Results
+ // columnHeader_Trim_Start
//
- button_editClip_scanAI_Results.Dock = DockStyle.Bottom;
- button_editClip_scanAI_Results.Enabled = false;
- button_editClip_scanAI_Results.Location = new Point(158, 3);
- button_editClip_scanAI_Results.Name = "button_editClip_scanAI_Results";
- button_editClip_scanAI_Results.Size = new Size(149, 29);
- button_editClip_scanAI_Results.TabIndex = 40;
- button_editClip_scanAI_Results.Text = "Ergebnis...";
- button_editClip_scanAI_Results.UseVisualStyleBackColor = true;
- button_editClip_scanAI_Results.Click += button_editClip_scanAI_Results_Click;
+ columnHeader_Trim_Start.Text = "Start";
//
- // button_AddSplit
+ // columnHeader_Trim_End
//
- button_AddSplit.BackgroundImageLayout = ImageLayout.Zoom;
- button_AddSplit.Dock = DockStyle.Bottom;
- button_AddSplit.Location = new Point(0, 357);
- button_AddSplit.Name = "button_AddSplit";
- button_AddSplit.Size = new Size(316, 29);
- button_AddSplit.TabIndex = 31;
- button_AddSplit.Text = "Hinzufügen";
- button_AddSplit.UseVisualStyleBackColor = true;
- button_AddSplit.Click += button_AddSplit_Click;
+ columnHeader_Trim_End.Text = "Ende";
+ //
+ // columnHeader_Trim_Duration
+ //
+ columnHeader_Trim_Duration.Text = "Dauer";
+ //
+ // columnHeader_Trim_Label
+ //
+ columnHeader_Trim_Label.Text = "Kategorie";
+ columnHeader_Trim_Label.Width = 90;
//
// button_SplitFiles
//
button_SplitFiles.BackgroundImageLayout = ImageLayout.Zoom;
button_SplitFiles.Dock = DockStyle.Fill;
- button_SplitFiles.Location = new Point(0, 0);
+ button_SplitFiles.Font = new Font("Segoe UI", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ button_SplitFiles.Location = new Point(151, 360);
button_SplitFiles.Name = "button_SplitFiles";
- button_SplitFiles.Size = new Size(316, 30);
+ button_SplitFiles.Size = new Size(142, 24);
button_SplitFiles.TabIndex = 26;
button_SplitFiles.Text = "Schneiden";
button_SplitFiles.UseVisualStyleBackColor = true;
button_SplitFiles.Click += button_StartSplit_Click;
//
+ // button_editClip_scanAI
+ //
+ button_editClip_scanAI.Dock = DockStyle.Fill;
+ button_editClip_scanAI.Enabled = false;
+ button_editClip_scanAI.Font = new Font("Segoe UI", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0);
+ button_editClip_scanAI.Location = new Point(3, 390);
+ button_editClip_scanAI.Name = "button_editClip_scanAI";
+ button_editClip_scanAI.Size = new Size(142, 24);
+ button_editClip_scanAI.TabIndex = 41;
+ button_editClip_scanAI.Text = "Mit AI analysieren";
+ button_editClip_scanAI.UseVisualStyleBackColor = true;
+ button_editClip_scanAI.Click += button_editClip_scanAI_Click;
+ //
+ // button_Editor_Options
+ //
+ tableLayoutPanel_AI.SetColumnSpan(button_Editor_Options, 2);
+ button_Editor_Options.Dock = DockStyle.Fill;
+ button_Editor_Options.Location = new Point(3, 103);
+ button_Editor_Options.Name = "button_Editor_Options";
+ button_Editor_Options.Size = new Size(290, 24);
+ button_Editor_Options.TabIndex = 42;
+ button_Editor_Options.Text = "Optionen ausblenden";
+ button_Editor_Options.UseVisualStyleBackColor = true;
+ button_Editor_Options.Click += button_Editor_Options_Click;
+ //
// tabPage_Player
//
tabPage_Player.Controls.Add(splitContainer_Player);
@@ -3261,29 +3198,28 @@
tableLayoutPanel_Settings_Main.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
tableLayoutPanel_Settings_Main.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
tableLayoutPanel_Settings_Main.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_checkMFCModels, 6, 1);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_useCBApi, 0, 1);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_checkMFCModels, 6, 2);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_useCBApi, 0, 2);
tableLayoutPanel_Settings_Main.Controls.Add(label_AudioDevice, 0, 9);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_HiddenMode, 0, 0);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_HiddenMode, 0, 1);
tableLayoutPanel_Settings_Main.Controls.Add(button_isFfmpegInstalled, 0, 10);
tableLayoutPanel_Settings_Main.Controls.Add(button_deleteObsoleteThumbnails, 6, 10);
tableLayoutPanel_Settings_Main.Controls.Add(button_ReloadAudioDevice, 10, 9);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_warnFreeDiskSpace, 0, 2);
- tableLayoutPanel_Settings_Main.Controls.Add(label_AutoShutdown, 10, 6);
- tableLayoutPanel_Settings_Main.Controls.Add(comboBox_dateTimePicker_AutoShutdown, 4, 6);
- tableLayoutPanel_Settings_Main.Controls.Add(label_warnFreeDiskSpace, 5, 2);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_warnFreeDiskSpace, 0, 3);
+ tableLayoutPanel_Settings_Main.Controls.Add(label_AutoShutdown, 10, 8);
+ tableLayoutPanel_Settings_Main.Controls.Add(comboBox_dateTimePicker_AutoShutdown, 4, 8);
+ tableLayoutPanel_Settings_Main.Controls.Add(label_warnFreeDiskSpace, 5, 3);
tableLayoutPanel_Settings_Main.Controls.Add(comboBox_AudioDevice, 4, 9);
- tableLayoutPanel_Settings_Main.Controls.Add(dateTimePicker_AutoShutdown, 2, 6);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_warnFreeDiskSpace_StopDownloads, 1, 3);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_useInternalPlayer, 0, 4);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_dateTime_AutoShutdown, 0, 6);
- tableLayoutPanel_Settings_Main.Controls.Add(numericUpDown_warnFreeDiskSpace, 4, 2);
- tableLayoutPanel_Settings_Main.Controls.Add(checkBox_PausePlaybackWhenSwitchingTabs, 0, 5);
- tableLayoutPanel_Settings_Main.Controls.Add(label_checkSpeed, 0, 7);
- tableLayoutPanel_Settings_Main.Controls.Add(comboBox_checkSpeed, 4, 7);
- tableLayoutPanel_Settings_Main.Controls.Add(label_Thumbnail, 0, 8);
- tableLayoutPanel_Settings_Main.Controls.Add(comboBox_Thumbnail, 4, 8);
+ tableLayoutPanel_Settings_Main.Controls.Add(dateTimePicker_AutoShutdown, 2, 8);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_warnFreeDiskSpace_StopDownloads, 1, 4);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_useInternalPlayer, 0, 5);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_dateTime_AutoShutdown, 0, 8);
+ tableLayoutPanel_Settings_Main.Controls.Add(numericUpDown_warnFreeDiskSpace, 4, 3);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_PausePlaybackWhenSwitchingTabs, 0, 6);
tableLayoutPanel_Settings_Main.Controls.Add(button_SaveEntries, 0, 11);
+ tableLayoutPanel_Settings_Main.Controls.Add(label_ChaturbateLoginStatus, 0, 0);
+ tableLayoutPanel_Settings_Main.Controls.Add(button_ChaturbateLogin, 3, 0);
+ tableLayoutPanel_Settings_Main.Controls.Add(checkBox_AutoQuickScan, 0, 7);
tableLayoutPanel_Settings_Main.Dock = DockStyle.Fill;
tableLayoutPanel_Settings_Main.Location = new Point(3, 18);
tableLayoutPanel_Settings_Main.Name = "tableLayoutPanel_Settings_Main";
@@ -3308,7 +3244,7 @@
//
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_checkMFCModels, 5);
checkBox_checkMFCModels.Dock = DockStyle.Fill;
- checkBox_checkMFCModels.Location = new Point(207, 25);
+ checkBox_checkMFCModels.Location = new Point(207, 47);
checkBox_checkMFCModels.Name = "checkBox_checkMFCModels";
checkBox_checkMFCModels.Size = new Size(188, 16);
checkBox_checkMFCModels.TabIndex = 76;
@@ -3319,7 +3255,7 @@
//
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_useCBApi, 6);
checkBox_useCBApi.Dock = DockStyle.Fill;
- checkBox_useCBApi.Location = new Point(3, 25);
+ checkBox_useCBApi.Location = new Point(3, 47);
checkBox_useCBApi.Name = "checkBox_useCBApi";
checkBox_useCBApi.Size = new Size(198, 16);
checkBox_useCBApi.TabIndex = 74;
@@ -3346,7 +3282,7 @@
checkBox_HiddenMode.CheckState = CheckState.Checked;
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_HiddenMode, 11);
checkBox_HiddenMode.Dock = DockStyle.Fill;
- checkBox_HiddenMode.Location = new Point(3, 3);
+ checkBox_HiddenMode.Location = new Point(3, 25);
checkBox_HiddenMode.Name = "checkBox_HiddenMode";
checkBox_HiddenMode.Size = new Size(392, 16);
checkBox_HiddenMode.TabIndex = 13;
@@ -3404,7 +3340,7 @@
//
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_warnFreeDiskSpace, 4);
checkBox_warnFreeDiskSpace.Dock = DockStyle.Fill;
- checkBox_warnFreeDiskSpace.Location = new Point(3, 47);
+ checkBox_warnFreeDiskSpace.Location = new Point(3, 69);
checkBox_warnFreeDiskSpace.Name = "checkBox_warnFreeDiskSpace";
checkBox_warnFreeDiskSpace.Size = new Size(98, 16);
checkBox_warnFreeDiskSpace.TabIndex = 49;
@@ -3417,7 +3353,7 @@
label_AutoShutdown.AutoSize = true;
label_AutoShutdown.Dock = DockStyle.Fill;
label_AutoShutdown.Font = new Font("Segoe UI", 6.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
- label_AutoShutdown.Location = new Point(287, 135);
+ label_AutoShutdown.Location = new Point(287, 179);
label_AutoShutdown.Margin = new Padding(3);
label_AutoShutdown.Name = "label_AutoShutdown";
label_AutoShutdown.Size = new Size(108, 16);
@@ -3432,7 +3368,7 @@
comboBox_dateTimePicker_AutoShutdown.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox_dateTimePicker_AutoShutdown.FormattingEnabled = true;
comboBox_dateTimePicker_AutoShutdown.Items.AddRange(new object[] { "Programm beenden", "Computer herunterfahren" });
- comboBox_dateTimePicker_AutoShutdown.Location = new Point(104, 132);
+ comboBox_dateTimePicker_AutoShutdown.Location = new Point(104, 176);
comboBox_dateTimePicker_AutoShutdown.Margin = new Padding(0);
comboBox_dateTimePicker_AutoShutdown.Name = "comboBox_dateTimePicker_AutoShutdown";
comboBox_dateTimePicker_AutoShutdown.Size = new Size(180, 21);
@@ -3442,7 +3378,7 @@
//
tableLayoutPanel_Settings_Main.SetColumnSpan(label_warnFreeDiskSpace, 6);
label_warnFreeDiskSpace.Dock = DockStyle.Fill;
- label_warnFreeDiskSpace.Location = new Point(157, 47);
+ label_warnFreeDiskSpace.Location = new Point(157, 69);
label_warnFreeDiskSpace.Margin = new Padding(3);
label_warnFreeDiskSpace.Name = "label_warnFreeDiskSpace";
label_warnFreeDiskSpace.Size = new Size(238, 16);
@@ -3469,7 +3405,7 @@
dateTimePicker_AutoShutdown.CustomFormat = "HH:mm";
dateTimePicker_AutoShutdown.Dock = DockStyle.Fill;
dateTimePicker_AutoShutdown.Format = DateTimePickerFormat.Custom;
- dateTimePicker_AutoShutdown.Location = new Point(52, 132);
+ dateTimePicker_AutoShutdown.Location = new Point(52, 176);
dateTimePicker_AutoShutdown.Margin = new Padding(0);
dateTimePicker_AutoShutdown.Name = "dateTimePicker_AutoShutdown";
dateTimePicker_AutoShutdown.ShowUpDown = true;
@@ -3482,7 +3418,7 @@
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_warnFreeDiskSpace_StopDownloads, 10);
checkBox_warnFreeDiskSpace_StopDownloads.Dock = DockStyle.Fill;
checkBox_warnFreeDiskSpace_StopDownloads.Enabled = false;
- checkBox_warnFreeDiskSpace_StopDownloads.Location = new Point(29, 69);
+ checkBox_warnFreeDiskSpace_StopDownloads.Location = new Point(29, 91);
checkBox_warnFreeDiskSpace_StopDownloads.Name = "checkBox_warnFreeDiskSpace_StopDownloads";
checkBox_warnFreeDiskSpace_StopDownloads.Size = new Size(366, 16);
checkBox_warnFreeDiskSpace_StopDownloads.TabIndex = 52;
@@ -3495,7 +3431,7 @@
checkBox_useInternalPlayer.CheckState = CheckState.Checked;
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_useInternalPlayer, 11);
checkBox_useInternalPlayer.Dock = DockStyle.Fill;
- checkBox_useInternalPlayer.Location = new Point(3, 91);
+ checkBox_useInternalPlayer.Location = new Point(3, 113);
checkBox_useInternalPlayer.Name = "checkBox_useInternalPlayer";
checkBox_useInternalPlayer.Size = new Size(392, 16);
checkBox_useInternalPlayer.TabIndex = 42;
@@ -3508,7 +3444,7 @@
checkBox_dateTime_AutoShutdown.AutoSize = true;
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_dateTime_AutoShutdown, 2);
checkBox_dateTime_AutoShutdown.Dock = DockStyle.Fill;
- checkBox_dateTime_AutoShutdown.Location = new Point(3, 135);
+ checkBox_dateTime_AutoShutdown.Location = new Point(3, 179);
checkBox_dateTime_AutoShutdown.Name = "checkBox_dateTime_AutoShutdown";
checkBox_dateTime_AutoShutdown.Size = new Size(46, 16);
checkBox_dateTime_AutoShutdown.TabIndex = 61;
@@ -3520,7 +3456,7 @@
//
numericUpDown_warnFreeDiskSpace.Dock = DockStyle.Fill;
numericUpDown_warnFreeDiskSpace.Enabled = false;
- numericUpDown_warnFreeDiskSpace.Location = new Point(104, 44);
+ numericUpDown_warnFreeDiskSpace.Location = new Point(104, 66);
numericUpDown_warnFreeDiskSpace.Margin = new Padding(0);
numericUpDown_warnFreeDiskSpace.Name = "numericUpDown_warnFreeDiskSpace";
numericUpDown_warnFreeDiskSpace.Size = new Size(50, 22);
@@ -3535,67 +3471,13 @@
checkBox_PausePlaybackWhenSwitchingTabs.CheckState = CheckState.Checked;
tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_PausePlaybackWhenSwitchingTabs, 11);
checkBox_PausePlaybackWhenSwitchingTabs.Dock = DockStyle.Fill;
- checkBox_PausePlaybackWhenSwitchingTabs.Location = new Point(3, 113);
+ checkBox_PausePlaybackWhenSwitchingTabs.Location = new Point(3, 135);
checkBox_PausePlaybackWhenSwitchingTabs.Name = "checkBox_PausePlaybackWhenSwitchingTabs";
checkBox_PausePlaybackWhenSwitchingTabs.Size = new Size(392, 16);
checkBox_PausePlaybackWhenSwitchingTabs.TabIndex = 70;
checkBox_PausePlaybackWhenSwitchingTabs.Text = "Wiedergabe pausieren bei Tabwechsel";
checkBox_PausePlaybackWhenSwitchingTabs.UseVisualStyleBackColor = true;
//
- // label_checkSpeed
- //
- label_checkSpeed.AutoSize = true;
- tableLayoutPanel_Settings_Main.SetColumnSpan(label_checkSpeed, 4);
- label_checkSpeed.Dock = DockStyle.Fill;
- label_checkSpeed.Location = new Point(3, 157);
- label_checkSpeed.Margin = new Padding(3);
- label_checkSpeed.Name = "label_checkSpeed";
- label_checkSpeed.Size = new Size(98, 16);
- label_checkSpeed.TabIndex = 29;
- label_checkSpeed.Text = "Geschwindigkeit:";
- label_checkSpeed.TextAlign = ContentAlignment.MiddleLeft;
- //
- // comboBox_checkSpeed
- //
- tableLayoutPanel_Settings_Main.SetColumnSpan(comboBox_checkSpeed, 6);
- comboBox_checkSpeed.Dock = DockStyle.Fill;
- comboBox_checkSpeed.DropDownStyle = ComboBoxStyle.DropDownList;
- comboBox_checkSpeed.FormattingEnabled = true;
- comboBox_checkSpeed.Items.AddRange(new object[] { "Sehr langsam", "Langsam", "Normal", "Schnell", "Sofort" });
- comboBox_checkSpeed.Location = new Point(104, 154);
- comboBox_checkSpeed.Margin = new Padding(0);
- comboBox_checkSpeed.Name = "comboBox_checkSpeed";
- comboBox_checkSpeed.Size = new Size(180, 21);
- comboBox_checkSpeed.TabIndex = 28;
- comboBox_checkSpeed.SelectedIndexChanged += comboBox_checkSpeed_SelectedIndexChanged;
- //
- // label_Thumbnail
- //
- label_Thumbnail.AutoSize = true;
- tableLayoutPanel_Settings_Main.SetColumnSpan(label_Thumbnail, 4);
- label_Thumbnail.Dock = DockStyle.Fill;
- label_Thumbnail.Location = new Point(3, 179);
- label_Thumbnail.Margin = new Padding(3);
- label_Thumbnail.Name = "label_Thumbnail";
- label_Thumbnail.Size = new Size(98, 16);
- label_Thumbnail.TabIndex = 72;
- label_Thumbnail.Text = "Vorschau:";
- label_Thumbnail.TextAlign = ContentAlignment.MiddleLeft;
- //
- // comboBox_Thumbnail
- //
- tableLayoutPanel_Settings_Main.SetColumnSpan(comboBox_Thumbnail, 6);
- comboBox_Thumbnail.Dock = DockStyle.Fill;
- comboBox_Thumbnail.DropDownStyle = ComboBoxStyle.DropDownList;
- comboBox_Thumbnail.Enabled = false;
- comboBox_Thumbnail.FormattingEnabled = true;
- comboBox_Thumbnail.Items.AddRange(new object[] { "Statisches Bild", "Animiertes Bild" });
- comboBox_Thumbnail.Location = new Point(104, 176);
- comboBox_Thumbnail.Margin = new Padding(0);
- comboBox_Thumbnail.Name = "comboBox_Thumbnail";
- comboBox_Thumbnail.Size = new Size(180, 21);
- comboBox_Thumbnail.TabIndex = 71;
- //
// button_SaveEntries
//
tableLayoutPanel_Settings_Main.SetColumnSpan(button_SaveEntries, 10);
@@ -3607,6 +3489,45 @@
button_SaveEntries.UseVisualStyleBackColor = true;
button_SaveEntries.Click += button_SaveEntries_Click;
//
+ // label_ChaturbateLoginStatus
+ //
+ label_ChaturbateLoginStatus.AutoSize = true;
+ tableLayoutPanel_Settings_Main.SetColumnSpan(label_ChaturbateLoginStatus, 3);
+ label_ChaturbateLoginStatus.Dock = DockStyle.Fill;
+ label_ChaturbateLoginStatus.Location = new Point(3, 0);
+ label_ChaturbateLoginStatus.Name = "label_ChaturbateLoginStatus";
+ label_ChaturbateLoginStatus.Size = new Size(72, 22);
+ label_ChaturbateLoginStatus.TabIndex = 77;
+ label_ChaturbateLoginStatus.Text = "Chaturbate:";
+ label_ChaturbateLoginStatus.TextAlign = ContentAlignment.MiddleLeft;
+ //
+ // button_ChaturbateLogin
+ //
+ tableLayoutPanel_Settings_Main.SetColumnSpan(button_ChaturbateLogin, 3);
+ button_ChaturbateLogin.Dock = DockStyle.Fill;
+ button_ChaturbateLogin.Location = new Point(78, 0);
+ button_ChaturbateLogin.Margin = new Padding(0);
+ button_ChaturbateLogin.Name = "button_ChaturbateLogin";
+ button_ChaturbateLogin.Size = new Size(126, 22);
+ button_ChaturbateLogin.TabIndex = 78;
+ button_ChaturbateLogin.Text = "Anmelden";
+ button_ChaturbateLogin.UseVisualStyleBackColor = true;
+ button_ChaturbateLogin.Click += button_ChaturbateLogin_Click;
+ //
+ // checkBox_AutoQuickScan
+ //
+ checkBox_AutoQuickScan.AutoSize = true;
+ checkBox_AutoQuickScan.Checked = true;
+ checkBox_AutoQuickScan.CheckState = CheckState.Checked;
+ tableLayoutPanel_Settings_Main.SetColumnSpan(checkBox_AutoQuickScan, 11);
+ checkBox_AutoQuickScan.Dock = DockStyle.Fill;
+ checkBox_AutoQuickScan.Location = new Point(3, 157);
+ checkBox_AutoQuickScan.Name = "checkBox_AutoQuickScan";
+ checkBox_AutoQuickScan.Size = new Size(392, 16);
+ checkBox_AutoQuickScan.TabIndex = 79;
+ checkBox_AutoQuickScan.Text = "Videos nach Abschluss automatisch Schnellscannen";
+ checkBox_AutoQuickScan.UseVisualStyleBackColor = true;
+ //
// groupBox_Settings_Downloads
//
groupBox_Settings_Downloads.Controls.Add(tableLayoutPanel_Settings_Downloads);
@@ -4438,15 +4359,7 @@
splitContainer_Editor_Player_Timestamps.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)splitContainer_Editor_Player_Timestamps).EndInit();
splitContainer_Editor_Player_Timestamps.ResumeLayout(false);
- splitContainer_Editor_PlayerDetails.Panel1.ResumeLayout(false);
- splitContainer_Editor_PlayerDetails.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_PlayerDetails).EndInit();
- splitContainer_Editor_PlayerDetails.ResumeLayout(false);
- splitContainer_Editor_VLC.Panel1.ResumeLayout(false);
- splitContainer_Editor_VLC.Panel1.PerformLayout();
- splitContainer_Editor_VLC.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_VLC).EndInit();
- splitContainer_Editor_VLC.ResumeLayout(false);
+ tableLayoutPanel_Editor_Player.ResumeLayout(false);
tableLayoutPanel_Editor_VLC.ResumeLayout(false);
tableLayoutPanel_Editor_VLC.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackBar_Editor_VLC).EndInit();
@@ -4454,21 +4367,13 @@
tableLayoutPanel_Editor_PlayerTrim.ResumeLayout(false);
tableLayoutPanel_Editor_PlayerTrim.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureBox_HotIcon_Trim).EndInit();
- splitContainer_Editor_cutClips.Panel1.ResumeLayout(false);
- splitContainer_Editor_cutClips.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_cutClips).EndInit();
- splitContainer_Editor_cutClips.ResumeLayout(false);
- splitContainer_Editor_Timestamps.Panel1.ResumeLayout(false);
- splitContainer_Editor_Timestamps.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)splitContainer_Editor_Timestamps).EndInit();
- splitContainer_Editor_Timestamps.ResumeLayout(false);
+ tableLayoutPanel_AI.ResumeLayout(false);
groupBox_editClip_Options.ResumeLayout(false);
tableLayoutPanel_scanAI_Options.ResumeLayout(false);
tableLayoutPanel_scanAI_Options.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackBar_scanAI_hentaiThreshold).EndInit();
((System.ComponentModel.ISupportInitialize)trackBar_scanAI_pornThreshold).EndInit();
((System.ComponentModel.ISupportInitialize)trackBar_scanAI_sexyThreshold).EndInit();
- tableLayoutPanel_editClip_ScanAI.ResumeLayout(false);
tabPage_Player.ResumeLayout(false);
splitContainer_Player.Panel1.ResumeLayout(false);
splitContainer_Player.Panel2.ResumeLayout(false);
@@ -4652,8 +4557,6 @@
private Button button_RecordingsFolder;
private Label label_RecordingsFolder;
private GroupBox groupBox_Settings_Main;
- private ComboBox comboBox_Thumbnail;
- private Label label_Thumbnail;
private CheckBox checkBox_PausePlaybackWhenSwitchingTabs;
private Button button_ReloadAudioDevice;
private ComboBox comboBox_AudioDevice;
@@ -4679,9 +4582,7 @@
private CheckBox checkBox_moveOnlyManuallyDeletedFiles;
private CheckBox checkBox_moveToRecycleBin;
private CheckBox checkBox_useInternalPlayer;
- private ComboBox comboBox_checkSpeed;
private NumericUpDown numericUpDown_MaxConcurrentDownloads;
- private Label label_checkSpeed;
private CheckBox checkBox_MaxConcurrentDownloads;
private CheckBox checkBox_loopFavorites;
private TabPage tabPage_Likes;
@@ -4782,8 +4683,6 @@
private Label label_Size_Value;
private TabPage tabPage_Editor;
private SplitContainer splitContainer_Editor_Player_Timestamps;
- private SplitContainer splitContainer_Editor_PlayerDetails;
- private SplitContainer splitContainer_Editor_VLC;
private FlyleafLib.Controls.WinForms.FlyleafHost flyleafHost_Editor;
private TableLayoutPanel tableLayoutPanel_Editor_VLC;
private Button button_Editor_VLC_Fullscreen;
@@ -4804,8 +4703,6 @@
private Label label_Date_Trim_Value;
private Label label_Size_Trim;
private Label label_Size_Trim_Value;
- private SplitContainer splitContainer_Editor_cutClips;
- private SplitContainer splitContainer_Editor_Timestamps;
private ListView listView_Split;
private ColumnHeader columnHeader_Trim_Start;
private ColumnHeader columnHeader_Trim_End;
@@ -4823,12 +4720,9 @@
private CheckBox checkBox_scanAI_HentaiThreshold;
private CheckBox checkBox_scanAI_UseThresholds;
private CheckBox checkBox_scanAI_addToResults;
- private TableLayoutPanel tableLayoutPanel_editClip_ScanAI;
private Button button_editClip_scanAI;
private Button button_editClip_scanAI_Results;
private CheckBox checkBox_editClip_removeOriginal;
- private Button button_AddSplit;
- private Button button_SplitFiles;
private TabPage tabPage_scanAI_Result;
private ListView listView_AI_Result;
private ColumnHeader columnHeader_AI_Results_Filename;
@@ -4839,7 +4733,6 @@
private ToolStripMenuItem anheftenToolStripMenuItem;
private ToolStripMenuItem loslösenToolStripMenuItem;
private ColumnHeader columnHeader_Trim_Label;
- private Label label_Editor_Label;
private ColumnHeader columnHeader_Trim_Checkbox;
private Button button_deleteObsoleteThumbnails;
private TableLayoutPanel tableLayoutPanel_Likes;
@@ -4894,6 +4787,14 @@
private CheckBox checkBox_checkMFCModels;
private Button button_player_Unwatch;
private Button button_player_Watch;
+ private Button button_SplitFiles;
+ private Button button_AddSplit;
+ private TableLayoutPanel tableLayoutPanel_AI;
+ private TableLayoutPanel tableLayoutPanel_Editor_Player;
+ private Button button_Editor_Options;
+ private Label label_ChaturbateLoginStatus;
+ private Button button_ChaturbateLogin;
+ private CheckBox checkBox_AutoQuickScan;
}
}
diff --git a/WinFormsApp1/Form1.cs b/WinFormsApp1/Form1.cs
index f05bda8..7547ab2 100644
--- a/WinFormsApp1/Form1.cs
+++ b/WinFormsApp1/Form1.cs
@@ -60,6 +60,7 @@ namespace WinFormsApp1
HashSet enabledCompletedDownloadTags = new HashSet();
HashSet enabledArchiveTags = new HashSet();
Regex regex_filename = new Regex(@"(0[1-9]|1[012])_(0[1-9]|1[0-9]|2[0-9]|3[0-1])_(19|20\d{2})__(0[0-9]|1[0-9]|2[0-3])-(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])-(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9])");
+ private List _aiHotspots = new();
int sortColumn = -1;
int stoppedCounterTries = 20;
int selectedSpeed = 2; // Normal
@@ -69,6 +70,7 @@ namespace WinFormsApp1
int itemsBeforeAfterToCheck = 3;
int modelProgressCounter = 0;
int modelProgressTotal = 0;
+ private string? _cbSessionCookie;
System.Windows.Forms.Timer labelUpdateTimer;
private static readonly HashSet onlineStates =
new(StringComparer.OrdinalIgnoreCase) { "public", "online" };
@@ -88,6 +90,9 @@ namespace WinFormsApp1
string latestmedia2 = "";
private TrackBarScrubber _playerScrub;
private TrackBarScrubber _editorScrub;
+ private static readonly SemaphoreSlim _downloadStartSemaphore = new SemaphoreSlim(1, 1);
+ private static DateTime _lastDownloadStart = DateTime.MinValue;
+ private static readonly TimeSpan _downloadStartGap = TimeSpan.FromSeconds(4);
NsfwSpy nsfwSpy = new NsfwSpy();
private static readonly HttpClient _httpClient = new()
{
@@ -108,14 +113,10 @@ namespace WinFormsApp1
int media1Volume = 100;
int media2Volume = 100;
DateTime lastActivity;
- DateTime loadedModelOnlineStatus;
- DateTime loadedOnlineroomsAPI;
DateTime? shutdownTime;
System.Windows.Forms.ToolTip modelDetailsToolTip = new System.Windows.Forms.ToolTip();
int idleTime = 5; // Time in seconds
- int ReloadOnlineroomsTime = 300; // Time in seconds
- int likedModelsOnline = 0;
- int favoritedModelsOnline = 0;
+ bool editorOptionsMinimized = true;
bool saveChanges = false;
bool getProcessInfoRunning = false;
bool loadingCompleted = false;
@@ -138,7 +139,6 @@ namespace WinFormsApp1
bool invalidLikesCheckRunning = false;
bool userDraggingTrackbar = false;
bool saveInProgress = false;
- bool editorResolutionInitialized = false;
string recordingFileFormat = ".mp4";
string latestClipboardItem = "";
string[] startParams = Array.Empty();
@@ -298,6 +298,18 @@ namespace WinFormsApp1
MessageBox.Show(ex.Message, "ReloadDatabase")));
}
};
+
+
+ var cf = Properties.Settings.Default.chaturbateSessionToken;
+ var sid = Properties.Settings.Default.chaturbateSessionID;
+
+ if (!string.IsNullOrWhiteSpace(cf) && !string.IsNullOrWhiteSpace(sid))
+ {
+ _cbSessionCookie = $"cf_clearance={cf}; sessionid={sid}";
+
+ button_ChaturbateLogin.Text = "Angemeldet";
+ button_ChaturbateLogin.ForeColor = Color.Green;
+ }
}
catch (System.Exception ex)
{
@@ -441,39 +453,34 @@ namespace WinFormsApp1
return;
}
- ImageList imageList = imageList_Thumbnails;
- imageList.Images.Clear();
-
- if (listView == null || listView.View != View.Tile)
- {
+ // Nur im Tile-Mode Thumbnails laden
+ if (listView.View != View.Tile)
return;
- }
- if (listView == listView_AI_Result)
- {
- imageList = imageList_Thumbnails_Temp;
- thumbnails = temp_folder!.GetFiles();
- }
- else
- {
- imageList = imageList_Thumbnails;
- thumbnails = thumbnailPath!.GetFiles();
- }
+ // Richtige ImageList wählen
+ bool isAiResult = listView == listView_AI_Result;
+ ImageList imageList = isAiResult ? imageList_Thumbnails_Temp : imageList_Thumbnails;
- if (!imageList.Images.ContainsKey(validProvider.Keys.ToArray()[0]))
- {
- imageList.Images.Add(validProvider.Keys.ToArray()[0], Properties.Resources.no_picture_cb);
- }
+ // ❌ WICHTIG: NICHT MEHR LÖSCHEN!
+ // imageList.Images.Clear();
- if (!imageList.Images.ContainsKey(validProvider.Keys.ToArray()[1]))
+ // Provider-Placeholders einmalig sicherstellen
+ var providerKeys = validProvider.Keys.ToArray();
+ if (providerKeys.Length >= 2)
{
- imageList.Images.Add(validProvider.Keys.ToArray()[1], Properties.Resources.no_picture_mfc);
+ if (!imageList.Images.ContainsKey(providerKeys[0]))
+ {
+ imageList.Images.Add(providerKeys[0], Properties.Resources.no_picture_cb);
+ }
+
+ if (!imageList.Images.ContainsKey(providerKeys[1]))
+ {
+ imageList.Images.Add(providerKeys[1], Properties.Resources.no_picture_mfc);
+ }
}
if (listView.Items.Count == 0)
- {
return;
- }
// Sichtbarer Bereich der ListView
System.Drawing.Rectangle visibleArea = listView.ClientRectangle;
@@ -485,64 +492,78 @@ namespace WinFormsApp1
if (item.SubItems.Count > 5 && item.SubItems[6] != null)
{
filename = System.IO.Path.GetFileName(item.SubItems[6].Text);
- filename = filename.Replace("HOT ", "");
}
else
{
filename = System.IO.Path.GetFileName(item.SubItems[0].Text);
- filename = filename.Replace("HOT ", "");
}
+ filename = filename.Replace("HOT ", "");
string filenameWithoutExt = System.IO.Path.GetFileNameWithoutExtension(filename);
- // Überprüfen, ob das Element im sichtbaren Bereich ist
+ // Nur Items im sichtbaren Bereich interessieren uns
if (item.Bounds.IntersectsWith(visibleArea))
{
string modelname = GetModelFromFilename(filename);
- var imageData = new ConcurrentDictionary();
- if (!imageList.Images.ContainsKey(filenameWithoutExt)) // Nur wenn Bild noch nicht geladen
+ // Nur laden, wenn das Bild in der ImageList noch nicht existiert
+ if (!imageList.Images.ContainsKey(filenameWithoutExt))
{
- FileInfo thumbnailfile = new FileInfo(System.IO.Path.Combine(thumbnailPath!.FullName, filenameWithoutExt.Replace("HOT ", "") + ".jpg"));
+ string thumbPath;
- if (listView == listView_AI_Result)
+ if (isAiResult)
{
- thumbnailfile = new FileInfo(System.IO.Path.Combine(temp_folder!.FullName, filenameWithoutExt.Replace("HOT ", "") + ".jpg"));
+ thumbPath = System.IO.Path.Combine(
+ temp_folder!.FullName,
+ filenameWithoutExt + ".jpg");
+ }
+ else
+ {
+ thumbPath = System.IO.Path.Combine(
+ thumbnailPath!.FullName,
+ filenameWithoutExt + ".jpg");
}
- if (File.Exists(thumbnailfile.FullName))
+ if (File.Exists(thumbPath))
{
- using (var stream = new FileStream(thumbnailfile.FullName, FileMode.Open, FileAccess.Read))
+ using (var stream = new FileStream(thumbPath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
var image = System.Drawing.Image.FromStream(stream);
- if (!imageList.Images.ContainsKey(filenameWithoutExt.Replace("HOT ", "")))
+ // Key = filenameWithoutExt (ohne „HOT “, ohne Extension)
+ if (!imageList.Images.ContainsKey(filenameWithoutExt))
{
imageList.Images.Add(filenameWithoutExt, image);
}
}
}
+ }
- string url = GetModelURL(modelname);
+ // ImageIndex setzen: zuerst Thumbnail, sonst Provider-Fallback
+ string url = GetModelURL(modelname);
- if (item.Index != -1 && imageList.Images.ContainsKey(filenameWithoutExt.Replace("HOT ", "")))
+ if (item.Index != -1 && imageList.Images.ContainsKey(filenameWithoutExt))
+ {
+ item.ImageIndex = imageList.Images.IndexOfKey(filenameWithoutExt);
+ }
+ else
+ {
+ foreach (string providerKey in validProvider.Keys)
{
- item.ImageIndex = imageList.Images.IndexOfKey(filenameWithoutExt.Replace("HOT ", ""));
- }
- else
- {
- foreach (string _provider in validProvider.Keys)
+ if (GetStreamProviderURL(url) == providerKey &&
+ imageList.Images.ContainsKey(providerKey))
{
- if (GetStreamProviderURL(url) == _provider)
- {
- item.ImageIndex = imageList.Images.IndexOfKey(_provider);
- }
+ item.ImageIndex = imageList.Images.IndexOfKey(providerKey);
+ break;
}
}
}
}
else
{
- if (imageList.Images.ContainsKey(filenameWithoutExt))
+ // Item nicht sichtbar → Thumbnail wieder aus ImageList schmeißen
+ // (Provider-Icons lassen wir in Ruhe)
+ if (!validProvider.Keys.Contains(filenameWithoutExt) &&
+ imageList.Images.ContainsKey(filenameWithoutExt))
{
imageList.Images.RemoveByKey(filenameWithoutExt);
}
@@ -555,6 +576,7 @@ namespace WinFormsApp1
}
}
+
private async void InitializePlayer()
{
await this.InvokeAsync(() =>
@@ -562,32 +584,29 @@ namespace WinFormsApp1
Engine.Start(new EngineConfig()
{
FFmpegPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\ffmpeg"),
-
-#if RELEASE
- LogLevel = LogLevel.Quiet,
-#else
LogLevel = LogLevel.Debug,
LogOutput = ":debug",
-#endif
UIRefresh = false,
UIRefreshInterval = 250
});
Config_Player = new Config();
- Config_Player.Player.VolumeMax = 100;
- Config_Player.Player.VolumeOffset = 1;
+ Config_Player.Audio.VolumeMax = 100;
+ Config_Player.Audio.VolumeOffset = 1;
Config_Editor = new Config();
- Config_Editor.Player.VolumeMax = 100;
- Config_Editor.Player.VolumeOffset = 1;
+ Config_Editor.Audio.VolumeMax = 100;
+ Config_Editor.Audio.VolumeOffset = 1;
flyleafHost_Player.Player?.Dispose();
flyleafHost_Player.Player = new Player(Config_Player);
flyleafHost_Player.ToggleFullScreenOnDoubleClick = false;
+ flyleafHost_Player.Player.PropertyChanged += Player_PropertyChanged;
flyleafHost_Editor.Player?.Dispose();
flyleafHost_Editor.Player = new Player(Config_Editor);
flyleafHost_Editor.ToggleFullScreenOnDoubleClick = false;
+ flyleafHost_Editor.Player.PropertyChanged += Editor_PropertyChanged;
});
await reloadAudioDevices();
@@ -757,15 +776,16 @@ namespace WinFormsApp1
await AddFileToListView(filepath);
}
- tabPage_CompletedDownloads.Text = $"Abgeschlossene Downloads ({listView_CompletedDownloads.Items.Count})";
+ // statt direktem Text-Setzen:
+ UpdateCompletedDownloadsTab();
}
catch (System.Exception ex)
{
- // Logging statt MessageBox
Console.WriteLine($"Fehler beim Hinzufügen zu CompletedDownloads: {ex.Message}");
}
}
+
private async Task AddFileToListView(string filepath)
{
FileInfo file = new FileInfo(filepath);
@@ -1085,6 +1105,285 @@ namespace WinFormsApp1
}
}
+ private async Task QuickScanVideoForHotspotsAsync(FileInfo video)
+ {
+ try
+ {
+ const int stepSeconds = 10; // z.B. alle 10 Sekunden ein Frame
+
+ var hotspots = new List();
+
+ // temp-Folder wie beim großen Scan vorbereiten
+ if (temp_folder == null || !temp_folder.Exists)
+ {
+ temp_folder = new DirectoryInfo(
+ Path.Combine(executeableFolder.FullName, "temp"));
+ if (!temp_folder.Exists)
+ temp_folder.Create();
+ }
+
+ // Dauer per ffprobe holen
+ double duration = await GetVideoDurationSecondsAsync(video.FullName)
+ .ConfigureAwait(false);
+ if (duration <= 0)
+ return;
+
+ // Analyse-Objekt aus Deinem Dictionary holen oder anlegen
+ if (!analysedFilesAI.TryGetValue(video.Name, out var analysis) || analysis == null)
+ {
+ analysis = new AnalyzedFilesAIResults
+ {
+ filesize = GetFilesize(video),
+ ai = new Dictionary()
+ };
+ analysedFilesAI[video.Name] = analysis;
+ }
+ else if (analysis.ai == null)
+ {
+ analysis.ai = new Dictionary();
+ }
+
+ // KEIN using, weil NsfwSpy nicht IDisposable ist
+ var nsfw = new NsfwSpy();
+
+ for (int t = 0; t < duration; t += stepSeconds)
+ {
+ // Dateiname wie bei Dir, nur einmal aufgebaut
+ string frameFileName =
+ $"{Path.GetFileNameWithoutExtension(video.Name)}_{t:D6}.jpg";
+ string framePath = Path.Combine(temp_folder.FullName, frameFileName);
+
+ // Frame schnell extrahieren
+ string args =
+ $"-ss {t} -i \"{video.FullName}\" -frames:v 1 -qscale:v 7 -y \"{framePath}\"";
+
+ int exitCode = await RunFfmpegAsync(args).ConfigureAwait(false);
+ if (exitCode != 0 || !File.Exists(framePath))
+ continue;
+
+ // --- analysedFilesAI benutzen wie beim kompletten Scan ---
+ NsfwSpyResult result;
+
+ // Key ist immer der reine Dateiname, so wie du ihn überall verwendest
+ string key = frameFileName;
+
+ if (!analysis.ai.TryGetValue(key, out result))
+ {
+ // Noch nicht analysiert → jetzt klassifizieren und in analysedFilesAI speichern
+ result = nsfw.ClassifyImage(framePath);
+ analysis.ai[key] = result;
+ }
+
+ // Ergebnisse auch in deine globale results-Liste übernehmen
+ results.Add(new NsfwSpyValue(framePath, result));
+
+ // Label aus dem Ergebnis holen
+ string label = result?.PredictedLabel ?? "Unknown";
+
+ // nur nicht-neutrale Stellen sammeln
+ if (!string.Equals(label, "Neutral", StringComparison.OrdinalIgnoreCase))
+ {
+ hotspots.Add(new AiHotspot
+ {
+ Start = t,
+ End = t + stepSeconds,
+ Label = label
+ // Score könntest du später noch ergänzen
+ });
+ }
+ }
+
+ if (hotspots.Count > 0)
+ {
+ // JSON neben dem Video, z.B. foo.mp4.ai.quick.json
+ string jsonPath = Path.ChangeExtension(video.FullName, ".ai.quick.json");
+ var json = System.Text.Json.JsonSerializer.Serialize(
+ hotspots,
+ new System.Text.Json.JsonSerializerOptions { WriteIndented = true }
+ );
+
+ await File.WriteAllTextAsync(jsonPath, json).ConfigureAwait(false);
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteToFile($"QuickScanVideoForHotspotsAsync: {ex}");
+ }
+ }
+
+
+ private async Task LoadQuickScanIntoSplitListAsync(FileInfo video)
+ {
+ try
+ {
+ // Pfad zu foo.mp4.ai.quick.json
+ string quickJsonPath = Path.ChangeExtension(video.FullName, ".ai.quick.json");
+ if (!File.Exists(quickJsonPath))
+ return;
+
+ string json = await File.ReadAllTextAsync(quickJsonPath);
+ var hotspots = System.Text.Json.JsonSerializer.Deserialize>(json);
+
+ if (hotspots == null || hotspots.Count == 0)
+ return;
+
+ // Nach Startzeit sortieren
+ hotspots = hotspots.OrderBy(h => h.Start).ToList();
+
+ // Videolänge (falls Player schon geladen ist)
+ double videoDuration = 0;
+ if (flyleafHost_Editor.Player != null)
+ {
+ videoDuration = flyleafHost_Editor.Player.Duration;
+ }
+
+ foreach (var hs in hotspots)
+ {
+ // Start/End etwas absichern
+ double start = Math.Max(0, hs.Start);
+ double end = hs.End <= 0 ? start : hs.End;
+
+ if (videoDuration > 0 && end > videoDuration)
+ end = videoDuration;
+
+ if (end <= start)
+ continue;
+
+ string startStr = TimeSpan.FromSeconds(start).ToString(@"hh\:mm\:ss");
+ string endStr = TimeSpan.FromSeconds(end).ToString(@"hh\:mm\:ss");
+ string durationStr = TimeSpan.FromSeconds(end - start).ToString(@"hh\:mm\:ss");
+
+ // Duplikate vermeiden (falls schon Einträge vorhanden sind)
+ bool exists = false;
+ foreach (ListViewItem existing in listView_Split.Items)
+ {
+ if (existing.SubItems.Count > 2 &&
+ existing.SubItems[1].Text == startStr &&
+ existing.SubItems[2].Text == endStr)
+ {
+ exists = true;
+ break;
+ }
+ }
+ if (exists)
+ continue;
+
+ // 0: Checkbox-Spalte
+ var item = new ListViewItem("");
+ // 1: Start
+ item.SubItems.Add(startStr);
+ // 2: End
+ item.SubItems.Add(endStr);
+ // 3: Dauer
+ item.SubItems.Add(durationStr);
+ // 4: Kategorie / Label aus QuickScan
+ item.SubItems.Add(hs.Label ?? string.Empty);
+
+ // Optional: automatisch anhaken
+ if (hs.Label == "Pornography")
+ {
+ item.Checked = true;
+ }
+
+ listView_Split.Items.Add(item);
+ }
+
+ // Spalten ggf. anpassen
+ listView_Split.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
+ }
+ catch (Exception ex)
+ {
+ WriteToFile($"LoadQuickScanIntoSplitListAsync: {ex}");
+ }
+ }
+
+
+
+ private Task RunFfmpegAsync(string arguments)
+ {
+ return Task.Run(() =>
+ {
+ try
+ {
+ string baseDir = AppDomain.CurrentDomain.BaseDirectory;
+ string ffmpegExe = System.IO.Path.Combine(baseDir, "ffmpeg.exe");
+
+ var psi = new ProcessStartInfo
+ {
+ FileName = ffmpegExe,
+ Arguments = arguments,
+ UseShellExecute = false,
+ RedirectStandardOutput = true,
+ RedirectStandardError = true,
+ CreateNoWindow = true
+ };
+
+ using (var proc = new Process { StartInfo = psi })
+ {
+ proc.Start();
+ // Ausgaben weglesen, damit die Puffer nicht voll laufen
+ proc.StandardOutput.ReadToEnd();
+ proc.StandardError.ReadToEnd();
+ proc.WaitForExit();
+ return proc.ExitCode;
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteToFile($"RunFfmpegAsync: {ex}");
+ return -1;
+ }
+ });
+ }
+
+ private async Task GetVideoDurationSecondsAsync(string filePath)
+ {
+ try
+ {
+ string ffprobePath = Path.Combine(
+ AppDomain.CurrentDomain.BaseDirectory,
+ "ffprobe.exe"
+ );
+
+ var psi = new ProcessStartInfo
+ {
+ FileName = ffprobePath,
+ Arguments = "-v error -show_entries format=duration " +
+ "-of default=noprint_wrappers=1:nokey=1 " +
+ $"\"{filePath}\"",
+ UseShellExecute = false,
+ RedirectStandardOutput = true,
+ RedirectStandardError = true,
+ CreateNoWindow = true
+ };
+
+ using (var proc = new Process { StartInfo = psi })
+ {
+ proc.Start();
+
+ string output = await proc.StandardOutput.ReadToEndAsync().ConfigureAwait(false);
+ await Task.Run(() => proc.WaitForExit()).ConfigureAwait(false);
+
+ output = output.Trim();
+
+ if (double.TryParse(
+ output,
+ NumberStyles.Float,
+ CultureInfo.InvariantCulture,
+ out double seconds))
+ {
+ return seconds;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteToFile($"GetVideoDurationSecondsAsync: {ex}");
+ }
+
+ return 0.0;
+ }
+
private bool IsLargeFile(FileInfo file)
{
@@ -1476,8 +1775,6 @@ namespace WinFormsApp1
{
int count = listView_Downloads.Items.Count + 1;
- this.Invoke(new MethodInvoker(delegate () { selectedSpeed = comboBox_checkSpeed.SelectedIndex; }));
-
switch (selectedSpeed)
{
// Sehr langsam
@@ -1972,12 +2269,24 @@ namespace WinFormsApp1
if (File.Exists(sourcePath))
{
+ // sicherstellen, dass Zielordner existiert
+ Directory.CreateDirectory(finishedPath!.FullName);
File.Move(sourcePath, destinationPath);
}
+ // Optional: nur scannen, wenn Auto-QuickScan aktiv ist
+ if (checkBox_AutoQuickScan.Checked && File.Exists(destinationPath))
+ {
+ var fileInfo = new FileInfo(destinationPath);
+
+ // QuickScan im Hintergrund starten (nicht blockierend)
+ _ = QuickScanVideoForHotspotsAsync(fileInfo);
+ }
+
return Task.FromResult(destinationPath);
}
+
async Task CheckNextFavLikeItemIfNeeded(System.Windows.Forms.ListViewItem item)
{
string url = item.SubItems[1].Text;
@@ -2679,42 +2988,62 @@ namespace WinFormsApp1
bool isMFC = provider == validProvider.Keys.ElementAt(1); // "MyFreeCams"
bool isCB = provider == validProvider.Keys.ElementAt(0); // "Chaturbate"
+ string outFile = Path.Combine(recordingpath!.FullName, filename);
+
if (isMFC)
{
- // ffmpeg.exe vom App-Verzeichnis sicher in PATH prependen
- string baseDir = AppDomain.CurrentDomain.BaseDirectory;
- string ffmpegExe = System.IO.Path.Combine(baseDir, "ffmpeg.exe");
- string currentPath = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
- if (System.IO.File.Exists(ffmpegExe))
- proc.StartInfo.EnvironmentVariables["PATH"] = baseDir + ";" + currentPath;
-
- string outFile = System.IO.Path.Combine(recordingpath!.FullName, filename);
+ // MFC → neuer Modus in recorder.exe
proc.StartInfo.Arguments = $"\"{url}\" -o \"{outFile}\"";
+ // recorder.exe erkennt myfreecams.com und geht in RecordStreamMFC()
}
else if (isCB)
{
- proc.StartInfo.Arguments = url + " best -o \"" + System.IO.Path.Combine(recordingpath!.FullName, filename) + "\" -f";
+ // Chaturbate → wie gehabt, aber mit Cookie
+ string baseDir = AppDomain.CurrentDomain.BaseDirectory;
+ string ffmpegExe = Path.Combine(baseDir, "ffmpeg.exe");
+ string currentPath = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
+ if (File.Exists(ffmpegExe))
+ proc.StartInfo.EnvironmentVariables["PATH"] = baseDir + ";" + currentPath;
+
+ if (!string.IsNullOrWhiteSpace(_cbSessionCookie))
+ proc.StartInfo.Arguments =
+ $"\"{url}\" --http-cookie \"{_cbSessionCookie}\" -o \"{outFile}\"";
+ else
+ proc.StartInfo.Arguments =
+ $"\"{url}\" -o \"{outFile}\"";
}
else
{
- proc.StartInfo.Arguments = url + " best -o \"" + System.IO.Path.Combine(recordingpath!.FullName, filename) + "\" -f";
+ // alles andere (falls je später weitere Provider dazukommen)
+ proc.StartInfo.Arguments = $"\"{url}\" -o \"{outFile}\"";
}
- // Start-Verzögerung
- this.Invoke(new MethodInvoker(delegate () { selectedSpeed = comboBox_checkSpeed.SelectedIndex; }));
- switch (selectedSpeed)
+
+ // Globale Start-"Ampel": immer mind. 3 Sekunden Abstand zwischen Starts
+ await _downloadStartSemaphore.WaitAsync();
+ try
{
- case 0: await Task.Delay(3000); break;
- case 1: await Task.Delay(2000); break;
- case 2: await Task.Delay(1000); break;
- case 3: await Task.Delay(500); break;
- case 4: await Task.Delay(0); break;
- default: await Task.Delay(1000); break;
+ var now = DateTime.UtcNow;
+ var earliestNext = _lastDownloadStart + _downloadStartGap;
+
+ if (earliestNext > now)
+ {
+ var wait = earliestNext - now;
+ await Task.Delay(wait);
+ }
+
+ _lastDownloadStart = DateTime.UtcNow;
+
+ // Prozess wirklich starten
+ await Task.Run(() => proc.Start());
+ }
+ finally
+ {
+ _downloadStartSemaphore.Release();
}
- await Task.Run(() => proc.Start());
- // PID
+ // PID ins ListView schreiben
if (listView_Downloads.InvokeRequired)
listView_Downloads.Invoke(new MethodInvoker(() => item.SubItems[6].Text = proc.Id.ToString()));
else
@@ -2723,7 +3052,6 @@ namespace WinFormsApp1
// MFC: prüfen, ob Output wirklich entsteht
if (checkBox_useCBApi.Checked && isMFC)
{
- string outFile = System.IO.Path.Combine(recordingpath!.FullName, filename);
bool ok = await WaitForOutputOrExitAsync(outFile, proc.Id, TimeSpan.FromSeconds(15));
if (!ok)
{
@@ -2731,7 +3059,6 @@ namespace WinFormsApp1
await UpdateItemStatus(item, "Stopped");
await RemoveItemFromDownloadlist(item, modelname);
- // Nur wenn deine MFC-Checkbox aktiv ist und Favorit überwacht → zum nächsten MFC-☑
if (checkBox_checkMFCModels.Checked && IsFavoriteWatched(url))
{
if (await modelAccessLock.WaitAsync(0))
@@ -2746,7 +3073,10 @@ namespace WinFormsApp1
}
}
}
- catch { /* optional logging */ }
+ catch
+ {
+ // optional logging
+ }
}
// =======================================================
@@ -3302,33 +3632,7 @@ namespace WinFormsApp1
private void GenerateVideoThumbnail(FileInfo file)
{
- if (comboBox_Thumbnail.InvokeRequired)
- {
- comboBox_Thumbnail.Invoke(new MethodInvoker(delegate
- {
- if (comboBox_Thumbnail.SelectedIndex == 0)
- {
- GenerateStaticImage(file);
- }
-
- if (comboBox_Thumbnail.SelectedIndex == 1)
- {
- //GenerateGif(file);
- }
- }));
- }
- else
- {
- if (comboBox_Thumbnail.SelectedIndex == 0)
- {
- GenerateStaticImage(file);
- }
-
- if (comboBox_Thumbnail.SelectedIndex == 1)
- {
- //GenerateGif(file);
- }
- }
+ GenerateStaticImage(file);
}
private void GenerateStaticImage(FileInfo file)
@@ -4705,14 +5009,9 @@ namespace WinFormsApp1
private void RebuildTagLists()
{
- var all = modelDetails.Values
- .SelectMany(m => m.tags ?? Enumerable.Empty())
- .Distinct(StringComparer.OrdinalIgnoreCase)
- .OrderBy(t => t, StringComparer.OrdinalIgnoreCase)
- .ToList();
-
- UpdateTagFilterCheckedListBox(all, checkedListBox_CompletedDownloads_Tags);
- UpdateTagFilterCheckedListBox(all, checkedListBox_Archive_Tags);
+ // nimmt nur Tags aus den aktuell gefüllten ListViews
+ RefreshEnabledCompletedDownloadTags();
+ RefreshEnabledArchiveTags();
}
@@ -5350,6 +5649,108 @@ namespace WinFormsApp1
}
}
+ private void RefreshEnabledArchiveTags()
+ {
+ var foundTags = new HashSet(StringComparer.OrdinalIgnoreCase);
+
+ // Tags aus listView_AllArchivedDownloads einsammeln
+ if (listView_AllArchivedDownloads.InvokeRequired)
+ {
+ listView_AllArchivedDownloads.Invoke(new MethodInvoker(() =>
+ {
+ CollectTagsFromArchivedDownloads(foundTags);
+ }));
+ }
+ else
+ {
+ CollectTagsFromArchivedDownloads(foundTags);
+ }
+
+ // Enabled-Menge setzen
+ enabledArchiveTags = foundTags;
+
+ // CheckedListBox komplett aus diesen Tags neu aufbauen
+ UpdateTagFilterCheckedListBox(enabledArchiveTags, checkedListBox_Archive_Tags);
+ }
+
+ private void CollectTagsFromArchivedDownloads(HashSet foundTags)
+ {
+ foreach (System.Windows.Forms.ListViewItem item in listView_AllArchivedDownloads.Items)
+ {
+ string modelname = item.SubItems[1].Text;
+ if (modelDetails.TryGetValue(modelname, out var details) && details.tags != null)
+ {
+ foreach (var tag in details.tags)
+ {
+ if (!string.IsNullOrWhiteSpace(tag))
+ foundTags.Add(tag);
+ }
+ }
+ }
+ }
+
+ private void ApplyEnabledStateToArchiveTags()
+ {
+ checkedListBox_Archive_Tags.BeginUpdate();
+
+ for (int i = 0; i < checkedListBox_Archive_Tags.Items.Count; i++)
+ {
+ string tag = checkedListBox_Archive_Tags.Items[i].ToString()!;
+
+ // Wenn Tag nicht mehr enabled ist, ggf. abhaken
+ if (!enabledArchiveTags.Contains(tag) &&
+ checkedListBox_Archive_Tags.GetItemChecked(i))
+ {
+ checkedListBox_Archive_Tags.SetItemChecked(i, false);
+ }
+ }
+
+ checkedListBox_Archive_Tags.EndUpdate();
+ checkedListBox_Archive_Tags.Invalidate();
+ }
+
+
+ private void RefreshEnabledCompletedDownloadTags()
+ {
+ var foundTags = new HashSet(StringComparer.OrdinalIgnoreCase);
+
+ // Tags aus listView_CompletedDownloads einsammeln
+ if (listView_CompletedDownloads.InvokeRequired)
+ {
+ listView_CompletedDownloads.Invoke(new MethodInvoker(() =>
+ {
+ CollectTagsFromCompletedDownloads(foundTags);
+ }));
+ }
+ else
+ {
+ CollectTagsFromCompletedDownloads(foundTags);
+ }
+
+ // Enabled-Menge setzen
+ enabledCompletedDownloadTags = foundTags;
+
+ // CheckedListBox komplett aus diesen Tags neu aufbauen
+ UpdateTagFilterCheckedListBox(enabledCompletedDownloadTags, checkedListBox_CompletedDownloads_Tags);
+ }
+
+
+ private void CollectTagsFromCompletedDownloads(HashSet foundTags)
+ {
+ foreach (System.Windows.Forms.ListViewItem item in listView_CompletedDownloads.Items)
+ {
+ string modelname = item.SubItems[1].Text;
+ if (modelDetails.TryGetValue(modelname, out var details) && details.tags != null)
+ {
+ foreach (var tag in details.tags)
+ {
+ if (!string.IsNullOrWhiteSpace(tag))
+ foundTags.Add(tag);
+ }
+ }
+ }
+ }
+
private async Task CreateListViewItemAsync(FileInfo file, bool highlight)
{
if (!file.Exists || file.Length == 0)
@@ -5438,46 +5839,13 @@ namespace WinFormsApp1
}
}
- // Alle aktiven Tags sammeln im UI-Thread
- HashSet foundTags = new();
+ // Tags anhand der Archive-Liste aktualisieren + CheckBoxen anpassen
+ RefreshEnabledArchiveTags();
- if (listView_AllArchivedDownloads.InvokeRequired)
- {
- listView_AllArchivedDownloads.Invoke(new MethodInvoker(() =>
- {
- foreach (System.Windows.Forms.ListViewItem item in listView_AllArchivedDownloads.Items)
- {
- string modelname = item.SubItems[1].Text;
- if (modelDetails.TryGetValue(modelname, out var details) && details.tags != null)
- {
- foreach (var tag in details.tags)
- {
- foundTags.Add(tag);
- }
- }
- }
- }));
- }
- else
- {
- foreach (System.Windows.Forms.ListViewItem item in listView_AllArchivedDownloads.Items)
- {
- string modelname = item.SubItems[1].Text;
- if (modelDetails.TryGetValue(modelname, out var details) && details.tags != null)
- {
- foreach (var tag in details.tags)
- {
- foundTags.Add(tag);
- }
- }
- }
- }
-
- // Tags setzen + Redraw triggern
- enabledArchiveTags = foundTags;
- checkedListBox_Archive_Tags.Invalidate();
+ Cursor.Current = Cursors.Default;
}
+
private async Task loadArchiveDownloadsOfModel(System.Windows.Forms.ListView listview, string modelname)
{
try
@@ -5742,7 +6110,6 @@ namespace WinFormsApp1
this.BeginInvoke(new MethodInvoker(() => checkBox_moveToRecycleBin.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => checkBox_warnFreeDiskSpace.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => checkBox_dateTime_AutoShutdown.Enabled = true));
- this.BeginInvoke(new MethodInvoker(() => comboBox_checkSpeed.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => comboBox_AutoShutdownAction.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => comboBox_dateTimePicker_AutoShutdown.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => numericUpDown_deleteSmallFiles.Enabled = true));
@@ -5753,7 +6120,6 @@ namespace WinFormsApp1
this.BeginInvoke(new MethodInvoker(() => button_KeepFolder.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => button_download_favorites.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => button_download_likes.Enabled = true));
- this.BeginInvoke(new MethodInvoker(() => label_checkSpeed.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => label_deleteSmallFiles.Enabled = true));
this.BeginInvoke(new MethodInvoker(() => label_warnFreeDiskSpace.Enabled = true));
}
@@ -5778,7 +6144,6 @@ namespace WinFormsApp1
this.BeginInvoke(new MethodInvoker(() => checkBox_moveToRecycleBin.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => checkBox_warnFreeDiskSpace.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => checkBox_dateTime_AutoShutdown.Enabled = false));
- this.BeginInvoke(new MethodInvoker(() => comboBox_checkSpeed.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => comboBox_AutoShutdownAction.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => comboBox_dateTimePicker_AutoShutdown.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => numericUpDown_deleteSmallFiles.Enabled = false));
@@ -5789,7 +6154,6 @@ namespace WinFormsApp1
this.BeginInvoke(new MethodInvoker(() => button_KeepFolder.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => button_download_favorites.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => button_download_likes.Enabled = false));
- this.BeginInvoke(new MethodInvoker(() => label_checkSpeed.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => label_deleteSmallFiles.Enabled = false));
this.BeginInvoke(new MethodInvoker(() => label_warnFreeDiskSpace.Enabled = false));
}
@@ -6199,8 +6563,10 @@ namespace WinFormsApp1
private void UpdateCompletedDownloadsTab()
{
tabPage_CompletedDownloads.Text = $"Abgeschlossene Downloads ({listView_CompletedDownloads.Items.Count})";
+ RefreshEnabledCompletedDownloadTags();
}
+
private FileInfo? GetFileInfo(System.Windows.Forms.ListViewItem item, System.Windows.Forms.ListView listview)
{
string filename = item.SubItems[2].Text;
@@ -6504,6 +6870,7 @@ namespace WinFormsApp1
await Task.Run(() => deleteThumbnail(file.Name));
}
}
+ /*
else
{
if (System.IO.File.Exists(file.FullName))
@@ -6516,6 +6883,7 @@ namespace WinFormsApp1
}
}
}
+ */
}
private async Task addItemToDownloadliste(System.Windows.Forms.ListViewItem item)
@@ -6693,7 +7061,6 @@ namespace WinFormsApp1
if (flyleafHost_Player.Player != null)
{
flyleafHost_Player.Player.Open(newFile.FullName);
- flyleafHost_Player.Player.PropertyChanged += Player_PropertyChanged;
flyleafHost_Player.Player.Pause();
latestmedia1 = newFile.FullName;
}
@@ -6841,17 +7208,70 @@ namespace WinFormsApp1
if (checkBox_moveToRecycleBin.Checked && checkBox_moveOnlyManuallyDeletedFiles.Checked)
{
- await Task.Run(() => FileSystem.DeleteFile(file.FullName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin));
+ await Task.Run(() =>
+ FileSystem.DeleteFile(file.FullName,
+ UIOption.OnlyErrorDialogs,
+ RecycleOption.SendToRecycleBin));
}
else
{
await DeleteFileAsync(file.FullName);
}
+ // Thumbnail löschen
await Task.Run(() => deleteThumbnail(file.Name));
+ // --- NEU: Quick-/Fullscan-Tempframes löschen ---
+ try
+ {
+ if (temp_folder != null && temp_folder.Exists)
+ {
+ string nameWithExt = file.Name;
+ string nameWithoutExt = Path.GetFileNameWithoutExtension(file.Name);
+
+ // Fullscan: "fileName.ext-*.jpg"
+ string patternFull = nameWithExt + "-*.jpg";
+ foreach (var img in temp_folder.GetFiles(patternFull))
+ {
+ try { img.Delete(); } catch { }
+ }
+
+ // Quickscan: "fileName_*.jpg"
+ string patternQuick = nameWithoutExt + "_*.jpg";
+ foreach (var img in temp_folder.GetFiles(patternQuick))
+ {
+ try { img.Delete(); } catch { }
+ }
+ }
+ }
+ catch { }
+
+ // --- NEU: AI-Ergebnisse aus analysedFilesAI + JSON löschen ---
+ try
+ {
+ if (analysedFilesAI.ContainsKey(file.Name))
+ {
+ analysedFilesAI.Remove(file.Name);
+ }
+
+ string aiFullJson = Path.ChangeExtension(file.FullName, ".ai.json");
+ string aiQuickJson = Path.ChangeExtension(file.FullName, ".ai.quick.json");
+
+ if (File.Exists(aiFullJson))
+ {
+ try { File.Delete(aiFullJson); } catch { }
+ }
+ if (File.Exists(aiQuickJson))
+ {
+ try { File.Delete(aiQuickJson); } catch { }
+ }
+ }
+ catch { }
+
DirectoryInfo parentDir = new DirectoryInfo(file.DirectoryName!);
- if (parentDir.FullName == finishedPath!.FullName || parentDir.FullName == keepPath!.FullName || parentDir.FullName == keepArchivePath!.FullName)
+ if (parentDir.FullName == finishedPath!.FullName
+ || parentDir.FullName == keepPath!.FullName
+ || parentDir.FullName == keepArchivePath!.FullName)
{
return;
}
@@ -6861,7 +7281,10 @@ namespace WinFormsApp1
Directory.Delete(parentDir.FullName);
}
- if (listview != null && (listview == listView_CompletedDownloads || listview == listView_AI_Result || listview == listView_AllArchivedDownloads))
+ if (listview != null &&
+ (listview == listView_CompletedDownloads
+ || listview == listView_AI_Result
+ || listview == listView_AllArchivedDownloads))
{
Task.Run(() => LoadVisibleThumbnails(listview));
}
@@ -6873,6 +7296,7 @@ namespace WinFormsApp1
}
+
private async void button_Download_Click(object sender, EventArgs e)
{
try
@@ -7650,8 +8074,6 @@ namespace WinFormsApp1
HttpResponseMessage response = await client.GetAsync("https://chaturbate.com/api/biocontext/" + modelname);
if (response.IsSuccessStatusCode)
{
- loadedModelOnlineStatus = DateTime.Now;
-
if (!modelDetails!.ContainsKey(modelname))
{
modelDetails.Add(modelname, new ModelDetails
@@ -8263,17 +8685,15 @@ namespace WinFormsApp1
// Tags nur aktualisieren, wenn welche geliefert wurden
if (updatedInfo.Values.Any(m => m.tags?.Count > 0))
{
+ // weiter für ModelDetail etc.
LoadTagsFromModelDetails();
- var allTags = modelDetails.Values
- .SelectMany(md => md.tags ?? Enumerable.Empty())
- .Distinct()
- .ToList();
-
- UpdateTagFilterCheckedListBox(allTags, checkedListBox_CompletedDownloads_Tags);
- UpdateTagFilterCheckedListBox(allTags, checkedListBox_Archive_Tags);
+ // Tag-Filter nur aus den aktuellen ListViews neu aufbauen
+ RefreshEnabledCompletedDownloadTags();
+ RefreshEnabledArchiveTags();
}
+
UpdateStatusLabel(""); // fertig
});
@@ -8837,13 +9257,7 @@ namespace WinFormsApp1
}
splitContainer_Player.SplitterDistance = 375;
splitContainer_Player_VLC.SplitterDistance = 336;
- splitContainer_Editor_cutClips.SplitterDistance = 376;
- splitContainer_Editor_PlayerDetails.SplitterDistance = 322;
- splitContainer_Editor_Timestamps.SplitterDistance = 63;
splitContainer_Editor_Player_Timestamps.SplitterDistance = 500;
- splitContainer_Editor_VLC.SplitterDistance = 283;
- comboBox_checkSpeed.SelectedIndex = selectedSpeed;
- comboBox_Thumbnail.SelectedIndex = 0;
comboBox_AutoShutdownAction.SelectedIndex = 0;
comboBox_dateTimePicker_AutoShutdown.SelectedIndex = 0;
comboBox_completedDownloadsView.SelectedIndex = 0;
@@ -8917,7 +9331,6 @@ namespace WinFormsApp1
Properties.Settings.Default.Save();
}
}
- comboBox_checkSpeed.SelectedIndex = selectedSpeed;
}
if (startParams[i] == "/max")
{
@@ -9717,8 +10130,6 @@ namespace WinFormsApp1
{
await this.InvokeAsync(async () =>
{
- flyleafHost_Player.Player.PropertyChanged += Player_PropertyChanged;
-
int durSec = (int)TimeSpan
.FromTicks(flyleafHost_Player.Player.Duration)
.TotalSeconds;
@@ -10077,13 +10488,6 @@ namespace WinFormsApp1
}
else
{
- /*
- foreach (System.Windows.Forms.ListViewItem focusedItem in listview.SelectedItems)
- {
- await deleteFile(focusedItem);
- await deleteItemFromListview(focusedItem, listview);
- }
- */
var deleteTasks = listview.SelectedItems
.Cast()
.Select(async item =>
@@ -12007,12 +12411,6 @@ namespace WinFormsApp1
}
}
- private void comboBox_checkSpeed_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (!loadingCompleted) return;
- TrySaveSelectedSpeed(comboBox_checkSpeed.SelectedIndex);
- }
-
private static void EnsureSettingsGroupName()
{
// Vollqualifizierter Settings-Typname -> gültiger Abschnittsname
@@ -12811,7 +13209,6 @@ namespace WinFormsApp1
catch { /* defensiv */ }
flyleafHost_Editor.Player.Pause();
- flyleafHost_Editor.Player.PropertyChanged += Editor_PropertyChanged;
trackBar_Editor_VLC.Minimum = 0;
trackBar_Editor_VLC.Maximum = trackBar_Player_VLC.Maximum;
@@ -12865,24 +13262,37 @@ namespace WinFormsApp1
listView_Split.Items.Clear();
System.Windows.Forms.ListViewItem lvi = listView_Split.Items.Add("");
+ // 0: Checkbox-Spalte ist leer
double starttime = 0;
System.TimeSpan starttime_time = System.TimeSpan.FromSeconds(starttime);
+ // 1: Start
lvi.SubItems.Add(starttime_time.ToString(@"hh\:mm\:ss"));
+ // 2: Ende
long endtime = trackBar_Editor_VLC.Maximum;
System.TimeSpan endtime_time = System.TimeSpan.FromSeconds(endtime);
lvi.SubItems.Add(endtime_time.ToString(@"hh\:mm\:ss"));
+ // 3: Dauer
double duration = endtime - starttime;
System.TimeSpan duration_time = System.TimeSpan.FromSeconds(duration);
lvi.SubItems.Add(duration_time.ToString(@"hh\:mm\:ss"));
+
+ // 4: Kategorie (für die Gesamtlänge leer lassen)
+ lvi.SubItems.Add(string.Empty);
+
+ // ► QuickScan-Ergebnisse in listView_Split einfügen, falls JSON vorhanden
+ await LoadQuickScanIntoSplitListAsync(file);
+
}
catch (System.Exception ex)
{
- System.Windows.Forms.MessageBox.Show(ex.Message, "button_Trim_Video_Click");
+ System.Windows.Forms.MessageBox.Show(ex.Message, "button_player_Trim_Video_Click");
}
}
+
+
private async void Editor_PropertyChanged(object? sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
@@ -14424,14 +14834,6 @@ namespace WinFormsApp1
}
});
}
-
- // *** UI-Label hier aktualisieren ***
- var label = result.PredictedLabel;
- if (!string.IsNullOrEmpty(label))
- {
- await UpdateLabelVisibility(label_Editor_Label, true);
- await UpdateLabelText(label_Editor_Label, label);
- }
}
EnableEditorControls();
@@ -14439,7 +14841,6 @@ namespace WinFormsApp1
if (!scanAIisRunning)
{
- await UpdateLabelVisibility(label_Editor_Label, false);
await UpdateStatusLabel("Abgebrochen!");
EnableEditorControls();
return;
@@ -14452,6 +14853,10 @@ namespace WinFormsApp1
// Zeitstempel finden und hinzufügen
var relevantTimestamps = FindRelevantTimestamps(results, timestamps);
+
+ // AI-Hotspots-Liste zurücksetzen
+ _aiHotspots = new List();
+
if (relevantTimestamps.Count == 0)
{
await AddTimestampToEditor(0, false);
@@ -14460,11 +14865,16 @@ namespace WinFormsApp1
{
foreach (var tsStr in relevantTimestamps)
{
- double ts = System.TimeSpan.Parse(tsStr).TotalSeconds;
+ double ts = TimeSpan.Parse(tsStr).TotalSeconds;
+ _aiHotspots.Add(ts);
await AddTimestampToEditor(ts, true);
}
+
+ // sortieren & Index zurücksetzen
+ _aiHotspots = _aiHotspots.Distinct().OrderBy(x => x).ToList();
}
+
// Labels aktualisieren
List itemsToUpdate = new();
listView_Split.Invoke(() =>
@@ -14486,7 +14896,6 @@ namespace WinFormsApp1
await checkPornographyLabel(item, item.SubItems[4].Text);
await UpdateStatusLabel("Alle Zeitstempel hinzugefügt!");
- await UpdateLabelVisibility(label_Editor_Label, false);
scanAIisRunning = false;
BeginInvoke(() => button_editClip_scanAI.Text = "Mit AI analysieren");
@@ -15386,62 +15795,49 @@ namespace WinFormsApp1
}
}
+ private int MapTrackbarToVolume(TrackBar bar, int maxLibraryVolume = 100)
+ {
+ // 0..1
+ double t = bar.Value / (double)bar.Maximum;
+
+ // dB-Bereich (unten leiser, oben 0 dB = volle Lautstärke)
+ const double minDb = -60.0; // kannst du z.B. auf -40, -70 etc. anpassen
+ double db = minDb + (0 - minDb) * t; // [-60 .. 0]
+
+ // dB → linearer Faktor
+ double linear = Math.Pow(10.0, db / 20.0); // ca. 0..1
+
+ // auf 0..maxLibraryVolume skalieren
+ int vol = (int)Math.Round(linear * maxLibraryVolume);
+
+ // numerisch stumm sauber machen
+ if (bar.Value == 0)
+ vol = 0;
+
+ return vol;
+ }
+
+
private void trackBar_Player_VLC_Volume_Scroll(object sender, EventArgs e)
{
- if (trackBar_Player_VLC_Volume.InvokeRequired)
- {
- trackBar_Player_VLC_Volume.Invoke(new MethodInvoker(delegate
- {
- double normalized = trackBar_Player_VLC_Volume.Value / 100.0;
- double logVolume = Math.Pow(normalized, 2); // Quadratische Kurve
- media1Volume = (int)(logVolume * 100);
- }));
- }
- else
- {
- double normalized = trackBar_Player_VLC_Volume.Value / 100.0;
- double logVolume = Math.Pow(normalized, 2); // Quadratische Kurve
- media1Volume = (int)(logVolume * 100);
- }
+ media1Volume = MapTrackbarToVolume(trackBar_Player_VLC_Volume, 100);
flyleafHost_Player.Player.Audio.Volume = media1Volume;
- if (media1Volume > 0)
- {
- button_Player_VLC_VolumeMute.BackgroundImage = Properties.Resources.volume;
- }
- else
- {
- button_Player_VLC_VolumeMute.BackgroundImage = Properties.Resources.mute;
- }
+
+ button_Player_VLC_VolumeMute.BackgroundImage =
+ media1Volume > 0 ? Properties.Resources.volume : Properties.Resources.mute;
}
+
private void trackBar_Editor_VLC_Volume_Scroll(object sender, EventArgs e)
{
- if (trackBar_Editor_VLC_Volume.InvokeRequired)
- {
- trackBar_Editor_VLC_Volume.Invoke(new MethodInvoker(delegate
- {
- double normalized = trackBar_Editor_VLC_Volume.Value / 100.0;
- double logVolume = Math.Pow(normalized, 2); // Quadratische Kurve
- media2Volume = (int)(logVolume * 100);
- }));
- }
- else
- {
- double normalized = trackBar_Editor_VLC_Volume.Value / 100.0;
- double logVolume = Math.Pow(normalized, 2); // Quadratische Kurve
- media2Volume = (int)(logVolume * 100);
- }
+ media2Volume = MapTrackbarToVolume(trackBar_Editor_VLC_Volume, 100);
flyleafHost_Editor.Player.Audio.Volume = media2Volume;
- if (media2Volume > 0)
- {
- button_Editor_VLC_VolumeMute.BackgroundImage = Properties.Resources.volume;
- }
- else
- {
- button_Editor_VLC_VolumeMute.BackgroundImage = Properties.Resources.mute;
- }
+
+ button_Editor_VLC_VolumeMute.BackgroundImage =
+ media2Volume > 0 ? Properties.Resources.volume : Properties.Resources.mute;
}
+
private async void button_ReloadArchivedDownloads_Click(object sender, EventArgs e)
{
lastActivity = DateTime.Now;
@@ -15546,20 +15942,18 @@ namespace WinFormsApp1
}
}
- private async void button_SetAudioDevice_Click(object sender, EventArgs e)
+ private void button_SetAudioDevice_Click(object sender, EventArgs e)
{
try
{
- foreach (AudioEngine.AudioEndpoint soundDevice in Engine.Audio.Devices)
+ if (comboBox_AudioDevice.SelectedItem is AudioEngine.AudioEndpoint device)
{
- if (soundDevice.Name == comboBox_AudioDevice.SelectedItem!.ToString())
- {
- flyleafHost_Player.Player.Audio.Device = soundDevice;
- flyleafHost_Editor.Player.Audio.Device = soundDevice;
- }
+ flyleafHost_Player.Player.Audio.Device = device;
+ flyleafHost_Editor.Player.Audio.Device = device;
+ UpdateStatusLabel("Wiedergabegerät: " + device.Name);
}
}
- catch (System.Exception ex)
+ catch (Exception ex)
{
UpdateStatusLabel("Fehler beim Setzen des Wiedergabegeräts: " + ex.Message);
}
@@ -15569,33 +15963,38 @@ namespace WinFormsApp1
{
try
{
+ void FillDevices()
+ {
+ comboBox_AudioDevice.Items.Clear();
+
+ // Optional, damit der Name angezeigt wird
+ comboBox_AudioDevice.DisplayMember = "Name";
+
+ foreach (AudioEngine.AudioEndpoint soundDevice in Engine.Audio.Devices)
+ {
+ // Ganzes Objekt einfügen, nicht nur den Namen
+ comboBox_AudioDevice.Items.Add(soundDevice);
+ }
+ }
+
if (comboBox_AudioDevice.InvokeRequired)
{
- comboBox_AudioDevice.Invoke(new MethodInvoker(delegate
- {
- foreach (AudioEngine.AudioEndpoint soundDevice in Engine.Audio.Devices)
- {
- comboBox_AudioDevice.Items.Add(soundDevice.Name);
- }
- }));
+ comboBox_AudioDevice.Invoke(new MethodInvoker(FillDevices));
}
else
{
- foreach (AudioEngine.AudioEndpoint soundDevice in Engine.Audio.Devices)
- {
- comboBox_AudioDevice.Items.Add(soundDevice.Name);
- }
+ FillDevices();
}
}
- catch (System.Exception ex)
+ catch (Exception ex)
{
UpdateStatusLabel("Fehler beim Laden der Wiedergabegeräte: " + ex.Message);
}
}
+
private async void button_ReloadAudioDevice_Click(object sender, EventArgs e)
{
- comboBox_AudioDevice.Items.Clear();
await reloadAudioDevices();
}
@@ -15975,20 +16374,21 @@ namespace WinFormsApp1
}
}
- private async void comboBox_AudioDevice_SelectedIndexChanged(object sender, EventArgs e)
+ private void comboBox_AudioDevice_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
- foreach (AudioEngine.AudioEndpoint soundDevice in Engine.Audio.Devices)
+ // Wir erwarten hier direkt einen AudioEndpoint aus Items
+ if (comboBox_AudioDevice.SelectedItem is AudioEngine.AudioEndpoint device)
{
- if (soundDevice.Name == comboBox_AudioDevice.SelectedItem!.ToString())
- {
- flyleafHost_Player.Player.Audio.Device = soundDevice;
- flyleafHost_Editor.Player.Audio.Device = soundDevice;
- }
+ flyleafHost_Player.Player.Audio.Device = device;
+ flyleafHost_Editor.Player.Audio.Device = device;
+
+ // Optional: Status anzeigen
+ UpdateStatusLabel("Wiedergabegerät: " + device.Name);
}
}
- catch (System.Exception ex)
+ catch (Exception ex)
{
UpdateStatusLabel("Fehler beim Setzen des Wiedergabegeräts: " + ex.Message);
}
@@ -16067,16 +16467,20 @@ namespace WinFormsApp1
{
if (checkedListBox_CompletedDownloads_Tags.InvokeRequired)
{
- checkedListBox_CompletedDownloads_Tags.Invoke(new MethodInvoker(() => ResetCheckedTags(listView_CompletedDownloads, checkedListBox_CompletedDownloads_Tags)));
- Task.Run(() => UpdateTagFilterCheckedListBox(tags, checkedListBox_CompletedDownloads_Tags));
+ checkedListBox_CompletedDownloads_Tags.Invoke(new MethodInvoker(() =>
+ {
+ ResetCheckedTags(listView_CompletedDownloads, checkedListBox_CompletedDownloads_Tags);
+ RefreshEnabledCompletedDownloadTags();
+ }));
}
else
{
ResetCheckedTags(listView_CompletedDownloads, checkedListBox_CompletedDownloads_Tags);
- Task.Run(() => UpdateTagFilterCheckedListBox(tags, checkedListBox_CompletedDownloads_Tags));
+ RefreshEnabledCompletedDownloadTags();
}
}
+
private void ResetCheckedTags(System.Windows.Forms.ListView listView, System.Windows.Forms.CheckedListBox checkedListBox)
{
checkedListBox.BeginUpdate();
@@ -16095,16 +16499,20 @@ namespace WinFormsApp1
{
if (checkedListBox_Archive_Tags.InvokeRequired)
{
- checkedListBox_Archive_Tags.Invoke(new MethodInvoker(() => ResetCheckedTags(listView_AllArchivedDownloads, checkedListBox_Archive_Tags)));
- Task.Run(() => UpdateTagFilterCheckedListBox(tags, checkedListBox_Archive_Tags));
+ checkedListBox_Archive_Tags.Invoke(new MethodInvoker(() =>
+ {
+ ResetCheckedTags(listView_AllArchivedDownloads, checkedListBox_Archive_Tags);
+ RefreshEnabledArchiveTags();
+ }));
}
else
{
ResetCheckedTags(listView_AllArchivedDownloads, checkedListBox_Archive_Tags);
- Task.Run(() => UpdateTagFilterCheckedListBox(tags, checkedListBox_Archive_Tags));
+ RefreshEnabledArchiveTags();
}
}
+
private void checkedListBox_Archive_Tags_ItemCheck(object sender, ItemCheckEventArgs e)
{
string tag = checkedListBox_Archive_Tags.Items[e.Index].ToString()!;
@@ -16120,6 +16528,7 @@ namespace WinFormsApp1
}));
}
+
private async void linkLabel_Modelname_Value_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
lastActivity = DateTime.Now;
@@ -16502,6 +16911,58 @@ namespace WinFormsApp1
UpdateOne(listView_Favorites, false);
}
}
+
+ private void button_Editor_Options_Click(object sender, EventArgs e)
+ {
+ if (editorOptionsMinimized)
+ {
+ editorOptionsMinimized = false;
+ tableLayoutPanel_AI.RowStyles[2].Height = 0;
+ button_Editor_Options.Text = "Optionen einblenden";
+
+ foreach (Control ctl in tableLayoutPanel_AI.Controls)
+ {
+ if (tableLayoutPanel_AI.GetRow(ctl) == 2)
+ ctl.Visible = false;
+ }
+ }
+ else
+ {
+ editorOptionsMinimized = true;
+ tableLayoutPanel_AI.RowStyles[2].Height = 227;
+ button_Editor_Options.Text = "Optionen ausblenden";
+
+ foreach (Control ctl in tableLayoutPanel_AI.Controls)
+ {
+ if (tableLayoutPanel_AI.GetRow(ctl) == 2)
+ ctl.Visible = true;
+ }
+ }
+ tableLayoutPanel_AI.PerformLayout(); // zur Sicherheit neu layouten
+ }
+
+ private void button_ChaturbateLogin_Click(object sender, EventArgs e)
+ {
+ using (var loginForm = new ChaturbateLoginForm())
+ {
+ var result = loginForm.ShowDialog(this);
+ if (result == DialogResult.OK && !string.IsNullOrEmpty(loginForm.SessionCookie))
+ {
+ // 1. In dein Feld speichern (für die aktuelle Laufzeit)
+ _cbSessionCookie = loginForm.SessionCookie;
+
+ // 2. Zusätzlich im Property "chaturbateSession" persistieren
+ Properties.Settings.Default.chaturbateSessionToken = loginForm.SessionCookie;
+ Properties.Settings.Default.chaturbateSessionID = loginForm.SessionCookie;
+ Properties.Settings.Default.Save(); // nicht vergessen, sonst geht es beim Beenden verloren
+
+ // Optional: Status im UI anzeigen
+ button_ChaturbateLogin.Text = "Angemeldet";
+ button_ChaturbateLogin.ForeColor = Color.Green;
+ }
+ }
+ }
+
}
@@ -16836,3 +17297,11 @@ public sealed class TrackBarScrubber : IDisposable
_bar.Scroll -= Bar_Scroll;
}
}
+
+class AiHotspot
+{
+ public int Start { get; set; }
+ public int End { get; set; }
+ public string Label { get; set; } = string.Empty;
+ public float Score { get; set; }
+}
diff --git a/WinFormsApp1/Form1.resx b/WinFormsApp1/Form1.resx
index 08f58f3..27febec 100644
--- a/WinFormsApp1/Form1.resx
+++ b/WinFormsApp1/Form1.resx
@@ -5557,7 +5557,7 @@
424, 64
- 100
+ 88
diff --git a/WinFormsApp1/Properties/PublishProfiles/FolderProfile.pubxml.user b/WinFormsApp1/Properties/PublishProfiles/FolderProfile.pubxml.user
index 600b764..18854db 100644
--- a/WinFormsApp1/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/WinFormsApp1/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -2,7 +2,7 @@
- True|2025-11-24T12:27:08.9306938Z||;True|2025-11-24T12:11:16.9389361+01:00||;True|2025-11-24T08:50:56.2419082+01:00||;True|2025-11-17T10:09:19.4598326+01:00||;True|2025-11-17T10:01:39.8843258+01:00||;True|2025-11-17T09:40:23.3639389+01:00||;True|2025-11-13T14:18:25.1199192+01:00||;True|2025-11-10T09:34:59.9819614+01:00||;True|2025-11-10T09:31:52.9893994+01:00||;True|2025-11-07T07:27:09.2818809+01:00||;True|2025-10-28T07:54:43.4835993+01:00||;True|2025-10-28T07:49:48.9691140+01:00||;False|2025-10-28T07:48:40.9934972+01:00||;True|2025-10-28T07:41:40.9364570+01:00||;True|2025-10-28T07:34:30.3216200+01:00||;True|2025-10-27T07:38:02.5307378+01:00||;True|2025-10-24T12:49:33.3476720+02:00||;True|2025-10-24T12:45:56.3409114+02:00||;True|2025-10-24T12:37:06.7053780+02:00||;True|2025-10-24T12:21:52.0779529+02:00||;True|2025-10-24T11:39:34.0711190+02:00||;True|2025-10-24T11:32:06.8084304+02:00||;True|2025-10-24T10:49:19.8451151+02:00||;True|2025-10-24T10:35:58.7368296+02:00||;True|2025-09-22T09:12:21.1738434+02:00||;True|2025-09-22T08:41:28.2063145+02:00||;True|2025-09-11T09:25:26.7487573+02:00||;True|2025-09-05T10:35:16.3265491+02:00||;True|2025-08-13T07:12:45.6489499+02:00||;True|2025-08-08T07:25:38.8935816+02:00||;True|2025-08-08T07:19:07.3835648+02:00||;True|2025-08-06T07:38:46.3420158+02:00||;True|2025-07-16T07:41:34.3557961+02:00||;True|2025-07-15T11:01:48.5566218+02:00||;True|2025-07-07T14:59:37.1240379+02:00||;False|2025-07-07T14:57:39.0613209+02:00||;True|2025-07-07T06:29:53.8853096+02:00||;True|2025-07-06T23:39:21.1017631+02:00||;True|2025-07-06T23:24:37.7792733+02:00||;False|2025-07-06T23:19:52.7135594+02:00||;True|2025-07-06T05:55:51.5281444+02:00||;True|2025-07-06T05:14:26.6590895+02:00||;True|2025-07-06T05:07:43.4335057+02:00||;False|2025-07-06T05:06:42.5442365+02:00||;True|2025-06-27T09:56:34.6625992+02:00||;True|2025-06-27T09:55:33.6399545+02:00||;True|2025-06-27T09:35:44.7409289+02:00||;True|2025-06-27T09:35:11.7955472+02:00||;True|2025-06-27T09:23:44.1433728+02:00||;True|2025-06-27T09:10:34.1084041+02:00||;True|2025-06-27T09:06:49.8646149+02:00||;True|2025-06-27T08:55:00.3110860+02:00||;True|2025-06-27T08:47:18.4476580+02:00||;True|2025-06-11T14:42:56.1622930+02:00||;True|2025-06-11T12:33:26.7419370+02:00||;True|2025-06-11T07:48:58.3963584+02:00||;True|2025-06-11T07:42:53.0277862+02:00||;False|2025-06-11T07:39:31.7470335+02:00||;True|2025-06-03T19:58:59.1868907+02:00||;True|2025-06-03T14:33:55.4389500+02:00||;True|2025-06-03T14:16:34.6963918+02:00||;True|2025-06-03T13:26:58.4834917+02:00||;True|2025-06-02T19:01:22.1305699+02:00||;True|2025-06-02T18:27:48.1629252+02:00||;True|2025-06-02T18:12:01.0339452+02:00||;True|2025-04-25T14:02:07.8958669+02:00||;True|2025-04-24T07:32:32.3215936+02:00||;True|2025-04-23T14:24:27.8051379+02:00||;True|2025-04-22T07:23:33.4961515+02:00||;True|2025-04-22T07:16:30.0019927+02:00||;True|2025-04-17T07:35:19.5003910+02:00||;True|2025-04-16T07:51:44.2105982+02:00||;True|2025-04-15T17:39:22.9354819+02:00||;True|2025-04-15T13:59:38.1491035+02:00||;True|2025-04-15T13:26:09.1911007+02:00||;False|2025-04-15T13:24:05.8283613+02:00||;True|2025-04-15T12:05:53.7928484+02:00||;True|2025-04-14T11:46:19.0213400+02:00||;True|2025-04-14T11:19:57.9110025+02:00||;False|2025-04-14T11:18:49.2970157+02:00||;True|2025-04-14T10:56:19.4313583+02:00||;True|2025-04-14T10:09:57.0472222+02:00||;True|2025-04-11T09:36:58.9281719+02:00||;True|2025-04-11T07:56:15.1143584+02:00||;True|2025-04-10T08:08:20.7849097+02:00||;True|2025-04-09T12:56:06.8510589+02:00||;True|2025-04-09T12:39:21.5101756+02:00||;True|2025-04-09T12:35:02.6306664+02:00||;True|2025-04-09T07:53:00.7307516+02:00||;True|2025-04-07T15:17:24.3233000+02:00||;True|2025-04-04T18:09:18.8844877+02:00||;True|2025-04-03T12:27:18.9922316+02:00||;True|2025-04-03T09:48:50.2518754+02:00||;True|2025-03-31T13:53:07.3910797+02:00||;True|2025-03-31T12:46:18.3638787+02:00||;True|2025-03-31T11:01:06.0182900+02:00||;True|2025-03-31T10:55:30.7399322+02:00||;True|2025-03-31T10:41:08.8975919+02:00||;True|2025-03-31T10:15:29.6315309+02:00||;True|2025-03-31T08:53:20.4511304+02:00||;
+ True|2025-12-15T14:34:06.0764806Z||;True|2025-12-15T15:13:58.2708640+01:00||;True|2025-12-15T14:28:31.8323947+01:00||;True|2025-12-15T12:38:44.4600400+01:00||;True|2025-12-15T12:00:10.7148329+01:00||;True|2025-12-15T10:47:44.3271483+01:00||;False|2025-12-15T09:51:11.4851593+01:00||;True|2025-12-09T17:44:41.8380665+01:00||;True|2025-12-08T19:14:47.6239639+01:00||;True|2025-12-03T07:35:15.9379692+01:00||;True|2025-12-03T07:17:26.7122909+01:00||;True|2025-12-02T15:25:48.5989059+01:00||;True|2025-12-02T14:59:28.2560453+01:00||;True|2025-12-02T08:06:01.5389512+01:00||;True|2025-12-02T07:59:25.8295867+01:00||;True|2025-12-01T15:00:28.3098572+01:00||;True|2025-12-01T13:55:57.5952509+01:00||;True|2025-11-24T13:27:08.9306938+01:00||;True|2025-11-24T12:11:16.9389361+01:00||;True|2025-11-24T08:50:56.2419082+01:00||;True|2025-11-17T10:09:19.4598326+01:00||;True|2025-11-17T10:01:39.8843258+01:00||;True|2025-11-17T09:40:23.3639389+01:00||;True|2025-11-13T14:18:25.1199192+01:00||;True|2025-11-10T09:34:59.9819614+01:00||;True|2025-11-10T09:31:52.9893994+01:00||;True|2025-11-07T07:27:09.2818809+01:00||;True|2025-10-28T07:54:43.4835993+01:00||;True|2025-10-28T07:49:48.9691140+01:00||;False|2025-10-28T07:48:40.9934972+01:00||;True|2025-10-28T07:41:40.9364570+01:00||;True|2025-10-28T07:34:30.3216200+01:00||;True|2025-10-27T07:38:02.5307378+01:00||;True|2025-10-24T12:49:33.3476720+02:00||;True|2025-10-24T12:45:56.3409114+02:00||;True|2025-10-24T12:37:06.7053780+02:00||;True|2025-10-24T12:21:52.0779529+02:00||;True|2025-10-24T11:39:34.0711190+02:00||;True|2025-10-24T11:32:06.8084304+02:00||;True|2025-10-24T10:49:19.8451151+02:00||;True|2025-10-24T10:35:58.7368296+02:00||;True|2025-09-22T09:12:21.1738434+02:00||;True|2025-09-22T08:41:28.2063145+02:00||;True|2025-09-11T09:25:26.7487573+02:00||;True|2025-09-05T10:35:16.3265491+02:00||;True|2025-08-13T07:12:45.6489499+02:00||;True|2025-08-08T07:25:38.8935816+02:00||;True|2025-08-08T07:19:07.3835648+02:00||;True|2025-08-06T07:38:46.3420158+02:00||;True|2025-07-16T07:41:34.3557961+02:00||;True|2025-07-15T11:01:48.5566218+02:00||;True|2025-07-07T14:59:37.1240379+02:00||;False|2025-07-07T14:57:39.0613209+02:00||;True|2025-07-07T06:29:53.8853096+02:00||;True|2025-07-06T23:39:21.1017631+02:00||;True|2025-07-06T23:24:37.7792733+02:00||;False|2025-07-06T23:19:52.7135594+02:00||;True|2025-07-06T05:55:51.5281444+02:00||;True|2025-07-06T05:14:26.6590895+02:00||;True|2025-07-06T05:07:43.4335057+02:00||;False|2025-07-06T05:06:42.5442365+02:00||;True|2025-06-27T09:56:34.6625992+02:00||;True|2025-06-27T09:55:33.6399545+02:00||;True|2025-06-27T09:35:44.7409289+02:00||;True|2025-06-27T09:35:11.7955472+02:00||;True|2025-06-27T09:23:44.1433728+02:00||;True|2025-06-27T09:10:34.1084041+02:00||;True|2025-06-27T09:06:49.8646149+02:00||;True|2025-06-27T08:55:00.3110860+02:00||;True|2025-06-27T08:47:18.4476580+02:00||;True|2025-06-11T14:42:56.1622930+02:00||;True|2025-06-11T12:33:26.7419370+02:00||;True|2025-06-11T07:48:58.3963584+02:00||;True|2025-06-11T07:42:53.0277862+02:00||;False|2025-06-11T07:39:31.7470335+02:00||;True|2025-06-03T19:58:59.1868907+02:00||;True|2025-06-03T14:33:55.4389500+02:00||;True|2025-06-03T14:16:34.6963918+02:00||;True|2025-06-03T13:26:58.4834917+02:00||;True|2025-06-02T19:01:22.1305699+02:00||;True|2025-06-02T18:27:48.1629252+02:00||;True|2025-06-02T18:12:01.0339452+02:00||;True|2025-04-25T14:02:07.8958669+02:00||;True|2025-04-24T07:32:32.3215936+02:00||;True|2025-04-23T14:24:27.8051379+02:00||;True|2025-04-22T07:23:33.4961515+02:00||;True|2025-04-22T07:16:30.0019927+02:00||;True|2025-04-17T07:35:19.5003910+02:00||;True|2025-04-16T07:51:44.2105982+02:00||;True|2025-04-15T17:39:22.9354819+02:00||;True|2025-04-15T13:59:38.1491035+02:00||;True|2025-04-15T13:26:09.1911007+02:00||;False|2025-04-15T13:24:05.8283613+02:00||;True|2025-04-15T12:05:53.7928484+02:00||;True|2025-04-14T11:46:19.0213400+02:00||;True|2025-04-14T11:19:57.9110025+02:00||;False|2025-04-14T11:18:49.2970157+02:00||;True|2025-04-14T10:56:19.4313583+02:00||;True|2025-04-14T10:09:57.0472222+02:00||;True|2025-04-11T09:36:58.9281719+02:00||;
\ No newline at end of file
diff --git a/WinFormsApp1/Properties/Settings.Designer.cs b/WinFormsApp1/Properties/Settings.Designer.cs
index 3237f5e..519b6dc 100644
--- a/WinFormsApp1/Properties/Settings.Designer.cs
+++ b/WinFormsApp1/Properties/Settings.Designer.cs
@@ -130,5 +130,29 @@ namespace WinFormsApp1.Properties {
this["recorderExe"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string chaturbateSessionToken {
+ get {
+ return ((string)(this["chaturbateSessionToken"]));
+ }
+ set {
+ this["chaturbateSessionToken"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string chaturbateSessionID {
+ get {
+ return ((string)(this["chaturbateSessionID"]));
+ }
+ set {
+ this["chaturbateSessionID"] = value;
+ }
+ }
}
}
diff --git a/WinFormsApp1/Properties/Settings.settings b/WinFormsApp1/Properties/Settings.settings
index 862f181..8f8871f 100644
--- a/WinFormsApp1/Properties/Settings.settings
+++ b/WinFormsApp1/Properties/Settings.settings
@@ -29,5 +29,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WinFormsApp1/Resources/recorder.exe b/WinFormsApp1/Resources/recorder.exe
index dfb1f53..6814f7f 100644
Binary files a/WinFormsApp1/Resources/recorder.exe and b/WinFormsApp1/Resources/recorder.exe differ
diff --git a/WinFormsApp1/WinFormsApp1.csproj b/WinFormsApp1/WinFormsApp1.csproj
index bebbadf..6e72a60 100644
--- a/WinFormsApp1/WinFormsApp1.csproj
+++ b/WinFormsApp1/WinFormsApp1.csproj
@@ -65,19 +65,22 @@
-
-
+
+
-
+
+
-
+
+
+
-
+
@@ -157,15 +160,15 @@
-
+
-
+
-
+
\ No newline at end of file
diff --git a/WinFormsApp1/WinFormsApp1.csproj.user b/WinFormsApp1/WinFormsApp1.csproj.user
index 959d7b4..f4644dc 100644
--- a/WinFormsApp1/WinFormsApp1.csproj.user
+++ b/WinFormsApp1/WinFormsApp1.csproj.user
@@ -4,6 +4,9 @@
<_LastSelectedProfileId>C:\Users\Rother\fork\WinFormsApp1\WinFormsApp1\Properties\PublishProfiles\FolderProfile.pubxml
+
+ Form
+
Form