aboutsummaryrefslogtreecommitdiffstats
path: root/src/tag (follow)
Commit message (Collapse)AuthorAgeFilesLines
* TagBuilder: allow adding duplicate tag types in Complement()Max Kellermann2015-02-061-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.xMax Kellermann2014-12-261-0/+9
|\
| * util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compareMax Kellermann2014-12-261-0/+9
| | | | | | | | New in clang 3.6.
| * TagString: use g_strndup() for unterminated stringMax Kellermann2014-11-021-1/+1
| | | | | | | | Fixes buffer overflow bug.
| * SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integerMax Kellermann2014-01-151-1/+1
| | | | | | | | Fixes clang warning.
* | tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabledMax Kellermann2014-11-081-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 GLibMax Kellermann2014-10-101-22/+34
| |
* | TagString: return WritableBuffer<char>Max Kellermann2014-10-103-24/+26
| |
* | TagString: use strndup() for unterminated stringMax Kellermann2014-10-101-1/+1
| | | | | | | | Fixes buffer overflow bug.
* | TagString: remove ISO-Latin-1 fallbackMax Kellermann2014-10-101-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 Kellermann2014-09-293-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 tagWieland Hoffmann2014-09-273-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.cxxMax Kellermann2014-09-242-0/+19
| |
* | decoder/mad: move code to tag/MixRamp.cxxMax Kellermann2014-09-242-0/+93
| |
* | tag/ReplayGain: add VorbisComment parserMax Kellermann2014-09-242-0/+19
| | | | | | | | Move code from the Vorbis and FLAC decoder plugins.
* | tag/ReplayGain: move code to template functionMax Kellermann2014-09-241-8/+30
| |
* | decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxxMax Kellermann2014-09-242-0/+75
| |
* | tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxxMax Kellermann2014-09-243-15/+80
| |
* | TagHandler: pass SongTime to duration()Max Kellermann2014-08-292-6/+7
| |
* | Tag: use SignedSongTime for the song durationMax Kellermann2014-08-295-34/+32
| |
* | TagId3: fix printf string parameterMax Kellermann2014-07-301-1/+1
| |
* | util/Cast: reimplement as template without macroMax Kellermann2014-07-141-2/+5
| |
* | Tag: add class const_iterator and methods begin(), end()Max Kellermann2014-07-123-12/+65
| | | | | | | | Enables using range-based "for".
* | TagPool: move code to tag_value_slot_p()Max Kellermann2014-06-161-9/+18
| |
* | TagPool: convert macro to constexprMax Kellermann2014-06-161-1/+1
| |
* | db/Helpers: move code to tag/Set.cxxMax Kellermann2014-04-242-1/+130
| |
* | db/Helpers: move TagSet to dedicated headerMax Kellermann2014-04-241-0/+60
| |
* | TagBuilder: add method AddEmptyItem()Max Kellermann2014-04-242-0/+17
| |
* | TagId3: disable charset conversion without GLibMax Kellermann2014-03-011-0/+9
| |
* | TagId3: use xstrdup() instead of g_strdup()Max Kellermann2014-02-171-3/+4
| |
* | util/StringUtil: add function Strip()Max Kellermann2014-02-172-4/+4
| | | | | | Replaces g_strstrip().
* | TagString: disable UTF-8 validation if GLib is disabledMax Kellermann2014-02-171-3/+13
| |
* | Config*: move to config/Max Kellermann2014-01-242-3/+3
| |
* | Tag: pack attributes tighterMax Kellermann2014-01-192-7/+7
| | | | | | | | This saves another 3% memory.
* | SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integerMax Kellermann2014-01-141-1/+1
| | | | | | | | Fixes clang warning.
* | copyright year 2014Max Kellermann2014-01-1333-33/+33
| |
* | tag/TagTable: add lookup TagType -> nameMax Kellermann2014-01-092-0/+19
| |
* | tag/TagBuilder: overload Commit() returning a Tag objectMax Kellermann2014-01-082-0/+14
| |
* | tag/TagBuilder: rename Commit() to CommitNew()Max Kellermann2014-01-084-4/+4
| |
* | util/Alloc: new library replacing GLib's g_malloc()Max Kellermann2014-01-074-10/+18
| |
* | tag/TagPool: use NewVarSize() to allocate TagPoolSlotMax Kellermann2014-01-071-21/+27
| |
* | tag/TagPool: rename struct slot to TagPoolSlotMax Kellermann2014-01-071-14/+13
| |
* | tag/TagPool: use gcc_packed instead of mpd_packedMax Kellermann2014-01-071-1/+1
| | | | | | | | | | By accident, this declared a global variable instead of adding the "packed" attribute.
* | util/Cast: new utility libraryMax Kellermann2014-01-061-1/+2
| |
* | Merge tag 'release-0.18.6'Max Kellermann2013-12-241-1/+2
|\|
| * riff: recognize upper-case "ID3" chunk nameMichal Smucr2013-12-191-1/+2
| | | | | | | | Some tagging libraries (eg. TagLib) produce that variant.
* | Tag: swap "base" and "add" in method Merge()Max Kellermann2013-12-131-2/+2
| | | | | | | | Fixes broken CUE sheet song tags (regression by commmit 7e8d254b).
* | tag/ApeLoader: use new[]/delete[] instead of g_malloc()/g_free()Max Kellermann2013-12-041-5/+3
| |
* | TagId3: make variables more localMax Kellermann2013-12-041-76/+41
| |
* | TagId3: use std::string for partial string copyMax Kellermann2013-12-041-3/+4
| |