Initial commit — M3U playlist tool with MP3/AAC encoding
This commit is contained in:
@@ -0,0 +1,185 @@
|
||||
namespace id3 {
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing;
|
||||
|
||||
public class ID3TagEditor : System.Windows.Forms.Form {
|
||||
// Menu Components
|
||||
private MainMenu mForm;
|
||||
private MenuItem mtFile;
|
||||
private MenuItem miLoad;
|
||||
private MenuItem miSave;
|
||||
private MenuItem miExit;
|
||||
private MenuItem mtHelp;
|
||||
private MenuItem miAbout;
|
||||
private MenuItem miSeparator;
|
||||
|
||||
// Label Components
|
||||
private Label lblTitle;
|
||||
private Label lblArtist;
|
||||
private Label lblAlbum;
|
||||
private Label lblYear;
|
||||
private Label lblComment;
|
||||
|
||||
// Text Box Components
|
||||
private TextBox tbTitle;
|
||||
private TextBox tbArtist;
|
||||
private TextBox tbAlbum;
|
||||
private TextBox tbYear;
|
||||
private TextBox tbComment;
|
||||
|
||||
// MP3 Struct
|
||||
MP3 workingMP3;
|
||||
|
||||
public ID3TagEditor() {
|
||||
// Create the components
|
||||
CreateComponents();
|
||||
// Setup the Form
|
||||
this.Text = "MP3 Tag Editor (C# Example)";
|
||||
this.MinimizeBox = true;
|
||||
this.MaximizeBox = false;
|
||||
this.Menu = mForm;
|
||||
this.Size = new Size(340,180);
|
||||
}
|
||||
|
||||
|
||||
// method to create a Label
|
||||
private Label createLabel(string pText, int pRow) {
|
||||
Label rLabel = new Label();
|
||||
rLabel.Text = pText;
|
||||
rLabel.Location = new Point(5,8 + (pRow * 25));
|
||||
rLabel.Size = new System.Drawing.Size (70, 20);
|
||||
rLabel.Font = new System.Drawing.Font ("Arial", 10, System.Drawing.FontStyle.Bold);
|
||||
rLabel.BackColor = System.Drawing.SystemColors.Control;
|
||||
rLabel.TextAlign = ContentAlignment.MiddleRight;
|
||||
|
||||
return (rLabel);
|
||||
}
|
||||
|
||||
// method to create a Text Box
|
||||
private TextBox createTextBox(string pText, int pRow, int pLength) {
|
||||
TextBox rTextBox = new TextBox ();
|
||||
rTextBox.Location = new Point(75,5 + (pRow * 25));
|
||||
rTextBox.ReadOnly = false;
|
||||
rTextBox.Text = pText;
|
||||
rTextBox.MaxLength = pLength;
|
||||
rTextBox.Font = new System.Drawing.Font ("Arial", 10, System.Drawing.FontStyle.Bold);
|
||||
rTextBox.Size = new System.Drawing.Size (250, 18);
|
||||
rTextBox.BackColor = System.Drawing.SystemColors.Window;
|
||||
rTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
return (rTextBox);
|
||||
}
|
||||
|
||||
public void CreateComponents()
|
||||
{
|
||||
// Create Labels
|
||||
lblTitle = createLabel("Title", 0);
|
||||
lblArtist = createLabel("Artist", 1);
|
||||
lblAlbum = createLabel("Album", 2);
|
||||
lblYear = createLabel("Year", 3);
|
||||
lblComment = createLabel("Comment", 4);
|
||||
|
||||
// Create TextBoxes
|
||||
tbTitle = createTextBox ("", 0, 30);
|
||||
tbArtist = createTextBox ("", 1, 30);
|
||||
tbAlbum = createTextBox ("", 2, 30);
|
||||
tbYear = createTextBox ("", 3, 4);
|
||||
tbComment = createTextBox ("", 4, 28);
|
||||
|
||||
// Add Labels
|
||||
this.Controls.Add(lblTitle);
|
||||
this.Controls.Add(lblArtist);
|
||||
this.Controls.Add(lblAlbum);
|
||||
this.Controls.Add(lblYear);
|
||||
this.Controls.Add(lblComment);
|
||||
|
||||
// Add Text Boxes
|
||||
this.Controls.Add(tbTitle);
|
||||
this.Controls.Add(tbArtist);
|
||||
this.Controls.Add(tbAlbum);
|
||||
this.Controls.Add(tbYear);
|
||||
this.Controls.Add(tbComment);
|
||||
|
||||
//Instantiating Main Menu
|
||||
mForm = new MainMenu();
|
||||
|
||||
// Add top level menu items
|
||||
mtFile = new MenuItem("&File");
|
||||
mtHelp = new MenuItem("&Help");
|
||||
miSeparator = new MenuItem("-");
|
||||
mForm.MenuItems.Add(mtFile);
|
||||
mForm.MenuItems.Add(mtHelp);
|
||||
|
||||
// Add the Load MP3 menu item
|
||||
miLoad = new MenuItem("&Load MP3", new EventHandler(eventLoadMP3), Shortcut.CtrlO);
|
||||
// Add the Save MP3 menu item
|
||||
miSave = new MenuItem("&Save MP3", new EventHandler(eventSaveMP3), Shortcut.CtrlS);
|
||||
// Add the exit menu
|
||||
miExit = new MenuItem("&Exit", new EventHandler(eventCloseForm));
|
||||
// Add the about menu
|
||||
miAbout = new MenuItem("&About", new EventHandler(eventAboutBox));
|
||||
|
||||
mtFile.MenuItems.Add(miLoad);
|
||||
mtFile.MenuItems.Add(miSave);
|
||||
mtFile.MenuItems.Add(miSeparator);
|
||||
mtFile.MenuItems.Add(miExit);
|
||||
mtHelp.MenuItems.Add(miAbout);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Event for Loading an MP3
|
||||
protected void eventLoadMP3(object pSender, EventArgs pArgs) {
|
||||
OpenFileDialog fileDialog = new OpenFileDialog();
|
||||
fileDialog.Filter = "MP3 files files (*.mp3)|*.mp3";
|
||||
fileDialog.ShowDialog();
|
||||
|
||||
string fileName = fileDialog.FileName;
|
||||
|
||||
// If a file was selected get its ID3 Tag
|
||||
if (fileName.Length > 0) {
|
||||
FileInfo fFileInfo = new FileInfo(fileName); // Creating this FileInfo so I don't have to change my generic class
|
||||
workingMP3 = new MP3(fFileInfo.DirectoryName, fFileInfo.Name); //fFile.DirectoryName, fFile.Name);
|
||||
FileCommands.readMP3Tag (ref workingMP3);
|
||||
|
||||
tbTitle.Text = workingMP3.id3Title;
|
||||
tbArtist.Text = workingMP3.id3Artist;
|
||||
tbAlbum.Text = workingMP3.id3Album;
|
||||
tbYear.Text = workingMP3.id3Year;
|
||||
tbComment.Text = workingMP3.id3Comment;
|
||||
}
|
||||
}
|
||||
|
||||
// Event for Saving an MP3
|
||||
protected void eventSaveMP3(object pSender, EventArgs pArgs) {
|
||||
if (workingMP3.id3Title == null) return;
|
||||
workingMP3.id3Title = tbTitle.Text;
|
||||
workingMP3.id3Artist = tbArtist.Text;
|
||||
workingMP3.id3Album = tbAlbum.Text;
|
||||
workingMP3.id3Year = tbYear.Text;
|
||||
workingMP3.id3Comment = tbComment.Text;
|
||||
|
||||
FileCommands.updateMP3Tag (ref workingMP3);
|
||||
|
||||
}
|
||||
|
||||
// Event for About Box
|
||||
protected void eventAboutBox(object pSender, EventArgs pArgs) {
|
||||
MessageBox.Show("By Paul Lockwood (paul_lockwood@yahoo.com).", "C# Example Code",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
// Event for Closing Form
|
||||
protected void eventCloseForm(object pSender, EventArgs pArgs) {
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
// The Main method
|
||||
public static void Main() {
|
||||
Application.Run(new ID3TagEditor());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user