private void buttonExtract_Click(object sender, RoutedEventArgs e) { if (cmbTitleSet.SelectedItem == null) { return; } pid = ((CUETools.Codecs.MPEG.MPLS.MPLSStream)cmbAudioTrack.SelectedItem).pid; chosenReader = cmbTitleSet.SelectedItem as CUETools.Codecs.MPEG.MPLS.AudioDecoder; metaresult = cmbMetadata.SelectedItem as CUEMetadataEntry; outputFolderPath = Path.Combine(textBoxDestination.Text, metaresult != null ? metaresult.metadata.Artist + " - " + metaresult.metadata.Year + " - " + metaresult.metadata.Title : Path.GetFileName(textBoxSource.Text) + "." + chosenReader.FileName + "." + pid.ToString()); outputAudioPath = Path.Combine(outputFolderPath, metaresult != null ? metaresult.metadata.Artist + " - " + metaresult.metadata.Year + " - " + metaresult.metadata.Title + ".flac" : "image.flac"); outputCuePath = Path.ChangeExtension(outputAudioPath, "cue"); pbStatus.Visibility = Visibility.Visible; pbStatus.Value = 0.0; //pbStatus.IsIndeterminate = true; stackParams.IsEnabled = false; buttonExtract.IsEnabled = false; buttonExtract.Visibility = Visibility.Hidden; buttonStop.Visibility = Visibility.Visible; buttonStop.IsEnabled = true; workerExtract = new BackgroundWorker(); workerExtract.WorkerSupportsCancellation = true; workerExtract.DoWork += workerExtract_DoWork; workerExtract.RunWorkerAsync(); }
private void dataGridViewMetadata_KeyDown(object sender, KeyEventArgs e) { CUEMetadataEntry r = ChosenRelease; if (r != null) { if (e.KeyCode == Keys.Delete && e.Modifiers.HasFlag(Keys.Shift)) { var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y); Clipboard.SetText(dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value as string); dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = null; dataGridViewMetadata_CellEndEdit(sender, ee); } else if (e.KeyCode == Keys.Delete) { var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y); dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = null; dataGridViewMetadata_CellEndEdit(sender, ee); } else if (e.KeyCode == Keys.Insert && e.Modifiers.HasFlag(Keys.Shift)) { var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y); dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = Clipboard.GetText(); dataGridViewMetadata_CellEndEdit(sender, ee); } } }
void workerCtdb_DoWork(object sender, DoWorkEventArgs e) { //Console.Error.WriteLine("Contacting CTDB..."); this.Dispatcher.Invoke((Action)(() => { pbStatus.Visibility = Visibility.Visible; pbStatus.IsIndeterminate = true; })); //ctdb.UploadHelper.onProgress += worker_ctdbProgress; ctdb.ContactDB(null, "CUETools.eac3to 2.2.1", "", false, true, CTDBMetadataSearch.Extensive); this.Dispatcher.Invoke((Action)(() => { //metaresults.RaiseListChangedEvents = false; cmbMetadata.ItemsSource = null; metaresults.Clear(); foreach (var m in ctdb.Metadata) { var entry = new CUEMetadataEntry(ctdb.TOC, m.source); entry.metadata.FillFromCtdb(m, entry.TOC.FirstAudio - 1); metaresults.Add(entry); } //metaresults.RaiseListChangedEvents = true; cmbMetadata.ItemsSource = metaresults; pbStatus.Visibility = Visibility.Collapsed; pbStatus.IsIndeterminate = false; cmbMetadata.SelectedIndex = 0; })); }
private void Window_Loaded(object sender, RoutedEventArgs e) { Drives.Add(new DriveInfo { Name = "aa", Icon = "/CUERipper.WPF;component/musicbrainz.ico" }); Drives.Add(new DriveInfo { Name = "cc", Icon = "/CUERipper.WPF;component/freedb16.png" }); Drives.Add(new DriveInfo { Name = "ee", Icon = "ff" }); SelectedDrive = Drives[0]; CDImageLayout toc = new CDImageLayout(2, 2, 1, "0 10000 20000"); Releases.Add(new CUEMetadataEntry(toc, "/CUERipper.WPF;component/musicbrainz.ico")); Releases[0].metadata.Artist = "Mike Oldfield"; Releases[0].metadata.Title = "Amarok"; Releases[0].metadata.Tracks[0].Artist = "Mike Oldfield"; Releases[0].metadata.Tracks[0].Title = "Amarok 01"; Releases[0].metadata.Tracks[1].Artist = "Mike Oldfield"; Releases[0].metadata.Tracks[1].Title = "Amarok 02"; Releases.Add(new CUEMetadataEntry(toc, "/CUERipper.WPF;component/freedb16.png")); SelectedRelease = Releases[0]; }
private void listChoices_SelectedIndexChanged(object sender, EventArgs e) { object item = ChosenObject; if (item != null && item is TagLib.IPicture) { TagLib.IPicture picture = item as TagLib.IPicture; using (MemoryStream imageStream = new MemoryStream(picture.Data.Data, 0, picture.Data.Count)) try { pictureBox1.Image = Image.FromStream(imageStream); } catch { } textBox1.Hide(); pictureBox1.Show(); tableLayoutPanelMeta.Hide(); tableLayoutPanel1.SetRowSpan(pictureBox1, 2); } else if (item != null && item is CUEToolsSourceFile) { textBox1.Text = (item as CUEToolsSourceFile).contents.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n"); } else if (item != null && item is CUEMetadataEntry) { CUEMetadataEntry r = (item as CUEMetadataEntry); dataGridViewTracks.SuspendLayout(); dataGridViewTracks.Rows.Clear(); foreach (CUETrackMetadata track in r.metadata.Tracks) { int no = dataGridViewTracks.Rows.Count; dataGridViewTracks.Rows.Add( (no + 1).ToString(), track.Title, r.TOC[no + r.TOC.FirstAudio].StartMSF, r.TOC[no + r.TOC.FirstAudio].LengthMSF ); } dataGridViewTracks.ResumeLayout(); dataGridViewMetadata.Rows.Clear(); dataGridViewMetadata.Rows.Add("Artist", r.metadata.Artist); dataGridViewMetadata.Rows.Add("Album", r.metadata.Title); dataGridViewMetadata.Rows.Add("Date", r.metadata.Year); dataGridViewMetadata.Rows.Add("Genre", r.metadata.Genre); dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber); dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs); dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName); dataGridViewMetadata.Rows.Add("Label", r.metadata.Label); dataGridViewMetadata.Rows.Add("Label#", r.metadata.LabelNo); dataGridViewMetadata.Rows.Add("Country", r.metadata.Country); dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate); dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode); dataGridViewMetadata.Rows.Add("Comment", r.metadata.Comment); } else { dataGridViewMetadata.Rows.Clear(); dataGridViewTracks.Rows.Clear(); textBox1.Text = ""; } }
private void dataGridViewTracks_CellEndEdit(object sender, DataGridViewCellEventArgs e) { CUEMetadataEntry ri = ChosenRelease; var label = dataGridViewTracks.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string; if (ri != null && label != null) { ri.metadata.Tracks[e.RowIndex].Title = label; } }
private void dataGridViewMetadata_KeyDown(object sender, KeyEventArgs e) { CUEMetadataEntry r = ChosenRelease; if (e.KeyCode == Keys.Delete && r != null) { var ee = new DataGridViewCellEventArgs(1, dataGridViewMetadata.CurrentCellAddress.Y); dataGridViewMetadata.Rows[ee.RowIndex].Cells[1].Value = ""; dataGridViewMetadata_CellEndEdit(sender, ee); } }
private void frmChoice_FormClosing(object sender, FormClosingEventArgs e) { if (backgroundWorker1.IsBusy) { e.Cancel = true; return; } CUEMetadataEntry ri = ChosenRelease; if (e.CloseReason != CloseReason.None || DialogResult != DialogResult.OK || ri == null || CUE == null) { return; } CUE.CopyMetadata(ri.metadata); }
private void dataGridViewMetadata_CellEndEdit(object sender, DataGridViewCellEventArgs e) { ListViewItem item = ChosenItem; CUEMetadataEntry r = ChosenRelease; var label = dataGridViewMetadata.Rows[e.RowIndex].Cells[1].Value as string ?? ""; if (item != null && r != null) { switch (e.RowIndex) { case 0: foreach (CUETrackMetadata track in r.metadata.Tracks) { if (track.Artist == r.metadata.Artist) { track.Artist = label; } } r.metadata.Artist = label; break; case 1: r.metadata.Title = label; break; case 2: r.metadata.Year = label; break; case 3: r.metadata.Genre = label; break; case 4: r.metadata.DiscNumber = label; break; case 5: r.metadata.TotalDiscs = label; break; case 6: r.metadata.DiscName = label; break; case 7: r.metadata.Label = label; break; case 8: r.metadata.LabelNo = label; break; case 9: r.metadata.Country = label; break; case 10: r.metadata.ReleaseDate = label; break; case 11: r.metadata.Barcode = label; break; case 12: r.metadata.Comment = label; break; } item.Text = r.ToString(); } }
private void AddItem(object i) { if (i is CUEToolsSourceFile) { CUEToolsSourceFile sf = i as CUEToolsSourceFile; ListViewItem item = new ListViewItem(sf.path, 0); item.Tag = sf; listChoices.Items.Add(item); } else if (i is TagLib.IPicture) { TagLib.IPicture pic = i as TagLib.IPicture; ListViewItem item = new ListViewItem(pic.Description, -1); item.Tag = pic; listChoices.Items.Add(item); } else if (i is CUEMetadataEntry) { CUEMetadataEntry entry = i as CUEMetadataEntry; ListViewItem item = new ListViewItem(entry.ToString(), entry.ImageKey); item.Tag = entry; listChoices.Items.Add(item); if (entry.ImageKey == "freedb") { // check if the entry contains non-iso characters, // and add a second one if it does CUEMetadata copy = new CUEMetadata(entry.metadata); if (copy.FreedbToEncoding()) { entry = new CUEMetadataEntry(copy, entry.TOC, entry.ImageKey); item = new ListViewItem(entry.ToString(), entry.ImageKey); item.Tag = entry; listChoices.Items.Add(item); } } } else { ListViewItem item = new ListViewItem(i.ToString(), -1); item.Tag = i; listChoices.Items.Add(item); } }
private void frmChoice_FormClosing(object sender, FormClosingEventArgs e) { if (backgroundWorker1.IsBusy) { e.Cancel = true; return; } TagLib.IPicture picture = ChosenObject as TagLib.IPicture; if (e.CloseReason == CloseReason.None && DialogResult == DialogResult.OK && pictureBox1.Image != null && picture != null && (cropAlign != CropAlign.None || imageRotation != RotateFlipType.RotateNoneFlipNone || trimEdge != 0)) { using (MemoryStream encoded = new MemoryStream()) { pictureBox1.Image.Save(encoded, System.Drawing.Imaging.ImageFormat.Jpeg); picture.Data = new TagLib.ByteVector(encoded.ToArray()); picture.MimeType = "image/jpeg"; } } CUEMetadataEntry ri = ChosenRelease; if (e.CloseReason != CloseReason.None || DialogResult != DialogResult.OK || ri == null || CUE == null) { return; } for (int i = 0; i < ri.metadata.Tracks.Count; i++) { if (ri.metadata.Tracks[i].ISRC == "") { ri.metadata.Tracks[i].ISRC = CUE.Metadata.Tracks[i].ISRC; } } CUE.CopyMetadata(ri.metadata); }
private void listChoices_SelectedIndexChanged(object sender, EventArgs e) { object item = ChosenObject; if (item != null && item is TagLib.IPicture) { imageRotation = RotateFlipType.RotateNoneFlipNone; cropAlign = CropAlign.None; trimEdge = 0; ResetPictureBox(); textBox1.Hide(); pictureBox1.Show(); tableLayoutPanelMeta.Hide(); tableLayoutPanel1.SetRowSpan(pictureBox1, 2); } else if (item != null && item is CUEToolsSourceFile) { textBox1.Text = (item as CUEToolsSourceFile).contents.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n"); } else if (item != null && item is CUEMetadataEntry) { CUEMetadataEntry r = (item as CUEMetadataEntry); dataGridViewTracks.SuspendLayout(); dataGridViewTracks.Rows.Clear(); foreach (CUETrackMetadata track in r.metadata.Tracks) { int no = dataGridViewTracks.Rows.Count; dataGridViewTracks.Rows.Add( (no + 1).ToString(), track.Title, r.TOC[no + r.TOC.FirstAudio].StartMSF, r.TOC[no + r.TOC.FirstAudio].LengthMSF ); } dataGridViewTracks.ResumeLayout(); dataGridViewMetadata.Rows.Clear(); dataGridViewMetadata.Rows.Add("Artist", r.metadata.Artist); dataGridViewMetadata.Rows.Add("Album", r.metadata.Title); dataGridViewMetadata.Rows.Add("Date", r.metadata.Year); dataGridViewMetadata.Rows.Add("Genre", r.metadata.Genre); dataGridViewMetadata.Rows.Add("Disc Number", r.metadata.DiscNumber); dataGridViewMetadata.Rows.Add("Total Discs", r.metadata.TotalDiscs); dataGridViewMetadata.Rows.Add("Disc Name", r.metadata.DiscName); dataGridViewMetadata.Rows.Add("Label", r.metadata.Label); dataGridViewMetadata.Rows.Add("Label#", r.metadata.LabelNo); dataGridViewMetadata.Rows.Add("Country", r.metadata.Country); dataGridViewMetadata.Rows.Add("Release Date", r.metadata.ReleaseDate); dataGridViewMetadata.Rows.Add("Barcode", r.metadata.Barcode); dataGridViewMetadata.Rows.Add("Comment", r.metadata.Comment); if (pictureBox1.ImageLocation == null) { if (pictureBox1.Image != null) { pictureBox1.Image.Dispose(); } pictureBox1.Image = null; } pictureBox1.ImageLocation = null; if (r.metadata.AlbumArt.Count > 0 || r.cover != null) { pictureBox1.Show(); if (r.cover != null) { using (MemoryStream imageStream = new MemoryStream(r.cover, 0, r.cover.Length)) try { pictureBox1.Image = Image.FromStream(imageStream); } catch { } } else if (config.advanced.coversSearch != CUEConfigAdvanced.CTDBCoversSearch.None) { var image = r.metadata.AlbumArt.Find(x => x.primary) ?? r.metadata.AlbumArt[0]; pictureBox1.ImageLocation = image.uri150; } } else { pictureBox1.Hide(); } } else { dataGridViewMetadata.Rows.Clear(); dataGridViewTracks.Rows.Clear(); textBox1.Text = ""; } }