/** * Methods */ public ID3Tag GetID3Tag(string fileName) { // Create ID3 tag var var tag = new ID3Tag(); // Check ID3 identifier tag.Bytes = data.GetID3TagBytes(fileName, 3); if(!tag.HasID3Identifier()) { return new ID3Tag(); } // Load Header bytes into Tag (10 bytes) tag.Bytes = data.GetID3TagBytes(fileName, HEADER_LENGTH); tag.Header = new ID3Header(tag.Bytes); // Load Header + All frames tag.Bytes = data.GetID3TagBytes(fileName, HEADER_LENGTH + tag.Header.TagSize); if(tag.Header.ExtendedHeaderFlag) { Console.WriteLine($"DEBUG Extended Header detected. Not implemented."); } // Load frames tag.Frames = GetID3Frames(tag.Bytes); // Return the created tag return tag; }
private void PrintInfo(ID3Tag tag) { // Iterate all the frames foreach (ID3Frame frame in tag.Frames) { // Row item if (frame.ID == "TALB") { albumTextBox.Text = frame.GetDataString(); } else if (frame.ID == "TIT2") { songTextBox.Text = frame.GetDataString(); } else if (frame.ID == "TPE2") { artistTextBox.Text = frame.GetDataString(); } } }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { if(openFileDialog1.ShowDialog() == DialogResult.OK) { // song var ID3Tag tag = new ID3Tag(); // Get filename of selected file string fileName = openFileDialog1.FileName; // Write first bytes tag = logic.GetID3Tag(fileName); if (tag.Header.TagSize != 0) { // Print in GUI PrintInfo(tag); } else { ClearTextBoxes(); MessageBox.Show("The selected file has no valid ID3 tag."); } } }