Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge tag 'v0.19.11' | Max Kellermann | 2015-10-27 | 1 | -6/+6 |
|\ | |||||
| * | tag/ApeLoader: fix buffer overflow after unterminated key | Max Kellermann | 2015-10-16 | 1 | -6/+6 |
| | | |||||
* | | Filter out this extra data and leading zeroes in "track" and "disc" tags. | Andreas Mair | 2015-10-21 | 1 | -1/+14 |
| | | |||||
* | | util/StringView: new utility class | Max Kellermann | 2015-09-30 | 10 | -92/+81 |
| | | |||||
* | | db/UniqueTags, tag/Set, ...: use typedef tag_mask_t | Max Kellermann | 2015-08-24 | 2 | -10/+10 |
| | | |||||
* | | tag/Settings: move typedef tag_mask_t to Mask.hxx | Max Kellermann | 2015-08-24 | 2 | -2/+28 |
| | | |||||
* | | tag/Settings: convert to C++ | Max Kellermann | 2015-08-24 | 5 | -10/+6 |
| | | |||||
* | | tag/Settings: convert to bit mask | Max Kellermann | 2015-08-24 | 3 | -9/+8 |
| | | |||||
* | | tag/Settings: add function IsTagEnabled() wrapping access to ignore_tag_items[] | Max Kellermann | 2015-08-24 | 3 | -2/+21 |
| | | |||||
* | | Tag: include cleanup | Max Kellermann | 2015-08-24 | 1 | -1/+0 |
| | | |||||
* | | config/Global: allow calling config_get_string() with one argument | Max Kellermann | 2015-06-26 | 1 | -2/+1 |
| | | | | | | | | default_value defaults to nullptr. | ||||
* | | TagId3: remove the "id3v1_encoding" setting | Max Kellermann | 2015-06-26 | 1 | -47/+10 |
| | | | | | | | | | | Drop support for misencoded tags. People should not be using ID3v1 anyway. | ||||
* | | *: doxygen fixups | Max Kellermann | 2015-03-17 | 2 | -2/+2 |
| | | |||||
* | | fs/Traits: add macro PATH_LITERAL() | Max Kellermann | 2015-03-05 | 2 | -2/+2 |
| | | |||||
* | | Merge tag 'v0.19.9' | Max Kellermann | 2015-02-06 | 1 | -1/+10 |
|\| | |||||
| * | 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(). | ||||
* | | tag/Rva2: convert pointers to references | Max Kellermann | 2015-02-04 | 1 | -9/+9 |
| | | |||||
* | | tag/Rva2: rename struct rva2_data to CamelCase | Max Kellermann | 2015-02-04 | 1 | -6/+6 |
| | | |||||
* | | tag/Rva2: make enum rva2_channel strictly-typed | Max Kellermann | 2015-02-04 | 1 | -12/+12 |
| | | |||||
* | | tag/Format: add %iso8601% | Max Kellermann | 2015-01-22 | 1 | -0/+27 |
| | | |||||
* | | config/Option: convert to strictly-typed enum | Max Kellermann | 2015-01-21 | 2 | -2/+4 |
| | | |||||
* | | output/recorder: dynamic file name | Max Kellermann | 2015-01-14 | 2 | -0/+138 |
| | | |||||
* | | Copyright year 2015 | Max Kellermann | 2015-01-01 | 41 | -41/+41 |
| | | |||||
* | | Merge branch 'v0.19.x' | Max Kellermann | 2014-12-26 | 1 | -0/+9 |
|\| | |||||
| * | 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. | ||||
* | | | TagId3: add "pure" attributes | Max Kellermann | 2014-12-02 | 1 | -1/+4 |
| | | | |||||
* | | | Compiler.h: add macro CLANG_OR_GCC_VERSION() | Max Kellermann | 2014-11-28 | 2 | -2/+2 |
| | | | |||||
* | | | ApeTag: drop support for non-standard tag "album artist" | Max Kellermann | 2014-11-25 | 1 | -1/+0 |
| | | | | | | | | | | | | | | | | | | This was used by proprietary software. MPD adopted it a few years ago, which turns out to be a mistake, because it now creates problems for some MPD users (http://bugs.musicpd.org/view.php?id=4168). | ||||
* | | | configure.ac: add macro MPD_ENABLE_AUTO_PKG_LIB | Max Kellermann | 2014-11-22 | 1 | -1/+1 |
|/ / | |||||
* | | 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". |