From 54c595809eaa4fd709a0bd1ab3e254e52a1d78a8 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 16 Mar 2016 21:42:13 -0500 Subject: [PATCH] Signed-off-by: Matt Bruce --- CdgPlayer/KaraokeVideoPlayer.Designer.cs | 13 ++--- CdgPlayer/KaraokeVideoPlayer.cs | 12 +++-- KaraokePlayer/MainForm.Designer.cs | 65 +++++++++++++----------- KaraokePlayer/MainForm.cs | 38 ++++++++++++-- 4 files changed, 85 insertions(+), 43 deletions(-) diff --git a/CdgPlayer/KaraokeVideoPlayer.Designer.cs b/CdgPlayer/KaraokeVideoPlayer.Designer.cs index 9615fb2..8da7dca 100644 --- a/CdgPlayer/KaraokeVideoPlayer.Designer.cs +++ b/CdgPlayer/KaraokeVideoPlayer.Designer.cs @@ -2,6 +2,7 @@ { partial class KaraokeVideoPlayer { + public bool isCDG { get; set; } /// /// Required designer variable. /// @@ -43,12 +44,12 @@ this.vlcPlayer.TabIndex = 0; this.vlcPlayer.Text = "vlcControl1"; this.vlcPlayer.VlcLibDirectory = null; - this.vlcPlayer.VlcMediaplayerOptions = new string[] { - "--projectm-preset-path=lib\\presets", - "--audio-visual=projectm", - "--effect-list=scope", - "--no-video", - "--verbose=2"}; + if (isCDG) { + this.vlcPlayer.VlcMediaplayerOptions = new string[] { "--projectm-preset-path=lib\\presets", "--audio-visual=projectm", "--effect-list=scope", "--no-video", "--verbose=2" }; + } + else { + this.vlcPlayer.VlcMediaplayerOptions = new string[] { "--projectm-preset-path=lib\\presets", "--effect-list=scope", "--verbose=2" }; + } this.vlcPlayer.VlcLibDirectoryNeeded += new System.EventHandler(this.vlcPlayer_VlcLibDirectoryNeeded); this.vlcPlayer.Playing += new System.EventHandler(this.vlcPlayer_Playing); this.vlcPlayer.TimeChanged += new System.EventHandler(this.vlcPlayer_TimeChanged); diff --git a/CdgPlayer/KaraokeVideoPlayer.cs b/CdgPlayer/KaraokeVideoPlayer.cs index 00de72a..0ded4a0 100644 --- a/CdgPlayer/KaraokeVideoPlayer.cs +++ b/CdgPlayer/KaraokeVideoPlayer.cs @@ -29,14 +29,20 @@ namespace KaraokePlayer private void LyricTimerOnElapsed(object sender, ElapsedEventArgs elapsedEventArgs) { - var picture = _cdgFile.RenderAtTime((long)(DateTime.Now - _startTime).TotalMilliseconds); - BeginInvoke(new MethodInvoker(() => { _overlayForm.Graphic.Image = picture; })); + if (isCDG) + { + var picture = _cdgFile.RenderAtTime((long)(DateTime.Now - _startTime).TotalMilliseconds); + BeginInvoke(new MethodInvoker(() => { _overlayForm.Graphic.Image = picture; })); + } } public async void Play(Uri file) { vlcPlayer.SetMedia(file); - _cdgFile = await GraphicsFile.LoadAsync(Path.ChangeExtension(file.LocalPath, "cdg")); + if (isCDG) + { + _cdgFile = await GraphicsFile.LoadAsync(Path.ChangeExtension(file.LocalPath, "cdg")); + } vlcPlayer.Play(); } diff --git a/KaraokePlayer/MainForm.Designer.cs b/KaraokePlayer/MainForm.Designer.cs index 4e878e7..645e100 100644 --- a/KaraokePlayer/MainForm.Designer.cs +++ b/KaraokePlayer/MainForm.Designer.cs @@ -33,11 +33,12 @@ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.browseDialog = new System.Windows.Forms.FolderBrowserDialog(); - this.karaokeVideoPlayer1 = new KaraokePlayer.KaraokeVideoPlayer(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.materialListBox1 = new MaterialSkin.Controls.MaterialListBox(); this.materialSingleLineTextField1 = new MaterialSkin.Controls.MaterialSingleLineTextField(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.karaokeCDGPlayer = new KaraokePlayer.KaraokeVideoPlayer(); + this.karaokeMP4Player = new KaraokePlayer.KaraokeVideoPlayer(); + this.browseDialog = new System.Windows.Forms.FolderBrowserDialog(); this.tableLayoutPanel1.SuspendLayout(); this.flowLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); @@ -117,22 +118,27 @@ // // splitContainer1.Panel2 // - this.splitContainer1.Panel2.Controls.Add(this.karaokeVideoPlayer1); + this.splitContainer1.Panel2.Controls.Add(this.karaokeCDGPlayer); + this.splitContainer1.Panel2.Controls.Add(this.karaokeMP4Player); this.splitContainer1.Size = new System.Drawing.Size(713, 458); this.splitContainer1.SplitterDistance = 237; this.splitContainer1.TabIndex = 6; // - // browseDialog + // tableLayoutPanel2 // - this.browseDialog.SelectedPath = "D:\\Karaoke\\SF360 February 2016\\SF360-01 - Charlie Puth - One Call Away\\"; - // - // karaokeVideoPlayer1 - // - this.karaokeVideoPlayer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.karaokeVideoPlayer1.Location = new System.Drawing.Point(0, 0); - this.karaokeVideoPlayer1.Name = "karaokeVideoPlayer1"; - this.karaokeVideoPlayer1.Size = new System.Drawing.Size(472, 458); - this.karaokeVideoPlayer1.TabIndex = 0; + this.tableLayoutPanel2.BackColor = System.Drawing.SystemColors.Control; + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.materialListBox1, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.materialSingleLineTextField1, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 2; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.Size = new System.Drawing.Size(237, 458); + this.tableLayoutPanel2.TabIndex = 7; // // materialListBox1 // @@ -175,21 +181,21 @@ this.materialSingleLineTextField1.UseSystemPasswordChar = false; this.materialSingleLineTextField1.TextChanged += new System.EventHandler(this.materialSingleLineTextField1_TextChanged); // - // tableLayoutPanel2 + // karaokeCDGPlayer // - this.tableLayoutPanel2.BackColor = System.Drawing.SystemColors.Control; - this.tableLayoutPanel2.ColumnCount = 1; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.Controls.Add(this.materialListBox1, 0, 1); - this.tableLayoutPanel2.Controls.Add(this.materialSingleLineTextField1, 0, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel2.Size = new System.Drawing.Size(237, 458); - this.tableLayoutPanel2.TabIndex = 7; + this.karaokeCDGPlayer.Dock = System.Windows.Forms.DockStyle.Fill; + this.karaokeCDGPlayer.Location = new System.Drawing.Point(0, 0); + this.karaokeCDGPlayer.Name = "karaokeCDGPlayer"; + this.karaokeCDGPlayer.Size = new System.Drawing.Size(472, 458); + this.karaokeCDGPlayer.TabIndex = 0; + this.karaokeCDGPlayer.isCDG = true; + + this.karaokeMP4Player.Dock = System.Windows.Forms.DockStyle.Fill; + this.karaokeMP4Player.Location = new System.Drawing.Point(0, 0); + this.karaokeMP4Player.Name = "karaokeMP4Player"; + this.karaokeMP4Player.Size = new System.Drawing.Size(472, 458); + this.karaokeMP4Player.TabIndex = 0; + this.karaokeMP4Player.isCDG = false; // // MainForm // @@ -218,7 +224,8 @@ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; private System.Windows.Forms.FolderBrowserDialog browseDialog; private System.Windows.Forms.SplitContainer splitContainer1; - private KaraokeVideoPlayer karaokeVideoPlayer1; + private KaraokeVideoPlayer karaokeCDGPlayer; + private KaraokeVideoPlayer karaokeMP4Player; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private MaterialSkin.Controls.MaterialListBox materialListBox1; private MaterialSkin.Controls.MaterialSingleLineTextField materialSingleLineTextField1; diff --git a/KaraokePlayer/MainForm.cs b/KaraokePlayer/MainForm.cs index 0ded29f..8b05459 100644 --- a/KaraokePlayer/MainForm.cs +++ b/KaraokePlayer/MainForm.cs @@ -25,16 +25,16 @@ namespace KaraokePlayer private void materialRaisedButton1_Click(object sender, System.EventArgs e) { - karaokeVideoPlayer1.Play(new Uri(@"D:\Karaoke\SF360 February 2016\SF360-01 - Charlie Puth - One Call Away\SF360-01 - Charlie Puth - One Call Away.mp3")); + playSelectedFile(); } private void btnBrowse_Click(object sender, EventArgs e) { if (browseDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { - - var files = System.IO.Directory.GetFiles(browseDialog.SelectedPath, "*.cdg", searchOption: System.IO.SearchOption.AllDirectories); - _fileList = files.Select(file => new FileInfo(file)).ToList(); + var files = GetFiles(browseDialog.SelectedPath, "*.cdg|*.mp4", searchOption: System.IO.SearchOption.AllDirectories); + var filtered = files.Where(f => f.Length < 248).ToList(); + _fileList = filtered.Select(file => new FileInfo(file)).ToList(); materialListBox1.DataSource = _fileList; materialListBox1.DisplayMember = "Name"; @@ -46,7 +46,7 @@ namespace KaraokePlayer int index = this.materialListBox1.IndexFromPoint(e.Location); if (index != System.Windows.Forms.ListBox.NoMatches) { - karaokeVideoPlayer1.Play(new Uri(Path.ChangeExtension(((FileInfo)materialListBox1.Items[index]).FullName,".mp3"))); + playSelectedFile(); } } @@ -55,5 +55,33 @@ namespace KaraokePlayer materialListBox1.DataSource = _fileList.Where( file => Regex.IsMatch(file.Name, materialSingleLineTextField1.Text, RegexOptions.IgnoreCase)).ToList(); } + + public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption) + { + string[] searchPatterns = searchPattern.Split('|'); + List files = new List(); + foreach (string sp in searchPatterns) + files.AddRange(System.IO.Directory.GetFiles(path, sp, searchOption)); + files.Sort(); + return files.ToArray(); + } + + public void playSelectedFile() + { + FileInfo file = (FileInfo)materialListBox1.SelectedItem; + if (file.Extension.ToLower() == ".cdg") + { + karaokeCDGPlayer.Play(new Uri(Path.ChangeExtension(file.FullName, ".mp3"))); + karaokeCDGPlayer.Visible = true; + karaokeMP4Player.Visible = false; + } + else { + karaokeMP4Player.Play(new Uri(file.FullName)); + karaokeMP4Player.Visible = true; + karaokeCDGPlayer.Visible = false; + + } + } + } }