Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | TagBuilder: allow adding duplicate tag types in Complement() | Max Kellermann | 2015-02-06 | 1 | -1/+10 |
| | | | | | | | | | | Build a table of pre-existing tag types before adding new items. The old way would check HasType() each time, which would return true after the first instance of that tag type had been added, preventing duplicate tag types to be merged. This broke duplicate tag types loaded from the state file, because this code path uses TagBuilder::Complement(). | ||||
* | Merge branch 'v0.18.x' into v0.19.x | Max Kellermann | 2014-12-26 | 1 | -0/+9 |
|\ | |||||
| * | util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compare | Max Kellermann | 2014-12-26 | 1 | -0/+9 |
| | | | | | | | | New in clang 3.6. | ||||
| * | TagString: use g_strndup() for unterminated string | Max Kellermann | 2014-11-02 | 1 | -1/+1 |
| | | | | | | | | Fixes buffer overflow bug. | ||||
| * | SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integer | Max Kellermann | 2014-01-15 | 1 | -1/+1 |
| | | | | | | | | Fixes clang warning. | ||||
* | | tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabled | Max Kellermann | 2014-11-08 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | | | On "list albumartist", songs that have no AlbumArtist tag will use the Artist tag. However, if AlbumArtist is disabled via "metadata_to_use", the TagBuilder::AddItem() call is ignored, and PrintUniqueTag() attempts to print a nullptr string. This commit fixes the problem by attempting the fallback only if AlbumArtist is not disabled. | ||||
* | | TagString: implement fix_utf8() without GLib | Max Kellermann | 2014-10-10 | 1 | -22/+34 |
| | | |||||
* | | TagString: return WritableBuffer<char> | Max Kellermann | 2014-10-10 | 3 | -24/+26 |
| | | |||||
* | | TagString: use strndup() for unterminated string | Max Kellermann | 2014-10-10 | 1 | -1/+1 |
| | | | | | | | | Fixes buffer overflow bug. | ||||
* | | TagString: remove ISO-Latin-1 fallback | Max Kellermann | 2014-10-10 | 1 | -14/+1 |
| | | | | | | | | | | | | | | | | MPD handles all strings in UTF-8 internally. Those decoders which read Latin-1 tags are supposed to implement the conversion, instead of passing Latin-1 to TagBuilder::AddItem(). FixTagString() is simply the wrong place to do that, and hard-coding Latin-1 is kind of arbitrary. | ||||
* | | Tag: support "AlbumSort" | Max Kellermann | 2014-09-29 | 3 | -0/+5 |
| | | | | | | | | | | The new tag is supported by all decoders that use the tag name table, and the ID3v2 tag "TSOA" maps to it. | ||||
* | | Add MusicBrainz' Release Track Id tag | Wieland Hoffmann | 2014-09-27 | 3 | -0/+4 |
| | | | | | | | | | | | | | | | | | | | | The Release Track Id uniquely identifies a recording on a release - that is, even if a recording appears twice on a release (meaning that the combination of recording and release id are not enough to figure out which one it is), the release track id will allow differentiating the two. The tag names are taken from https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping | ||||
* | | decoder/flac: move code to tag/MixRamp.cxx | Max Kellermann | 2014-09-24 | 2 | -0/+19 |
| | | |||||
* | | decoder/mad: move code to tag/MixRamp.cxx | Max Kellermann | 2014-09-24 | 2 | -0/+93 |
| | | |||||
* | | tag/ReplayGain: add VorbisComment parser | Max Kellermann | 2014-09-24 | 2 | -0/+19 |
| | | | | | | | | Move code from the Vorbis and FLAC decoder plugins. | ||||
* | | tag/ReplayGain: move code to template function | Max Kellermann | 2014-09-24 | 1 | -8/+30 |
| | | |||||
* | | decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxx | Max Kellermann | 2014-09-24 | 2 | -0/+75 |
| | | |||||
* | | tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxx | Max Kellermann | 2014-09-24 | 3 | -15/+80 |
| | | |||||
* | | TagHandler: pass SongTime to duration() | Max Kellermann | 2014-08-29 | 2 | -6/+7 |
| | | |||||
* | | Tag: use SignedSongTime for the song duration | Max Kellermann | 2014-08-29 | 5 | -34/+32 |
| | | |||||
* | | TagId3: fix printf string parameter | Max Kellermann | 2014-07-30 | 1 | -1/+1 |
| | | |||||
* | | util/Cast: reimplement as template without macro | Max Kellermann | 2014-07-14 | 1 | -2/+5 |
| | | |||||
* | | Tag: add class const_iterator and methods begin(), end() | Max Kellermann | 2014-07-12 | 3 | -12/+65 |
| | | | | | | | | Enables using range-based "for". | ||||
* | | TagPool: move code to tag_value_slot_p() | Max Kellermann | 2014-06-16 | 1 | -9/+18 |
| | | |||||
* | | TagPool: convert macro to constexpr | Max Kellermann | 2014-06-16 | 1 | -1/+1 |
| | | |||||
* | | db/Helpers: move code to tag/Set.cxx | Max Kellermann | 2014-04-24 | 2 | -1/+130 |
| | | |||||
* | | db/Helpers: move TagSet to dedicated header | Max Kellermann | 2014-04-24 | 1 | -0/+60 |
| | | |||||
* | | TagBuilder: add method AddEmptyItem() | Max Kellermann | 2014-04-24 | 2 | -0/+17 |
| | | |||||
* | | TagId3: disable charset conversion without GLib | Max Kellermann | 2014-03-01 | 1 | -0/+9 |
| | | |||||
* | | TagId3: use xstrdup() instead of g_strdup() | Max Kellermann | 2014-02-17 | 1 | -3/+4 |
| | | |||||
* | | util/StringUtil: add function Strip() | Max Kellermann | 2014-02-17 | 2 | -4/+4 |
| | | | | | | Replaces g_strstrip(). | ||||
* | | TagString: disable UTF-8 validation if GLib is disabled | Max Kellermann | 2014-02-17 | 1 | -3/+13 |
| | | |||||
* | | Config*: move to config/ | Max Kellermann | 2014-01-24 | 2 | -3/+3 |
| | | |||||
* | | Tag: pack attributes tighter | Max Kellermann | 2014-01-19 | 2 | -7/+7 |
| | | | | | | | | This saves another 3% memory. | ||||
* | | SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integer | Max Kellermann | 2014-01-14 | 1 | -1/+1 |
| | | | | | | | | Fixes clang warning. | ||||
* | | copyright year 2014 | Max Kellermann | 2014-01-13 | 33 | -33/+33 |
| | | |||||
* | | tag/TagTable: add lookup TagType -> name | Max Kellermann | 2014-01-09 | 2 | -0/+19 |
| | | |||||
* | | tag/TagBuilder: overload Commit() returning a Tag object | Max Kellermann | 2014-01-08 | 2 | -0/+14 |
| | | |||||
* | | tag/TagBuilder: rename Commit() to CommitNew() | Max Kellermann | 2014-01-08 | 4 | -4/+4 |
| | | |||||
* | | util/Alloc: new library replacing GLib's g_malloc() | Max Kellermann | 2014-01-07 | 4 | -10/+18 |
| | | |||||
* | | tag/TagPool: use NewVarSize() to allocate TagPoolSlot | Max Kellermann | 2014-01-07 | 1 | -21/+27 |
| | | |||||
* | | tag/TagPool: rename struct slot to TagPoolSlot | Max Kellermann | 2014-01-07 | 1 | -14/+13 |
| | | |||||
* | | tag/TagPool: use gcc_packed instead of mpd_packed | Max Kellermann | 2014-01-07 | 1 | -1/+1 |
| | | | | | | | | | | By accident, this declared a global variable instead of adding the "packed" attribute. | ||||
* | | util/Cast: new utility library | Max Kellermann | 2014-01-06 | 1 | -1/+2 |
| | | |||||
* | | Merge tag 'release-0.18.6' | Max Kellermann | 2013-12-24 | 1 | -1/+2 |
|\| | |||||
| * | riff: recognize upper-case "ID3" chunk name | Michal Smucr | 2013-12-19 | 1 | -1/+2 |
| | | | | | | | | Some tagging libraries (eg. TagLib) produce that variant. | ||||
* | | Tag: swap "base" and "add" in method Merge() | Max Kellermann | 2013-12-13 | 1 | -2/+2 |
| | | | | | | | | Fixes broken CUE sheet song tags (regression by commmit 7e8d254b). | ||||
* | | tag/ApeLoader: use new[]/delete[] instead of g_malloc()/g_free() | Max Kellermann | 2013-12-04 | 1 | -5/+3 |
| | | |||||
* | | TagId3: make variables more local | Max Kellermann | 2013-12-04 | 1 | -76/+41 |
| | | |||||
* | | TagId3: use std::string for partial string copy | Max Kellermann | 2013-12-04 | 1 | -3/+4 |
| | |