mirror of
https://github.com/ShareX/ShareX.git
synced 2024-07-05 06:30:36 +12:00
Adding video/audio devices
This commit is contained in:
parent
bb5b950185
commit
d2ca6c6577
|
@ -212,5 +212,10 @@ public static bool IsNumber(this string text)
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string[] Lines(this string text)
|
||||||
|
{
|
||||||
|
return text.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -144,9 +144,50 @@ public static bool ExtractFFmpeg(string zipPath, string extractPath)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ListDevices()
|
public DirectShowDevices GetDirectShowDevices()
|
||||||
{
|
{
|
||||||
WriteInput("-list_devices true -f dshow -i dummy");
|
DirectShowDevices devices = new DirectShowDevices();
|
||||||
|
|
||||||
|
if (File.Exists(Options.FFmpeg.CLIPath))
|
||||||
|
{
|
||||||
|
string arg = "-list_devices true -f dshow -i dummy";
|
||||||
|
Open(Options.FFmpeg.CLIPath, arg);
|
||||||
|
string output = Errors.ToString();
|
||||||
|
string[] lines = output.Lines();
|
||||||
|
bool isVideo = true;
|
||||||
|
Regex regex = new Regex("\\[dshow @ \\w+\\] \"(.+)\"", RegexOptions.Compiled | RegexOptions.CultureInvariant);
|
||||||
|
foreach (string line in lines)
|
||||||
|
{
|
||||||
|
if (line.EndsWith("] DirectShow video devices", StringComparison.InvariantCulture))
|
||||||
|
{
|
||||||
|
isVideo = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (line.EndsWith("] DirectShow audio devices", StringComparison.InvariantCulture))
|
||||||
|
{
|
||||||
|
isVideo = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Match match = regex.Match(line);
|
||||||
|
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
string value = match.Groups[1].Value;
|
||||||
|
|
||||||
|
if (isVideo)
|
||||||
|
{
|
||||||
|
devices.VideoDevices.Add(value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
devices.AudioDevices.Add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
|
@ -154,4 +195,10 @@ public override void Close()
|
||||||
WriteInput("q");
|
WriteInput("q");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class DirectShowDevices
|
||||||
|
{
|
||||||
|
public List<string> VideoDevices = new List<string>();
|
||||||
|
public List<string> AudioDevices = new List<string>();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -70,6 +70,7 @@ private void InitializeComponent()
|
||||||
this.gbSource = new System.Windows.Forms.GroupBox();
|
this.gbSource = new System.Windows.Forms.GroupBox();
|
||||||
this.gbCodecs = new System.Windows.Forms.GroupBox();
|
this.gbCodecs = new System.Windows.Forms.GroupBox();
|
||||||
this.gbContainer = new System.Windows.Forms.GroupBox();
|
this.gbContainer = new System.Windows.Forms.GroupBox();
|
||||||
|
this.btnRefreshSources = new System.Windows.Forms.Button();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudx264CRF)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudx264CRF)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudQscale)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudQscale)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudVPxCRF)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudVPxCRF)).BeginInit();
|
||||||
|
@ -89,7 +90,7 @@ private void InitializeComponent()
|
||||||
// lblExt
|
// lblExt
|
||||||
//
|
//
|
||||||
this.lblExt.AutoSize = true;
|
this.lblExt.AutoSize = true;
|
||||||
this.lblExt.Location = new System.Drawing.Point(8, 36);
|
this.lblExt.Location = new System.Drawing.Point(8, 26);
|
||||||
this.lblExt.Name = "lblExt";
|
this.lblExt.Name = "lblExt";
|
||||||
this.lblExt.Size = new System.Drawing.Size(56, 13);
|
this.lblExt.Size = new System.Drawing.Size(56, 13);
|
||||||
this.lblExt.TabIndex = 2;
|
this.lblExt.TabIndex = 2;
|
||||||
|
@ -186,15 +187,15 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
this.cbExtension.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cbExtension.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cbExtension.FormattingEnabled = true;
|
this.cbExtension.FormattingEnabled = true;
|
||||||
this.cbExtension.Location = new System.Drawing.Point(72, 32);
|
this.cbExtension.Location = new System.Drawing.Point(72, 22);
|
||||||
this.cbExtension.Name = "cbExtension";
|
this.cbExtension.Name = "cbExtension";
|
||||||
this.cbExtension.Size = new System.Drawing.Size(72, 21);
|
this.cbExtension.Size = new System.Drawing.Size(88, 21);
|
||||||
this.cbExtension.TabIndex = 3;
|
this.cbExtension.TabIndex = 3;
|
||||||
//
|
//
|
||||||
// lblCodec
|
// lblCodec
|
||||||
//
|
//
|
||||||
this.lblCodec.AutoSize = true;
|
this.lblCodec.AutoSize = true;
|
||||||
this.lblCodec.Location = new System.Drawing.Point(8, 28);
|
this.lblCodec.Location = new System.Drawing.Point(8, 26);
|
||||||
this.lblCodec.Name = "lblCodec";
|
this.lblCodec.Name = "lblCodec";
|
||||||
this.lblCodec.Size = new System.Drawing.Size(70, 13);
|
this.lblCodec.Size = new System.Drawing.Size(70, 13);
|
||||||
this.lblCodec.TabIndex = 0;
|
this.lblCodec.TabIndex = 0;
|
||||||
|
@ -204,9 +205,9 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
this.cboVideoCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cboVideoCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cboVideoCodec.FormattingEnabled = true;
|
this.cboVideoCodec.FormattingEnabled = true;
|
||||||
this.cboVideoCodec.Location = new System.Drawing.Point(88, 24);
|
this.cboVideoCodec.Location = new System.Drawing.Point(88, 22);
|
||||||
this.cboVideoCodec.Name = "cboVideoCodec";
|
this.cboVideoCodec.Name = "cboVideoCodec";
|
||||||
this.cboVideoCodec.Size = new System.Drawing.Size(120, 21);
|
this.cboVideoCodec.Size = new System.Drawing.Size(136, 21);
|
||||||
this.cboVideoCodec.TabIndex = 1;
|
this.cboVideoCodec.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// cbPreset
|
// cbPreset
|
||||||
|
@ -361,7 +362,7 @@ private void InitializeComponent()
|
||||||
this.tpVpx.Controls.Add(this.lblVpxCRF);
|
this.tpVpx.Controls.Add(this.lblVpxCRF);
|
||||||
this.tpVpx.Location = new System.Drawing.Point(4, 22);
|
this.tpVpx.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tpVpx.Name = "tpVpx";
|
this.tpVpx.Name = "tpVpx";
|
||||||
this.tpVpx.Size = new System.Drawing.Size(304, 46);
|
this.tpVpx.Size = new System.Drawing.Size(312, 46);
|
||||||
this.tpVpx.TabIndex = 2;
|
this.tpVpx.TabIndex = 2;
|
||||||
this.tpVpx.Text = "VP8";
|
this.tpVpx.Text = "VP8";
|
||||||
this.tpVpx.UseVisualStyleBackColor = true;
|
this.tpVpx.UseVisualStyleBackColor = true;
|
||||||
|
@ -381,7 +382,7 @@ private void InitializeComponent()
|
||||||
this.tpXvid.Controls.Add(this.lblQscale);
|
this.tpXvid.Controls.Add(this.lblQscale);
|
||||||
this.tpXvid.Location = new System.Drawing.Point(4, 22);
|
this.tpXvid.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tpXvid.Name = "tpXvid";
|
this.tpXvid.Name = "tpXvid";
|
||||||
this.tpXvid.Size = new System.Drawing.Size(304, 46);
|
this.tpXvid.Size = new System.Drawing.Size(312, 46);
|
||||||
this.tpXvid.TabIndex = 3;
|
this.tpXvid.TabIndex = 3;
|
||||||
this.tpXvid.Text = "XviD";
|
this.tpXvid.Text = "XviD";
|
||||||
this.tpXvid.UseVisualStyleBackColor = true;
|
this.tpXvid.UseVisualStyleBackColor = true;
|
||||||
|
@ -439,15 +440,15 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
this.cboVideoSource.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cboVideoSource.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cboVideoSource.FormattingEnabled = true;
|
this.cboVideoSource.FormattingEnabled = true;
|
||||||
this.cboVideoSource.Location = new System.Drawing.Point(96, 22);
|
this.cboVideoSource.Location = new System.Drawing.Point(88, 22);
|
||||||
this.cboVideoSource.Name = "cboVideoSource";
|
this.cboVideoSource.Name = "cboVideoSource";
|
||||||
this.cboVideoSource.Size = new System.Drawing.Size(120, 21);
|
this.cboVideoSource.Size = new System.Drawing.Size(136, 21);
|
||||||
this.cboVideoSource.TabIndex = 12;
|
this.cboVideoSource.TabIndex = 12;
|
||||||
//
|
//
|
||||||
// lblVideoSource
|
// lblVideoSource
|
||||||
//
|
//
|
||||||
this.lblVideoSource.AutoSize = true;
|
this.lblVideoSource.AutoSize = true;
|
||||||
this.lblVideoSource.Location = new System.Drawing.Point(16, 26);
|
this.lblVideoSource.Location = new System.Drawing.Point(8, 26);
|
||||||
this.lblVideoSource.Name = "lblVideoSource";
|
this.lblVideoSource.Name = "lblVideoSource";
|
||||||
this.lblVideoSource.Size = new System.Drawing.Size(72, 13);
|
this.lblVideoSource.Size = new System.Drawing.Size(72, 13);
|
||||||
this.lblVideoSource.TabIndex = 11;
|
this.lblVideoSource.TabIndex = 11;
|
||||||
|
@ -457,17 +458,15 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
this.cboAudioSource.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cboAudioSource.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cboAudioSource.FormattingEnabled = true;
|
this.cboAudioSource.FormattingEnabled = true;
|
||||||
this.cboAudioSource.Items.AddRange(new object[] {
|
this.cboAudioSource.Location = new System.Drawing.Point(88, 52);
|
||||||
"None"});
|
|
||||||
this.cboAudioSource.Location = new System.Drawing.Point(96, 56);
|
|
||||||
this.cboAudioSource.Name = "cboAudioSource";
|
this.cboAudioSource.Name = "cboAudioSource";
|
||||||
this.cboAudioSource.Size = new System.Drawing.Size(120, 21);
|
this.cboAudioSource.Size = new System.Drawing.Size(136, 21);
|
||||||
this.cboAudioSource.TabIndex = 14;
|
this.cboAudioSource.TabIndex = 14;
|
||||||
//
|
//
|
||||||
// lblAudioSource
|
// lblAudioSource
|
||||||
//
|
//
|
||||||
this.lblAudioSource.AutoSize = true;
|
this.lblAudioSource.AutoSize = true;
|
||||||
this.lblAudioSource.Location = new System.Drawing.Point(16, 60);
|
this.lblAudioSource.Location = new System.Drawing.Point(8, 56);
|
||||||
this.lblAudioSource.Name = "lblAudioSource";
|
this.lblAudioSource.Name = "lblAudioSource";
|
||||||
this.lblAudioSource.Size = new System.Drawing.Size(72, 13);
|
this.lblAudioSource.Size = new System.Drawing.Size(72, 13);
|
||||||
this.lblAudioSource.TabIndex = 13;
|
this.lblAudioSource.TabIndex = 13;
|
||||||
|
@ -477,15 +476,15 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
this.cboAudioCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cboAudioCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cboAudioCodec.FormattingEnabled = true;
|
this.cboAudioCodec.FormattingEnabled = true;
|
||||||
this.cboAudioCodec.Location = new System.Drawing.Point(88, 56);
|
this.cboAudioCodec.Location = new System.Drawing.Point(88, 52);
|
||||||
this.cboAudioCodec.Name = "cboAudioCodec";
|
this.cboAudioCodec.Name = "cboAudioCodec";
|
||||||
this.cboAudioCodec.Size = new System.Drawing.Size(120, 21);
|
this.cboAudioCodec.Size = new System.Drawing.Size(136, 21);
|
||||||
this.cboAudioCodec.TabIndex = 16;
|
this.cboAudioCodec.TabIndex = 16;
|
||||||
//
|
//
|
||||||
// lblAudioCodec
|
// lblAudioCodec
|
||||||
//
|
//
|
||||||
this.lblAudioCodec.AutoSize = true;
|
this.lblAudioCodec.AutoSize = true;
|
||||||
this.lblAudioCodec.Location = new System.Drawing.Point(8, 60);
|
this.lblAudioCodec.Location = new System.Drawing.Point(8, 56);
|
||||||
this.lblAudioCodec.Name = "lblAudioCodec";
|
this.lblAudioCodec.Name = "lblAudioCodec";
|
||||||
this.lblAudioCodec.Size = new System.Drawing.Size(70, 13);
|
this.lblAudioCodec.Size = new System.Drawing.Size(70, 13);
|
||||||
this.lblAudioCodec.TabIndex = 15;
|
this.lblAudioCodec.TabIndex = 15;
|
||||||
|
@ -510,9 +509,9 @@ private void InitializeComponent()
|
||||||
this.gbCodecs.Controls.Add(this.lblAudioCodec);
|
this.gbCodecs.Controls.Add(this.lblAudioCodec);
|
||||||
this.gbCodecs.Controls.Add(this.cboVideoCodec);
|
this.gbCodecs.Controls.Add(this.cboVideoCodec);
|
||||||
this.gbCodecs.Controls.Add(this.lblCodec);
|
this.gbCodecs.Controls.Add(this.lblCodec);
|
||||||
this.gbCodecs.Location = new System.Drawing.Point(256, 8);
|
this.gbCodecs.Location = new System.Drawing.Point(248, 8);
|
||||||
this.gbCodecs.Name = "gbCodecs";
|
this.gbCodecs.Name = "gbCodecs";
|
||||||
this.gbCodecs.Size = new System.Drawing.Size(224, 88);
|
this.gbCodecs.Size = new System.Drawing.Size(232, 88);
|
||||||
this.gbCodecs.TabIndex = 18;
|
this.gbCodecs.TabIndex = 18;
|
||||||
this.gbCodecs.TabStop = false;
|
this.gbCodecs.TabStop = false;
|
||||||
this.gbCodecs.Text = "Codecs";
|
this.gbCodecs.Text = "Codecs";
|
||||||
|
@ -521,19 +520,30 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
this.gbContainer.Controls.Add(this.cbExtension);
|
this.gbContainer.Controls.Add(this.cbExtension);
|
||||||
this.gbContainer.Controls.Add(this.lblExt);
|
this.gbContainer.Controls.Add(this.lblExt);
|
||||||
this.gbContainer.Location = new System.Drawing.Point(496, 8);
|
this.gbContainer.Location = new System.Drawing.Point(488, 8);
|
||||||
this.gbContainer.Name = "gbContainer";
|
this.gbContainer.Name = "gbContainer";
|
||||||
this.gbContainer.Size = new System.Drawing.Size(160, 88);
|
this.gbContainer.Size = new System.Drawing.Size(168, 88);
|
||||||
this.gbContainer.TabIndex = 19;
|
this.gbContainer.TabIndex = 19;
|
||||||
this.gbContainer.TabStop = false;
|
this.gbContainer.TabStop = false;
|
||||||
this.gbContainer.Text = "Container format";
|
this.gbContainer.Text = "Container format";
|
||||||
//
|
//
|
||||||
|
// btnRefreshSources
|
||||||
|
//
|
||||||
|
this.btnRefreshSources.Location = new System.Drawing.Point(176, 4);
|
||||||
|
this.btnRefreshSources.Name = "btnRefreshSources";
|
||||||
|
this.btnRefreshSources.Size = new System.Drawing.Size(56, 23);
|
||||||
|
this.btnRefreshSources.TabIndex = 20;
|
||||||
|
this.btnRefreshSources.Text = "Refresh";
|
||||||
|
this.btnRefreshSources.UseVisualStyleBackColor = true;
|
||||||
|
this.btnRefreshSources.Click += new System.EventHandler(this.btnRefreshSources_Click);
|
||||||
|
//
|
||||||
// FFmpegOptionsForm
|
// FFmpegOptionsForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.White;
|
this.BackColor = System.Drawing.Color.White;
|
||||||
this.ClientSize = new System.Drawing.Size(668, 474);
|
this.ClientSize = new System.Drawing.Size(668, 474);
|
||||||
|
this.Controls.Add(this.btnRefreshSources);
|
||||||
this.Controls.Add(this.gbContainer);
|
this.Controls.Add(this.gbContainer);
|
||||||
this.Controls.Add(this.gbCodecs);
|
this.Controls.Add(this.gbCodecs);
|
||||||
this.Controls.Add(this.gbSource);
|
this.Controls.Add(this.gbSource);
|
||||||
|
@ -619,5 +629,6 @@ private void InitializeComponent()
|
||||||
private System.Windows.Forms.GroupBox gbSource;
|
private System.Windows.Forms.GroupBox gbSource;
|
||||||
private System.Windows.Forms.GroupBox gbCodecs;
|
private System.Windows.Forms.GroupBox gbCodecs;
|
||||||
private System.Windows.Forms.GroupBox gbContainer;
|
private System.Windows.Forms.GroupBox gbContainer;
|
||||||
|
private System.Windows.Forms.Button btnRefreshSources;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -71,6 +71,8 @@ public FFmpegOptionsForm(ScreencastOptions options)
|
||||||
private void SettingsLoad()
|
private void SettingsLoad()
|
||||||
{
|
{
|
||||||
// General
|
// General
|
||||||
|
RefreshSources();
|
||||||
|
|
||||||
cboVideoCodec.Items.AddRange(Helpers.GetEnumDescriptions<FFmpegVideoCodec>());
|
cboVideoCodec.Items.AddRange(Helpers.GetEnumDescriptions<FFmpegVideoCodec>());
|
||||||
cboVideoCodec.SelectedIndex = (int)Options.FFmpeg.VideoCodec;
|
cboVideoCodec.SelectedIndex = (int)Options.FFmpeg.VideoCodec;
|
||||||
cboVideoCodec.SelectedIndexChanged += (sender, e) => { UpdateUI(); UpdateExtensions(); };
|
cboVideoCodec.SelectedIndexChanged += (sender, e) => { UpdateUI(); UpdateExtensions(); };
|
||||||
|
@ -107,6 +109,30 @@ private void SettingsLoad()
|
||||||
nudQscale.ValueChanged += (sender, e) => UpdateUI();
|
nudQscale.ValueChanged += (sender, e) => UpdateUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void RefreshSources()
|
||||||
|
{
|
||||||
|
DirectShowDevices devices = null;
|
||||||
|
Helpers.AsyncJob(() =>
|
||||||
|
{
|
||||||
|
using (FFmpegHelper ffmpeg = new FFmpegHelper(Options))
|
||||||
|
{
|
||||||
|
devices = ffmpeg.GetDirectShowDevices();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
() =>
|
||||||
|
{
|
||||||
|
cboVideoSource.Items.Clear();
|
||||||
|
cboVideoSource.Items.Add("GDI grab");
|
||||||
|
cboAudioSource.Items.Clear();
|
||||||
|
cboAudioSource.Items.Add("None");
|
||||||
|
if (devices != null)
|
||||||
|
{
|
||||||
|
cboVideoSource.Items.AddRange(devices.VideoDevices.ToArray());
|
||||||
|
cboAudioSource.Items.AddRange(devices.AudioDevices.ToArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void SettingsSave()
|
public void SettingsSave()
|
||||||
{
|
{
|
||||||
// General
|
// General
|
||||||
|
@ -154,8 +180,11 @@ public void UpdateExtensions()
|
||||||
|
|
||||||
private void buttonFFmpegBrowse_Click(object sender, EventArgs e)
|
private void buttonFFmpegBrowse_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Helpers.BrowseFile("Browse for ffmpeg.exe", tbFFmpegPath, Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
|
if (Helpers.BrowseFile("Browse for ffmpeg.exe", tbFFmpegPath, Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)))
|
||||||
UpdateUI();
|
{
|
||||||
|
RefreshSources();
|
||||||
|
UpdateUI();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonFFmpegHelp_Click(object sender, EventArgs e)
|
private void buttonFFmpegHelp_Click(object sender, EventArgs e)
|
||||||
|
@ -175,7 +204,12 @@ private void DownloaderForm_InstallRequested(string filePath)
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
this.InvokeSafe(() => tbFFmpegPath.Text = extractPath);
|
this.InvokeSafe(() =>
|
||||||
|
{
|
||||||
|
tbFFmpegPath.Text = extractPath;
|
||||||
|
RefreshSources();
|
||||||
|
UpdateUI();
|
||||||
|
});
|
||||||
MessageBox.Show("FFmpeg successfully downloaded.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show("FFmpeg successfully downloaded.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -211,5 +245,10 @@ private void btnCopyPreview_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ClipboardHelpers.CopyText("ffmpeg " + Options.GetFFmpegArgs());
|
ClipboardHelpers.CopyText("ffmpeg " + Options.GetFFmpegArgs());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void btnRefreshSources_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RefreshSources();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue