aboutsummaryrefslogtreecommitdiffstats
path: root/src/tag (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-10-10TagString: use strndup() for unterminated stringMax Kellermann1-1/+1
Fixes buffer overflow bug.
2014-10-10TagString: remove ISO-Latin-1 fallbackMax Kellermann1-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.
2014-09-29Tag: support "AlbumSort"Max Kellermann3-0/+5
The new tag is supported by all decoders that use the tag name table, and the ID3v2 tag "TSOA" maps to it.
2014-09-27Add MusicBrainz' Release Track Id tagWieland Hoffmann3-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
2014-09-24decoder/flac: move code to tag/MixRamp.cxxMax Kellermann2-0/+19
2014-09-24decoder/mad: move code to tag/MixRamp.cxxMax Kellermann2-0/+93
2014-09-24tag/ReplayGain: add VorbisComment parserMax Kellermann2-0/+19
Move code from the Vorbis and FLAC decoder plugins.
2014-09-24tag/ReplayGain: move code to template functionMax Kellermann1-8/+30
2014-09-24decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxxMax Kellermann2-0/+75
2014-09-24tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxxMax Kellermann3-15/+80
2014-08-29TagHandler: pass SongTime to duration()Max Kellermann2-6/+7
2014-08-29Tag: use SignedSongTime for the song durationMax Kellermann5-34/+32
2014-07-30TagId3: fix printf string parameterMax Kellermann1-1/+1
2014-07-14util/Cast: reimplement as template without macroMax Kellermann1-2/+5
2014-07-12Tag: add class const_iterator and methods begin(), end()Max Kellermann3-12/+65
Enables using range-based "for".
2014-06-16TagPool: move code to tag_value_slot_p()Max Kellermann1-9/+18
2014-06-16TagPool: convert macro to constexprMax Kellermann1-1/+1
2014-04-24db/Helpers: move code to tag/Set.cxxMax Kellermann2-1/+130
2014-04-24db/Helpers: move TagSet to dedicated headerMax Kellermann1-0/+60
2014-04-24TagBuilder: add method AddEmptyItem()Max Kellermann2-0/+17
2014-03-01TagId3: disable charset conversion without GLibMax Kellermann1-0/+9
2014-02-17TagId3: use xstrdup() instead of g_strdup()Max Kellermann1-3/+4
2014-02-17util/StringUtil: add function Strip()Max Kellermann2-4/+4
Replaces g_strstrip().
2014-02-17TagString: disable UTF-8 validation if GLib is disabledMax Kellermann1-3/+13
2014-01-24Config*: move to config/Max Kellermann2-3/+3
2014-01-19Tag: pack attributes tighterMax Kellermann2-7/+7
This saves another 3% memory.
2014-01-15SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integerMax Kellermann1-1/+1
Fixes clang warning.
2014-01-14SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integerMax Kellermann1-1/+1
Fixes clang warning.
2014-01-13copyright year 2014Max Kellermann33-33/+33
2014-01-09tag/TagTable: add lookup TagType -> nameMax Kellermann2-0/+19
2014-01-08tag/TagBuilder: overload Commit() returning a Tag objectMax Kellermann2-0/+14
2014-01-08tag/TagBuilder: rename Commit() to CommitNew()Max Kellermann4-4/+4
2014-01-07util/Alloc: new library replacing GLib's g_malloc()Max Kellermann4-10/+18
2014-01-07tag/TagPool: use NewVarSize() to allocate TagPoolSlotMax Kellermann1-21/+27
2014-01-07tag/TagPool: rename struct slot to TagPoolSlotMax Kellermann1-14/+13
2014-01-07tag/TagPool: use gcc_packed instead of mpd_packedMax Kellermann1-1/+1
By accident, this declared a global variable instead of adding the "packed" attribute.
2014-01-06util/Cast: new utility libraryMax Kellermann1-1/+2
2013-12-19riff: recognize upper-case "ID3" chunk nameMichal Smucr1-1/+2
Some tagging libraries (eg. TagLib) produce that variant.
2013-12-13Tag: swap "base" and "add" in method Merge()Max Kellermann1-2/+2
Fixes broken CUE sheet song tags (regression by commmit 7e8d254b).
2013-12-04tag/ApeLoader: use new[]/delete[] instead of g_malloc()/g_free()Max Kellermann1-5/+3
2013-12-04TagId3: make variables more localMax Kellermann1-76/+41
2013-12-04TagId3: use std::string for partial string copyMax Kellermann1-3/+4
2013-12-04TagId3: use free() instead of g_free() for libid3tag allocationsMax Kellermann1-3/+3
2013-12-04TagId3: use new[]/delete[] instead of g_malloc()/g_free()Max Kellermann1-11/+6
2013-12-04TagId3: gcc_unlikely instead of G_UNLIKELYMax Kellermann1-4/+2
2013-12-03Tag: destructor calls Clear()Max Kellermann2-11/+3
Eliminate duplicate code.
2013-12-03Tag: use new[]/delete[] instead of g_new()/g_free()Max Kellermann2-11/+4
2013-12-03Tag: remove method AddItem()Max Kellermann2-61/+0
Use class TagBuilder instead.
2013-12-03PaylistTag: use class TagBuilderMax Kellermann4-39/+37
2013-12-03TagBuilder: add move operatorMax Kellermann2-0/+34