Imports StaxRip.UI Public Class CommandLineDemuxForm Inherits DialogBase #Region " Designer " Protected Overloads Overrides Sub Dispose(disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents CommandLink1 As StaxRip.UI.CommandLink Friend WithEvents tbName As System.Windows.Forms.TextBox Friend WithEvents tbInput As System.Windows.Forms.TextBox Friend WithEvents tbInputFormats As System.Windows.Forms.TextBox Friend WithEvents tbVideoOut As System.Windows.Forms.TextBox Friend WithEvents tbCommand As System.Windows.Forms.TextBox Friend WithEvents tbArguments As System.Windows.Forms.TextBox Friend WithEvents tbSourceFilters As System.Windows.Forms.TextBox Friend WithEvents bnCancel As StaxRip.UI.ButtonEx Friend WithEvents bnOK As StaxRip.UI.ButtonEx Friend WithEvents tlpMain As System.Windows.Forms.TableLayoutPanel Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents Label3 As System.Windows.Forms.Label Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Label6 As System.Windows.Forms.Label Friend WithEvents Label7 As System.Windows.Forms.Label Friend WithEvents Label8 As System.Windows.Forms.Label Friend WithEvents Label9 As System.Windows.Forms.Label Friend WithEvents bnBrowse As ButtonEx Friend WithEvents bnArguments As ButtonEx Friend WithEvents cmsArguments As ContextMenuStripEx Friend WithEvents MacrosToolStripMenuItem As ToolStripMenuItem Friend WithEvents HelpToolStripMenuItem As ToolStripMenuItem Friend WithEvents TipProvider As TipProvider Private components As System.ComponentModel.IContainer Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.tbName = New System.Windows.Forms.TextBox() Me.tbInput = New System.Windows.Forms.TextBox() Me.tbInputFormats = New System.Windows.Forms.TextBox() Me.tbVideoOut = New System.Windows.Forms.TextBox() Me.tbCommand = New System.Windows.Forms.TextBox() Me.tbArguments = New System.Windows.Forms.TextBox() Me.tbSourceFilters = New System.Windows.Forms.TextBox() Me.bnCancel = New StaxRip.UI.ButtonEx() Me.bnOK = New StaxRip.UI.ButtonEx() Me.tlpMain = New System.Windows.Forms.TableLayoutPanel() Me.bnArguments = New StaxRip.UI.ButtonEx() Me.cmsArguments = New StaxRip.UI.ContextMenuStripEx(Me.components) Me.MacrosToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.HelpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.bnBrowse = New StaxRip.UI.ButtonEx() Me.Label6 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() Me.Label3 = New System.Windows.Forms.Label() Me.Label8 = New System.Windows.Forms.Label() Me.Label9 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label() Me.Label7 = New System.Windows.Forms.Label() Me.TipProvider = New StaxRip.UI.TipProvider(Me.components) Me.tlpMain.SuspendLayout() Me.cmsArguments.SuspendLayout() Me.SuspendLayout() ' 'tbName ' Me.tbName.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbName, 3) Me.tbName.Location = New System.Drawing.Point(295, 14) Me.tbName.Margin = New System.Windows.Forms.Padding(0) Me.tbName.Name = "tbName" Me.tbName.Size = New System.Drawing.Size(1339, 55) Me.tbName.TabIndex = 1 ' 'tbInput ' Me.tbInput.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbInput, 3) Me.tbInput.Location = New System.Drawing.Point(295, 97) Me.tbInput.Margin = New System.Windows.Forms.Padding(0) Me.tbInput.Name = "tbInput" Me.tbInput.Size = New System.Drawing.Size(1339, 55) Me.tbInput.TabIndex = 13 ' 'tbInputFormats ' Me.tbInputFormats.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbInputFormats, 3) Me.tbInputFormats.Location = New System.Drawing.Point(295, 263) Me.tbInputFormats.Margin = New System.Windows.Forms.Padding(0) Me.tbInputFormats.Name = "tbInputFormats" Me.tbInputFormats.Size = New System.Drawing.Size(1339, 55) Me.tbInputFormats.TabIndex = 15 ' 'tbVideoOut ' Me.tbVideoOut.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbVideoOut, 3) Me.tbVideoOut.Location = New System.Drawing.Point(295, 180) Me.tbVideoOut.Margin = New System.Windows.Forms.Padding(0) Me.tbVideoOut.Name = "tbVideoOut" Me.tbVideoOut.Size = New System.Drawing.Size(1339, 55) Me.tbVideoOut.TabIndex = 3 ' 'tbCommand ' Me.tbCommand.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbCommand, 2) Me.tbCommand.Location = New System.Drawing.Point(295, 429) Me.tbCommand.Margin = New System.Windows.Forms.Padding(0) Me.tbCommand.Name = "tbCommand" Me.tbCommand.Size = New System.Drawing.Size(1074, 55) Me.tbCommand.TabIndex = 7 ' 'tbArguments ' Me.tbArguments.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbArguments, 2) Me.tbArguments.Location = New System.Drawing.Point(295, 512) Me.tbArguments.Margin = New System.Windows.Forms.Padding(0) Me.tbArguments.Name = "tbArguments" Me.tbArguments.Size = New System.Drawing.Size(1074, 55) Me.tbArguments.TabIndex = 9 ' 'tbSourceFilters ' Me.tbSourceFilters.Anchor = CType((System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.tlpMain.SetColumnSpan(Me.tbSourceFilters, 3) Me.tbSourceFilters.Location = New System.Drawing.Point(295, 346) Me.tbSourceFilters.Margin = New System.Windows.Forms.Padding(0) Me.tbSourceFilters.Name = "tbSourceFilters" Me.tbSourceFilters.Size = New System.Drawing.Size(1339, 55) Me.tbSourceFilters.TabIndex = 19 ' 'bnCancel ' Me.bnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.bnCancel.Location = New System.Drawing.Point(1384, 596) Me.bnCancel.Margin = New System.Windows.Forms.Padding(15, 15, 0, 0) Me.bnCancel.Size = New System.Drawing.Size(250, 70) Me.bnCancel.Text = "Cancel" ' 'bnOK ' Me.bnOK.DialogResult = System.Windows.Forms.DialogResult.OK Me.bnOK.Location = New System.Drawing.Point(1119, 596) Me.bnOK.Margin = New System.Windows.Forms.Padding(0, 15, 0, 0) Me.bnOK.Size = New System.Drawing.Size(250, 70) Me.bnOK.Text = "OK" ' 'tlpMain ' Me.tlpMain.ColumnCount = 4 Me.tlpMain.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle()) Me.tlpMain.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) Me.tlpMain.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle()) Me.tlpMain.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle()) Me.tlpMain.Controls.Add(Me.bnArguments, 3, 6) Me.tlpMain.Controls.Add(Me.bnBrowse, 3, 5) Me.tlpMain.Controls.Add(Me.tbArguments, 1, 6) Me.tlpMain.Controls.Add(Me.tbCommand, 1, 5) Me.tlpMain.Controls.Add(Me.Label6, 0, 5) Me.tlpMain.Controls.Add(Me.tbInput, 1, 1) Me.tlpMain.Controls.Add(Me.bnOK, 2, 7) Me.tlpMain.Controls.Add(Me.bnCancel, 3, 7) Me.tlpMain.Controls.Add(Me.Label2, 0, 0) Me.tlpMain.Controls.Add(Me.tbName, 1, 0) Me.tlpMain.Controls.Add(Me.Label3, 0, 1) Me.tlpMain.Controls.Add(Me.Label8, 0, 2) Me.tlpMain.Controls.Add(Me.tbVideoOut, 1, 2) Me.tlpMain.Controls.Add(Me.tbSourceFilters, 1, 4) Me.tlpMain.Controls.Add(Me.Label9, 0, 4) Me.tlpMain.Controls.Add(Me.tbInputFormats, 1, 3) Me.tlpMain.Controls.Add(Me.Label1, 0, 3) Me.tlpMain.Controls.Add(Me.Label7, 0, 6) Me.tlpMain.Dock = System.Windows.Forms.DockStyle.Fill Me.tlpMain.Location = New System.Drawing.Point(15, 15) Me.tlpMain.Margin = New System.Windows.Forms.Padding(0) Me.tlpMain.Name = "tlpMain" Me.tlpMain.RowCount = 8 Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571!)) Me.tlpMain.RowStyles.Add(New System.Windows.Forms.RowStyle()) Me.tlpMain.Size = New System.Drawing.Size(1634, 667) Me.tlpMain.TabIndex = 21 ' 'bnArguments ' Me.bnArguments.Anchor = System.Windows.Forms.AnchorStyles.None Me.bnArguments.ContextMenuStrip = Me.cmsArguments Me.bnArguments.Location = New System.Drawing.Point(1384, 504) Me.bnArguments.Margin = New System.Windows.Forms.Padding(15, 0, 0, 0) Me.bnArguments.ShowMenuSymbol = True Me.bnArguments.Size = New System.Drawing.Size(250, 70) Me.bnArguments.Text = "Menu" ' 'cmsArguments ' Me.cmsArguments.ImageScalingSize = New System.Drawing.Size(24, 24) Me.cmsArguments.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MacrosToolStripMenuItem, Me.HelpToolStripMenuItem}) Me.cmsArguments.Name = "cmsArguments" Me.cmsArguments.Size = New System.Drawing.Size(217, 108) ' 'MacrosToolStripMenuItem ' Me.MacrosToolStripMenuItem.Name = "MacrosToolStripMenuItem" Me.MacrosToolStripMenuItem.Size = New System.Drawing.Size(216, 52) Me.MacrosToolStripMenuItem.Text = "Macros" ' 'HelpToolStripMenuItem ' Me.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem" Me.HelpToolStripMenuItem.Size = New System.Drawing.Size(216, 52) Me.HelpToolStripMenuItem.Text = "Help" ' 'bnBrowse ' Me.bnBrowse.Anchor = System.Windows.Forms.AnchorStyles.None Me.bnBrowse.Location = New System.Drawing.Point(1384, 421) Me.bnBrowse.Margin = New System.Windows.Forms.Padding(15, 0, 0, 0) Me.bnBrowse.Size = New System.Drawing.Size(250, 70) Me.bnBrowse.Text = "Browse..." ' 'Label6 ' Me.Label6.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label6.AutoSize = True Me.Label6.Location = New System.Drawing.Point(3, 432) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(192, 48) Me.Label6.TabIndex = 12 Me.Label6.Text = "Command:" ' 'Label2 ' Me.Label2.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label2.AutoSize = True Me.Label2.Location = New System.Drawing.Point(3, 17) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(277, 48) Me.Label2.TabIndex = 24 Me.Label2.Text = "Demuxer Name:" Me.TipProvider.SetTipText(Me.Label2, "If the demuxer name matches the name of a bundled app then help and description i" & "s provided.") ' 'Label3 ' Me.Label3.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label3.AutoSize = True Me.Label3.Location = New System.Drawing.Point(3, 100) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(275, 48) Me.Label3.TabIndex = 25 Me.Label3.Text = "Input File Types:" Me.TipProvider.SetTipText(Me.Label3, "Input file types to be handled by the demuxer.") ' 'Label8 ' Me.Label8.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label8.AutoSize = True Me.Label8.Location = New System.Drawing.Point(3, 183) Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(289, 48) Me.Label8.TabIndex = 30 Me.Label8.Text = "Output File Type:" Me.TipProvider.SetTipText(Me.Label8, "Single video file type the demuxer outputs.") ' 'Label9 ' Me.Label9.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label9.AutoSize = True Me.Label9.Location = New System.Drawing.Point(3, 349) Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(242, 48) Me.Label9.TabIndex = 31 Me.Label9.Text = "Source Filters:" ' 'Label1 ' Me.Label1.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(3, 266) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(249, 48) Me.Label1.TabIndex = 26 Me.Label1.Text = "Input Formats:" Me.TipProvider.SetTipText(Me.Label1, "Formats the demuxer handles (vc1 mpeg2 avc hevc)") ' 'Label7 ' Me.Label7.Anchor = System.Windows.Forms.AnchorStyles.Left Me.Label7.AutoSize = True Me.Label7.Location = New System.Drawing.Point(3, 515) Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(202, 48) Me.Label7.TabIndex = 29 Me.Label7.Text = "Arguments:" ' 'CommandLineDemuxForm ' Me.AcceptButton = Me.bnOK Me.AutoScaleDimensions = New System.Drawing.SizeF(288.0!, 288.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.CancelButton = Me.bnCancel Me.ClientSize = New System.Drawing.Size(1664, 697) Me.Controls.Add(Me.tlpMain) Me.KeyPreview = True Me.Margin = New System.Windows.Forms.Padding(11, 10, 11, 10) Me.Name = "CommandLineDemuxForm" Me.Padding = New System.Windows.Forms.Padding(15) Me.Text = "Demux Configuration" Me.tlpMain.ResumeLayout(False) Me.tlpMain.PerformLayout() Me.cmsArguments.ResumeLayout(False) Me.ResumeLayout(False) End Sub #End Region Private Target As CommandLineDemuxer Private Temp As CommandLineDemuxer Sub New(demuxer As CommandLineDemuxer) MyBase.New() InitializeComponent() Target = demuxer Temp = ObjectHelp.GetCopy(Of CommandLineDemuxer)(demuxer) tbName.Text = Temp.Name tbInput.Text = Temp.InputExtensions.ToArray.Join(" ") tbInputFormats.Text = Temp.InputFormats.ToArray.Join(" ") tbSourceFilters.Text = Temp.SourceFilters.ToArray.Join(" ") tbVideoOut.Text = Temp.OutputExtensions.ToArray.Join(" ") tbArguments.Text = Temp.Arguments tbCommand.Text = Temp.Command ActiveControl = bnOK End Sub Function ConvertFormat(input As String) As String If input.Contains("MPEG Video") Then input = input.Replace("MPEG Video", "mpeg2") If input.Contains("VC-1") Then input = input.Replace("VC-1", "vc1") Return input.ToLower End Function Protected Overrides Sub OnFormClosed(e As FormClosedEventArgs) If DialogResult = DialogResult.OK Then Target.Name = tbName.Text Target.InputExtensions = tbInput.Text.ToLower.SplitNoEmptyAndWhiteSpace(",", ";", " ") Target.InputFormats = ConvertFormat(tbInputFormats.Text).SplitNoEmptyAndWhiteSpace(",", ";", " ") Target.OutputExtensions = tbVideoOut.Text.ToLower.SplitNoEmptyAndWhiteSpace(",", ";", " ") Target.SourceFilters = tbSourceFilters.Text.SplitNoEmptyAndWhiteSpace(",", ";", " ") Target.Command = tbCommand.Text Target.Arguments = tbArguments.Text End If MyBase.OnFormClosed(e) End Sub Private Sub tbCommand_DoubleClick(sender As Object, e As EventArgs) Handles tbCommand.DoubleClick Using d As New OpenFileDialog If d.ShowDialog() = DialogResult.OK Then tbCommand.Text = d.FileName End Using End Sub Private Sub tbArguments_DoubleClick(sender As Object, e As EventArgs) Handles tbArguments.DoubleClick MacrosForm.ShowDialogForm() End Sub Private Sub bnBrowse_Click(sender As Object, e As EventArgs) Handles bnBrowse.Click tbCommand_DoubleClick(Nothing, Nothing) End Sub Private Sub MacrosToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MacrosToolStripMenuItem.Click MacrosForm.ShowDialogForm() End Sub Private Sub HelpToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HelpToolStripMenuItem.Click For Each i In Package.Items.Values If tbName.Text = i.Name Then If i.GetHelpPath <> "" Then g.StartProcess(i.GetHelpPath) Else MsgWarn("There is no help available for this app.") End If Exit Sub End If Next MsgWarn("The demuxer name '" + tbName.Text + "' does not match with the name of one of StaxRip's apps. StaxRip includes the following apps:" + BR2 + Package.Items.Values.Where(Function(package) Not TypeOf package Is PluginPackage).Select(Function(package) package.Name).ToArray.Sort.Join(", ")) End Sub Private Sub DemuxForm_HelpRequested(sender As Object, hlpevent As HelpEventArgs) Handles Me.HelpRequested Dim f As New HelpForm() f.Doc.WriteStart(Text) f.Doc.WriteTips(TipProvider.GetTips) f.Show() End Sub End Class