FFmpeg UI changes

This commit is contained in:
Jaex 2015-06-25 17:06:26 +03:00
parent 06a5d18790
commit 5a395ed5bc
4 changed files with 174 additions and 160 deletions

View file

@ -36,11 +36,13 @@ namespace ShareX.ScreenCaptureLib
{
public class FFmpegHelper : ExternalCLIManager
{
public const int libmp3lame_qscale_end = 9;
public const string SourceNone = "None";
public const string SourceGDIGrab = "GDI grab";
public const string SourceVideoDevice = "screen-capture-recorder";
public const string SourceAudioDevice = "virtual-audio-capturer";
public const string DeviceSetupPath = "Screen Capture Recorder setup.exe";
public const int libmp3lame_qscale_end = 9;
public StringBuilder Output { get; private set; }
public ScreencastOptions Options { get; private set; }

View file

@ -80,13 +80,13 @@ private void InitializeComponent()
this.cboAudioCodec = new System.Windows.Forms.ComboBox();
this.lblAudioCodec = new System.Windows.Forms.Label();
this.gbSource = new System.Windows.Forms.GroupBox();
this.btnHelperDevicesHelp = new System.Windows.Forms.Button();
this.lblHelperDevices = new System.Windows.Forms.Label();
this.btnInstallHelperDevices = new System.Windows.Forms.Button();
this.btnRefreshSources = new System.Windows.Forms.Button();
this.gbCodecs = new System.Windows.Forms.GroupBox();
this.btnHelp = new System.Windows.Forms.Button();
this.eiFFmpeg = new ShareX.HelpersLib.ExportImportControl();
this.btnInstallHelperDevices = new System.Windows.Forms.Button();
this.lblHelperDevices = new System.Windows.Forms.Label();
this.btnHelperDevicesHelp = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.nudx264CRF)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudXvidQscale)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tbVorbis_qscale)).BeginInit();
@ -532,6 +532,25 @@ private void InitializeComponent()
this.gbSource.Name = "gbSource";
this.gbSource.TabStop = false;
//
// btnHelperDevicesHelp
//
resources.ApplyResources(this.btnHelperDevicesHelp, "btnHelperDevicesHelp");
this.btnHelperDevicesHelp.Name = "btnHelperDevicesHelp";
this.btnHelperDevicesHelp.UseVisualStyleBackColor = true;
this.btnHelperDevicesHelp.Click += new System.EventHandler(this.btnHelperDevicesHelp_Click);
//
// lblHelperDevices
//
resources.ApplyResources(this.lblHelperDevices, "lblHelperDevices");
this.lblHelperDevices.Name = "lblHelperDevices";
//
// btnInstallHelperDevices
//
resources.ApplyResources(this.btnInstallHelperDevices, "btnInstallHelperDevices");
this.btnInstallHelperDevices.Name = "btnInstallHelperDevices";
this.btnInstallHelperDevices.UseVisualStyleBackColor = true;
this.btnInstallHelperDevices.Click += new System.EventHandler(this.btnInstallHelperDevices_Click);
//
// btnRefreshSources
//
resources.ApplyResources(this.btnRefreshSources, "btnRefreshSources");
@ -545,6 +564,8 @@ private void InitializeComponent()
this.gbCodecs.Controls.Add(this.lblAudioCodec);
this.gbCodecs.Controls.Add(this.cboVideoCodec);
this.gbCodecs.Controls.Add(this.lblCodec);
this.gbCodecs.Controls.Add(this.tcFFmpegAudioCodecs);
this.gbCodecs.Controls.Add(this.tcFFmpegVideoCodecs);
resources.ApplyResources(this.gbCodecs, "gbCodecs");
this.gbCodecs.Name = "gbCodecs";
this.gbCodecs.TabStop = false;
@ -564,25 +585,6 @@ private void InitializeComponent()
this.eiFFmpeg.ExportRequested += new ShareX.HelpersLib.ExportImportControl.ExportEventHandler(this.eiFFmpeg_ExportRequested);
this.eiFFmpeg.ImportRequested += new ShareX.HelpersLib.ExportImportControl.ImportEventHandler(this.eiFFmpeg_ImportRequested);
//
// btnInstallHelperDevices
//
resources.ApplyResources(this.btnInstallHelperDevices, "btnInstallHelperDevices");
this.btnInstallHelperDevices.Name = "btnInstallHelperDevices";
this.btnInstallHelperDevices.UseVisualStyleBackColor = true;
this.btnInstallHelperDevices.Click += new System.EventHandler(this.btnInstallHelperDevices_Click);
//
// lblHelperDevices
//
resources.ApplyResources(this.lblHelperDevices, "lblHelperDevices");
this.lblHelperDevices.Name = "lblHelperDevices";
//
// btnHelperDevicesHelp
//
resources.ApplyResources(this.btnHelperDevicesHelp, "btnHelperDevicesHelp");
this.btnHelperDevicesHelp.Name = "btnHelperDevicesHelp";
this.btnHelperDevicesHelp.UseVisualStyleBackColor = true;
this.btnHelperDevicesHelp.Click += new System.EventHandler(this.btnHelperDevicesHelp_Click);
//
// FFmpegOptionsForm
//
resources.ApplyResources(this, "$this");
@ -592,10 +594,8 @@ private void InitializeComponent()
this.Controls.Add(this.btnHelp);
this.Controls.Add(this.gbCodecs);
this.Controls.Add(this.gbSource);
this.Controls.Add(this.tcFFmpegAudioCodecs);
this.Controls.Add(this.btnCopyPreview);
this.Controls.Add(this.btnTest);
this.Controls.Add(this.tcFFmpegVideoCodecs);
this.Controls.Add(this.gbCommandLinePreview);
this.Controls.Add(this.gbFFmpegExe);
this.Controls.Add(this.gbCommandLineArgs);

View file

@ -35,17 +35,17 @@ namespace ShareX.ScreenCaptureLib
{
public partial class FFmpegOptionsForm : Form
{
public ScreencastOptions Options = new ScreencastOptions();
public string DefaultToolsPath;
public ScreencastOptions Options { get; private set; }
public string DefaultToolsPath { get; set; }
private bool settingsLoaded;
private bool devicesInstalled;
public FFmpegOptionsForm(ScreencastOptions options)
{
InitializeComponent();
Icon = ShareXResources.Icon;
Options = options;
eiFFmpeg.ObjectType = typeof(FFmpegOptions);
cboVideoCodec.Items.AddRange(Helpers.GetEnumDescriptions<FFmpegVideoCodec>());
cboAudioCodec.Items.AddRange(Helpers.GetEnumDescriptions<FFmpegAudioCodec>());
@ -73,6 +73,7 @@ private void SettingsLoad()
}
txtFFmpegPath.Text = Options.FFmpeg.CLIPath;
txtFFmpegPath.SelectionStart = txtFFmpegPath.TextLength;
tbUserArgs.Text = Options.FFmpeg.UserArgs;
@ -111,7 +112,7 @@ private void SettingsLoad()
UpdateUI();
}
private void RefreshSourcesAsync()
private void RefreshSourcesAsync(bool selectDevices = false)
{
btnRefreshSources.Enabled = false;
DirectShowDevices devices = null;
@ -130,27 +131,27 @@ private void RefreshSourcesAsync()
cboVideoSource.Items.Add(FFmpegHelper.SourceGDIGrab);
cboAudioSource.Items.Clear();
cboAudioSource.Items.Add(FFmpegHelper.SourceNone);
if (devices != null)
{
cboVideoSource.Items.AddRange(devices.VideoDevices.ToArray());
cboAudioSource.Items.AddRange(devices.AudioDevices.ToArray());
}
if (devicesInstalled && cboVideoSource.Items.Contains(FFmpegHelper.SourceVideoDevice))
if (selectDevices && cboVideoSource.Items.Contains(FFmpegHelper.SourceVideoDevice))
{
Options.FFmpeg.VideoSource = FFmpegHelper.SourceVideoDevice;
}
cboVideoSource.Text = Options.FFmpeg.VideoSource;
if (devicesInstalled && cboAudioSource.Items.Contains(FFmpegHelper.SourceAudioDevice))
if (selectDevices && cboAudioSource.Items.Contains(FFmpegHelper.SourceAudioDevice))
{
Options.FFmpeg.AudioSource = FFmpegHelper.SourceAudioDevice;
}
cboAudioSource.Text = Options.FFmpeg.AudioSource;
devicesInstalled = false;
btnRefreshSources.Enabled = true;
});
}
@ -189,7 +190,7 @@ private void cboAudioSource_SelectedIndexChanged(object sender, EventArgs e)
private void btnInstallHelperDevices_Click(object sender, EventArgs e)
{
string filepath = Helpers.GetAbsolutePath("Screen Capture Recorder setup.exe");
string filepath = Helpers.GetAbsolutePath(FFmpegHelper.DeviceSetupPath);
if (!string.IsNullOrEmpty(filepath) && File.Exists(filepath))
{
@ -199,12 +200,11 @@ private void btnInstallHelperDevices_Click(object sender, EventArgs e)
{
Process process = Process.Start(filepath);
if (process.WaitForExit(1000 * 60 * 5))
if (process.WaitForExit(1000 * 60 * 5) && process.ExitCode == 0)
{
this.InvokeSafe(() =>
{
devicesInstalled = true;
RefreshSourcesAsync();
RefreshSourcesAsync(true);
});
}
}

View file

@ -242,7 +242,7 @@ Similarly, for constant quality encoding, you will simply save bitrate by choosi
<value>Right</value>
</data>
<data name="tbVorbis_qscale.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 3</value>
<value>104, 3</value>
</data>
<data name="tbVorbis_qscale.Size" type="System.Drawing.Size, System.Drawing">
<value>197, 64</value>
@ -269,7 +269,7 @@ Similarly, for constant quality encoding, you will simply save bitrate by choosi
<value>Right</value>
</data>
<data name="tbMP3_qscale.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 3</value>
<value>104, 3</value>
</data>
<data name="tbMP3_qscale.Size" type="System.Drawing.Size, System.Drawing">
<value>197, 64</value>
@ -296,7 +296,7 @@ Similarly, for constant quality encoding, you will simply save bitrate by choosi
<value>Right</value>
</data>
<data name="tbAACBitrate.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 3</value>
<value>104, 3</value>
</data>
<data name="tbAACBitrate.Size" type="System.Drawing.Size, System.Drawing">
<value>197, 64</value>
@ -380,7 +380,7 @@ Default is sierra2_4a.</value>
<value>True</value>
</data>
<data name="lblCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 26</value>
<value>8, 24</value>
</data>
<data name="lblCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 13</value>
@ -404,10 +404,10 @@ Default is sierra2_4a.</value>
<value>3</value>
</data>
<data name="cboVideoCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 22</value>
<value>120, 20</value>
</data>
<data name="cboVideoCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 21</value>
<value>104, 21</value>
</data>
<data name="cboVideoCodec.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -478,66 +478,6 @@ Default is sierra2_4a.</value>
<data name="&gt;&gt;lblXvidQscale.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;btnDownload.Name" xml:space="preserve">
<value>btnDownload</value>
</data>
<data name="&gt;&gt;btnDownload.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnDownload.Parent" xml:space="preserve">
<value>gbFFmpegExe</value>
</data>
<data name="&gt;&gt;btnDownload.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;btnFFmpegBrowse.Name" xml:space="preserve">
<value>btnFFmpegBrowse</value>
</data>
<data name="&gt;&gt;btnFFmpegBrowse.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnFFmpegBrowse.Parent" xml:space="preserve">
<value>gbFFmpegExe</value>
</data>
<data name="&gt;&gt;btnFFmpegBrowse.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;txtFFmpegPath.Name" xml:space="preserve">
<value>txtFFmpegPath</value>
</data>
<data name="&gt;&gt;txtFFmpegPath.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtFFmpegPath.Parent" xml:space="preserve">
<value>gbFFmpegExe</value>
</data>
<data name="&gt;&gt;txtFFmpegPath.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="gbFFmpegExe.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 8</value>
</data>
<data name="gbFFmpegExe.Size" type="System.Drawing.Size, System.Drawing">
<value>648, 56</value>
</data>
<data name="gbFFmpegExe.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="gbFFmpegExe.Text" xml:space="preserve">
<value>ffmpeg.exe</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.Name" xml:space="preserve">
<value>gbFFmpegExe</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="btnDownload.Location" type="System.Drawing.Point, System.Drawing">
<value>552, 22</value>
</data>
@ -563,10 +503,10 @@ Default is sierra2_4a.</value>
<value>0</value>
</data>
<data name="btnFFmpegBrowse.Location" type="System.Drawing.Point, System.Drawing">
<value>504, 22</value>
<value>512, 22</value>
</data>
<data name="btnFFmpegBrowse.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 24</value>
<value>32, 24</value>
</data>
<data name="btnFFmpegBrowse.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -590,7 +530,7 @@ Default is sierra2_4a.</value>
<value>8, 24</value>
</data>
<data name="txtFFmpegPath.Size" type="System.Drawing.Size, System.Drawing">
<value>488, 20</value>
<value>496, 20</value>
</data>
<data name="txtFFmpegPath.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -607,6 +547,30 @@ Default is sierra2_4a.</value>
<data name="&gt;&gt;txtFFmpegPath.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="gbFFmpegExe.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 8</value>
</data>
<data name="gbFFmpegExe.Size" type="System.Drawing.Size, System.Drawing">
<value>648, 56</value>
</data>
<data name="gbFFmpegExe.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="gbFFmpegExe.Text" xml:space="preserve">
<value>FFmpeg path</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.Name" xml:space="preserve">
<value>gbFFmpegExe</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;gbFFmpegExe.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="&gt;&gt;cbCustomCommands.Name" xml:space="preserve">
<value>cbCustomCommands</value>
</data>
@ -656,13 +620,13 @@ Default is sierra2_4a.</value>
<value>$this</value>
</data>
<data name="&gt;&gt;gbCommandLinePreview.ZOrder" xml:space="preserve">
<value>8</value>
<value>6</value>
</data>
<data name="cbCustomCommands.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>320, 0</value>
<value>376, 0</value>
</data>
<data name="cbCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
<value>136, 17</value>
@ -764,16 +728,16 @@ Default is sierra2_4a.</value>
<value>$this</value>
</data>
<data name="&gt;&gt;gbCommandLineArgs.ZOrder" xml:space="preserve">
<value>10</value>
<value>8</value>
</data>
<data name="btnFFmpegHelp.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
<data name="btnFFmpegHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>600, 22</value>
<value>616, 23</value>
</data>
<data name="btnFFmpegHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 24</value>
<value>24, 23</value>
</data>
<data name="btnFFmpegHelp.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -800,7 +764,7 @@ Default is sierra2_4a.</value>
<value>8, 24</value>
</data>
<data name="tbUserArgs.Size" type="System.Drawing.Size, System.Drawing">
<value>584, 20</value>
<value>600, 20</value>
</data>
<data name="tbUserArgs.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -866,10 +830,10 @@ Default is sierra2_4a.</value>
<value>3</value>
</data>
<data name="tcFFmpegVideoCodecs.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 232</value>
<value>8, 56</value>
</data>
<data name="tcFFmpegVideoCodecs.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 96</value>
<value>312, 96</value>
</data>
<data name="tcFFmpegVideoCodecs.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -881,10 +845,10 @@ Default is sierra2_4a.</value>
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tcFFmpegVideoCodecs.Parent" xml:space="preserve">
<value>$this</value>
<value>gbCodecs</value>
</data>
<data name="&gt;&gt;tcFFmpegVideoCodecs.ZOrder" xml:space="preserve">
<value>7</value>
<value>5</value>
</data>
<data name="tpX264.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>
@ -893,7 +857,7 @@ Default is sierra2_4a.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpX264.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpX264.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -953,13 +917,13 @@ Default is sierra2_4a.</value>
<value>4, 22</value>
</data>
<data name="tpVpx.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpVpx.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="tpVpx.Text" xml:space="preserve">
<value>VP8 (WebM)</value>
<value>VP8</value>
</data>
<data name="&gt;&gt;tpVpx.Name" xml:space="preserve">
<value>tpVpx</value>
@ -1058,7 +1022,7 @@ Default is sierra2_4a.</value>
<value>4, 22</value>
</data>
<data name="tpXvid.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpXvid.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -1109,7 +1073,7 @@ Default is sierra2_4a.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpGIF.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpGIF.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -1190,7 +1154,7 @@ Default is sierra2_4a.</value>
<value>176, 404</value>
</data>
<data name="btnTest.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 23</value>
<value>120, 23</value>
</data>
<data name="btnTest.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@ -1208,13 +1172,13 @@ Default is sierra2_4a.</value>
<value>$this</value>
</data>
<data name="&gt;&gt;btnTest.ZOrder" xml:space="preserve">
<value>6</value>
<value>5</value>
</data>
<data name="btnCopyPreview.Location" type="System.Drawing.Point, System.Drawing">
<value>267, 404</value>
<value>304, 404</value>
</data>
<data name="btnCopyPreview.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 23</value>
<value>72, 23</value>
</data>
<data name="btnCopyPreview.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
@ -1232,7 +1196,7 @@ Default is sierra2_4a.</value>
<value>$this</value>
</data>
<data name="&gt;&gt;btnCopyPreview.ZOrder" xml:space="preserve">
<value>5</value>
<value>4</value>
</data>
<data name="&gt;&gt;tpAAC.Name" xml:space="preserve">
<value>tpAAC</value>
@ -1271,10 +1235,10 @@ Default is sierra2_4a.</value>
<value>2</value>
</data>
<data name="tcFFmpegAudioCodecs.Location" type="System.Drawing.Point, System.Drawing">
<value>336, 232</value>
<value>328, 56</value>
</data>
<data name="tcFFmpegAudioCodecs.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 96</value>
<value>312, 96</value>
</data>
<data name="tcFFmpegAudioCodecs.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -1286,7 +1250,7 @@ Default is sierra2_4a.</value>
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tcFFmpegAudioCodecs.Parent" xml:space="preserve">
<value>$this</value>
<value>gbCodecs</value>
</data>
<data name="&gt;&gt;tcFFmpegAudioCodecs.ZOrder" xml:space="preserve">
<value>4</value>
@ -1310,7 +1274,7 @@ Default is sierra2_4a.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpAAC.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpAAC.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -1376,7 +1340,7 @@ Default is sierra2_4a.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpVorbis.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpVorbis.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -1442,7 +1406,7 @@ Default is sierra2_4a.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpMP3.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 70</value>
<value>304, 70</value>
</data>
<data name="tpMP3.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -1586,10 +1550,10 @@ Default is sierra2_4a.</value>
<value>6</value>
</data>
<data name="cboAudioCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>264, 22</value>
<value>440, 20</value>
</data>
<data name="cboAudioCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 21</value>
<value>104, 21</value>
</data>
<data name="cboAudioCodec.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -1610,7 +1574,7 @@ Default is sierra2_4a.</value>
<value>True</value>
</data>
<data name="lblAudioCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>184, 26</value>
<value>328, 24</value>
</data>
<data name="lblAudioCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 13</value>
@ -1633,6 +1597,78 @@ Default is sierra2_4a.</value>
<data name="&gt;&gt;lblAudioCodec.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;btnHelperDevicesHelp.Name" xml:space="preserve">
<value>btnHelperDevicesHelp</value>
</data>
<data name="&gt;&gt;btnHelperDevicesHelp.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnHelperDevicesHelp.Parent" xml:space="preserve">
<value>gbSource</value>
</data>
<data name="&gt;&gt;btnHelperDevicesHelp.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;lblHelperDevices.Name" xml:space="preserve">
<value>lblHelperDevices</value>
</data>
<data name="&gt;&gt;lblHelperDevices.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblHelperDevices.Parent" xml:space="preserve">
<value>gbSource</value>
</data>
<data name="&gt;&gt;lblHelperDevices.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;btnInstallHelperDevices.Name" xml:space="preserve">
<value>btnInstallHelperDevices</value>
</data>
<data name="&gt;&gt;btnInstallHelperDevices.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnInstallHelperDevices.Parent" xml:space="preserve">
<value>gbSource</value>
</data>
<data name="&gt;&gt;btnInstallHelperDevices.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;btnRefreshSources.Name" xml:space="preserve">
<value>btnRefreshSources</value>
</data>
<data name="&gt;&gt;btnRefreshSources.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnRefreshSources.Parent" xml:space="preserve">
<value>gbSource</value>
</data>
<data name="&gt;&gt;btnRefreshSources.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="gbSource.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 68</value>
</data>
<data name="gbSource.Size" type="System.Drawing.Size, System.Drawing">
<value>648, 92</value>
</data>
<data name="gbSource.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="gbSource.Text" xml:space="preserve">
<value>Sources</value>
</data>
<data name="&gt;&gt;gbSource.Name" xml:space="preserve">
<value>gbSource</value>
</data>
<data name="&gt;&gt;gbSource.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbSource.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;gbSource.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="btnHelperDevicesHelp.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 56</value>
</data>
@ -1694,7 +1730,7 @@ Default is sierra2_4a.</value>
<value>5</value>
</data>
<data name="btnInstallHelperDevices.Text" xml:space="preserve">
<value>Install helper devices</value>
<value>Install record devices</value>
</data>
<data name="&gt;&gt;btnInstallHelperDevices.Name" xml:space="preserve">
<value>btnInstallHelperDevices</value>
@ -1732,35 +1768,11 @@ Default is sierra2_4a.</value>
<data name="&gt;&gt;btnRefreshSources.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="gbSource.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 68</value>
</data>
<data name="gbSource.Size" type="System.Drawing.Size, System.Drawing">
<value>648, 92</value>
</data>
<data name="gbSource.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="gbSource.Text" xml:space="preserve">
<value>Sources</value>
</data>
<data name="&gt;&gt;gbSource.Name" xml:space="preserve">
<value>gbSource</value>
</data>
<data name="&gt;&gt;gbSource.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbSource.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;gbSource.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="gbCodecs.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 168</value>
</data>
<data name="gbCodecs.Size" type="System.Drawing.Size, System.Drawing">
<value>648, 56</value>
<value>648, 160</value>
</data>
<data name="gbCodecs.TabIndex" type="System.Int32, mscorlib">
<value>2</value>