Loading lib/mlm/file-tags.vala +78 −147 Original line number Diff line number Diff line Loading @@ -99,8 +99,6 @@ namespace MLM { private Gee.HashMap<string, int?> int_frames; /* Data frames. */ private Gee.HashMap<int, GLib.Bytes> data_frames; /* Invalid frames. */ private Gee.ArrayList<Id3Tag.Frame> invalid_frames; /** * The artist. Loading Loading @@ -275,76 +273,24 @@ namespace MLM { if (tag.frames.length == 0) return; invalid_frames = new Gee.ArrayList<Id3Tag.Frame>(); for (int i = 0; i < tag.frames.length; i++) set_frame(tag.frames[i]); foreach (Id3Tag.Frame frame in invalid_frames) { tag.detachframe(frame); } invalid_frames = null; } /* Sets a frame. */ private void set_frame(Id3Tag.Frame frame) { var invalid_frames = new Gee.ArrayList<Id3Tag.Frame>(); for (int i = 0; i < tag.frames.length; i++) { var frame = tag.frames[i]; if (frame.id == FrameId.ARTIST) { set_artist_frame(frame); string_frames[FrameId.ARTIST] = _artist = frame.get_text(); } else if (frame.id == FrameId.TITLE) { set_title_frame(frame); string_frames[FrameId.TITLE] = _title = frame.get_text(); } else if (frame.id == FrameId.ALBUM) { set_album_frame(frame); string_frames[FrameId.ALBUM] = _album = frame.get_text(); } else if (frame.id == FrameId.BAND) { set_band_frame(frame); string_frames[FrameId.BAND] = _band = frame.get_text(); } else if (frame.id == FrameId.YEAR) { set_year_frame(frame); int_frames[FrameId.YEAR] = _year = int.parse(frame.get_text()); } else if (frame.id == FrameId.TRACK) { set_track_frame(frame); } else if (frame.id == FrameId.DISC) { set_disc_frame(frame); } else if (frame.id == FrameId.GENRE) { set_genre_frame(frame); } else if (frame.id == FrameId.COMMENT) { set_comment_frame(frame); } else if (frame.id == FrameId.COMPOSER) { set_composer_frame(frame); } else if (frame.id == FrameId.ORIGINAL) { set_original_frame(frame); } else if (frame.id == FrameId.PICTURE) { set_picture_frame(frame); } else { set_invalid_frame(frame); } } /* Sets the artist frame. */ private void set_artist_frame(Id3Tag.Frame frame) { string_frames[FrameId.ARTIST] = _artist = frame.get_text(); } /* Sets the artist frame. */ private void set_title_frame(Id3Tag.Frame frame) { string_frames[FrameId.TITLE] = _title = frame.get_text(); } /* Sets the album frame. */ private void set_album_frame(Id3Tag.Frame frame) { string_frames[FrameId.ALBUM] = _album = frame.get_text(); } /* Sets the band frame. */ private void set_band_frame(Id3Tag.Frame frame) { string_frames[FrameId.BAND] = _band = frame.get_text(); } /* Sets the year frame. */ private void set_year_frame(Id3Tag.Frame frame) { int_frames[FrameId.YEAR] = _year = int.parse(frame.get_text()); } /* Sets the track frame. */ private void set_track_frame(Id3Tag.Frame frame) { string track = frame.get_text(); if (track == null) return; continue; string_frames[FrameId.TRACK] = track; if (track.index_of("/") != -1) { string[] t = track.split("/"); Loading @@ -354,22 +300,16 @@ namespace MLM { _track = int.parse(track); _total = -1; } } /* Sets the disc frame. */ private void set_disc_frame(Id3Tag.Frame frame) { int_frames[FrameId.DISC] = _disc = int.parse(frame.get_text()); } /* Sets the genre frame. */ private void set_genre_frame(Id3Tag.Frame frame) { } else if (frame.id == FrameId.DISC) { _disc = int.parse(frame.get_text()); } else if (frame.id == FrameId.GENRE) { var g = frame.get_text(); if (g == null) return; continue; _genre = Genre.index_of(g); if (_genre != -1) { int_frames[FrameId.GENRE] = _genre; return; continue; } int n = int.parse(g); if (0 <= n && n < Genre.total()) { Loading @@ -378,28 +318,16 @@ namespace MLM { } else { invalid_frames.add(frame); } } /* Sets the comment frame. */ private void set_comment_frame(Id3Tag.Frame frame) { _comment = frame.get_comment_text(); string_frames[FrameId.COMMENT] = _comment; } /* Sets the composer frame. */ private void set_composer_frame(Id3Tag.Frame frame) { _composer = frame.get_text(); string_frames[FrameId.COMPOSER] = _composer; } /* Sets the original frame. */ private void set_original_frame(Id3Tag.Frame frame) { _original = frame.get_text(); string_frames[FrameId.ORIGINAL] = _original; } /* Sets the picture frame. */ private void set_picture_frame(Id3Tag.Frame frame) { } else if (frame.id == FrameId.COMMENT) { string_frames[FrameId.COMMENT] = _comment = frame.get_comment_text(); } else if (frame.id == FrameId.COMPOSER) { string_frames[FrameId.COMPOSER] = _composer = frame.get_text(); } else if (frame.id == FrameId.ORIGINAL) { string_frames[FrameId.ORIGINAL] = _original = frame.get_text(); } else if (frame.id == FrameId.PICTURE) { var fc_data = frame.get_picture(Id3Tag.PictureType.COVERFRONT); if (fc_data != null) { Loading @@ -417,13 +345,16 @@ namespace MLM { artist_description = frame.get_picture_description(); } } /* Sets an invalid frame. */ private void set_invalid_frame(Id3Tag.Frame frame) { GLib.warning("Invalid frame ‘%s’ will be deleted.\n", frame.id); } else { GLib.warning("Invalid frame ‘%s’ will be deleted.\n", frame.id); invalid_frames.add(frame); } } foreach (Id3Tag.Frame frame in invalid_frames) { tag.detachframe(frame); } } /** * Removes the tags from the file. Loading src/application/main.vala +3 −4 Original line number Diff line number Diff line Loading @@ -25,11 +25,10 @@ namespace MLM { public class Main { public static int main(string[] args) { Intl.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR); Intl.bind_textdomain_codeset(Config.GETTEXT_PACKAGE, "UTF-8"); Intl.textdomain(Config.GETTEXT_PACKAGE); GLib.Intl.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR); GLib.Intl.bind_textdomain_codeset(Config.GETTEXT_PACKAGE, "UTF-8"); GLib.Intl.textdomain(Config.GETTEXT_PACKAGE); GLib.Environment.set_application_name("MLM"); Gtk.init(ref args); Gst.init(ref args); var mlm = new Application(); Loading src/tags/tags.vala +3 −2 Original line number Diff line number Diff line Loading @@ -170,7 +170,8 @@ Format for printing: } var file_tags = new FileTags(filename); if (!file_tags.has_tags) { stderr.printf("The file ‘%s’ has no ID3 v2.4.0 tags.\n", filename); stderr.printf("The file ‘%s’ has no ID3 v2.4.0 tags.\n", filename); return; } var box = new PrettyBox(80, Color.RED); Loading Loading
lib/mlm/file-tags.vala +78 −147 Original line number Diff line number Diff line Loading @@ -99,8 +99,6 @@ namespace MLM { private Gee.HashMap<string, int?> int_frames; /* Data frames. */ private Gee.HashMap<int, GLib.Bytes> data_frames; /* Invalid frames. */ private Gee.ArrayList<Id3Tag.Frame> invalid_frames; /** * The artist. Loading Loading @@ -275,76 +273,24 @@ namespace MLM { if (tag.frames.length == 0) return; invalid_frames = new Gee.ArrayList<Id3Tag.Frame>(); for (int i = 0; i < tag.frames.length; i++) set_frame(tag.frames[i]); foreach (Id3Tag.Frame frame in invalid_frames) { tag.detachframe(frame); } invalid_frames = null; } /* Sets a frame. */ private void set_frame(Id3Tag.Frame frame) { var invalid_frames = new Gee.ArrayList<Id3Tag.Frame>(); for (int i = 0; i < tag.frames.length; i++) { var frame = tag.frames[i]; if (frame.id == FrameId.ARTIST) { set_artist_frame(frame); string_frames[FrameId.ARTIST] = _artist = frame.get_text(); } else if (frame.id == FrameId.TITLE) { set_title_frame(frame); string_frames[FrameId.TITLE] = _title = frame.get_text(); } else if (frame.id == FrameId.ALBUM) { set_album_frame(frame); string_frames[FrameId.ALBUM] = _album = frame.get_text(); } else if (frame.id == FrameId.BAND) { set_band_frame(frame); string_frames[FrameId.BAND] = _band = frame.get_text(); } else if (frame.id == FrameId.YEAR) { set_year_frame(frame); int_frames[FrameId.YEAR] = _year = int.parse(frame.get_text()); } else if (frame.id == FrameId.TRACK) { set_track_frame(frame); } else if (frame.id == FrameId.DISC) { set_disc_frame(frame); } else if (frame.id == FrameId.GENRE) { set_genre_frame(frame); } else if (frame.id == FrameId.COMMENT) { set_comment_frame(frame); } else if (frame.id == FrameId.COMPOSER) { set_composer_frame(frame); } else if (frame.id == FrameId.ORIGINAL) { set_original_frame(frame); } else if (frame.id == FrameId.PICTURE) { set_picture_frame(frame); } else { set_invalid_frame(frame); } } /* Sets the artist frame. */ private void set_artist_frame(Id3Tag.Frame frame) { string_frames[FrameId.ARTIST] = _artist = frame.get_text(); } /* Sets the artist frame. */ private void set_title_frame(Id3Tag.Frame frame) { string_frames[FrameId.TITLE] = _title = frame.get_text(); } /* Sets the album frame. */ private void set_album_frame(Id3Tag.Frame frame) { string_frames[FrameId.ALBUM] = _album = frame.get_text(); } /* Sets the band frame. */ private void set_band_frame(Id3Tag.Frame frame) { string_frames[FrameId.BAND] = _band = frame.get_text(); } /* Sets the year frame. */ private void set_year_frame(Id3Tag.Frame frame) { int_frames[FrameId.YEAR] = _year = int.parse(frame.get_text()); } /* Sets the track frame. */ private void set_track_frame(Id3Tag.Frame frame) { string track = frame.get_text(); if (track == null) return; continue; string_frames[FrameId.TRACK] = track; if (track.index_of("/") != -1) { string[] t = track.split("/"); Loading @@ -354,22 +300,16 @@ namespace MLM { _track = int.parse(track); _total = -1; } } /* Sets the disc frame. */ private void set_disc_frame(Id3Tag.Frame frame) { int_frames[FrameId.DISC] = _disc = int.parse(frame.get_text()); } /* Sets the genre frame. */ private void set_genre_frame(Id3Tag.Frame frame) { } else if (frame.id == FrameId.DISC) { _disc = int.parse(frame.get_text()); } else if (frame.id == FrameId.GENRE) { var g = frame.get_text(); if (g == null) return; continue; _genre = Genre.index_of(g); if (_genre != -1) { int_frames[FrameId.GENRE] = _genre; return; continue; } int n = int.parse(g); if (0 <= n && n < Genre.total()) { Loading @@ -378,28 +318,16 @@ namespace MLM { } else { invalid_frames.add(frame); } } /* Sets the comment frame. */ private void set_comment_frame(Id3Tag.Frame frame) { _comment = frame.get_comment_text(); string_frames[FrameId.COMMENT] = _comment; } /* Sets the composer frame. */ private void set_composer_frame(Id3Tag.Frame frame) { _composer = frame.get_text(); string_frames[FrameId.COMPOSER] = _composer; } /* Sets the original frame. */ private void set_original_frame(Id3Tag.Frame frame) { _original = frame.get_text(); string_frames[FrameId.ORIGINAL] = _original; } /* Sets the picture frame. */ private void set_picture_frame(Id3Tag.Frame frame) { } else if (frame.id == FrameId.COMMENT) { string_frames[FrameId.COMMENT] = _comment = frame.get_comment_text(); } else if (frame.id == FrameId.COMPOSER) { string_frames[FrameId.COMPOSER] = _composer = frame.get_text(); } else if (frame.id == FrameId.ORIGINAL) { string_frames[FrameId.ORIGINAL] = _original = frame.get_text(); } else if (frame.id == FrameId.PICTURE) { var fc_data = frame.get_picture(Id3Tag.PictureType.COVERFRONT); if (fc_data != null) { Loading @@ -417,13 +345,16 @@ namespace MLM { artist_description = frame.get_picture_description(); } } /* Sets an invalid frame. */ private void set_invalid_frame(Id3Tag.Frame frame) { GLib.warning("Invalid frame ‘%s’ will be deleted.\n", frame.id); } else { GLib.warning("Invalid frame ‘%s’ will be deleted.\n", frame.id); invalid_frames.add(frame); } } foreach (Id3Tag.Frame frame in invalid_frames) { tag.detachframe(frame); } } /** * Removes the tags from the file. Loading
src/application/main.vala +3 −4 Original line number Diff line number Diff line Loading @@ -25,11 +25,10 @@ namespace MLM { public class Main { public static int main(string[] args) { Intl.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR); Intl.bind_textdomain_codeset(Config.GETTEXT_PACKAGE, "UTF-8"); Intl.textdomain(Config.GETTEXT_PACKAGE); GLib.Intl.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR); GLib.Intl.bind_textdomain_codeset(Config.GETTEXT_PACKAGE, "UTF-8"); GLib.Intl.textdomain(Config.GETTEXT_PACKAGE); GLib.Environment.set_application_name("MLM"); Gtk.init(ref args); Gst.init(ref args); var mlm = new Application(); Loading
src/tags/tags.vala +3 −2 Original line number Diff line number Diff line Loading @@ -170,7 +170,8 @@ Format for printing: } var file_tags = new FileTags(filename); if (!file_tags.has_tags) { stderr.printf("The file ‘%s’ has no ID3 v2.4.0 tags.\n", filename); stderr.printf("The file ‘%s’ has no ID3 v2.4.0 tags.\n", filename); return; } var box = new PrettyBox(80, Color.RED); Loading