Max Kellermann
493f74d94d
tag/id3: convert path from "wchar_t*" to "char*" for error message
2015-11-06 09:20:18 +01:00
Max Kellermann
94f850a588
Merge tag 'v0.19.11'
2015-10-27 11:05:47 +01:00
Andreas Mair
bea5973e0c
Filter out this extra data and leading zeroes in "track" and "disc" tags.
2015-10-21 08:30:33 +02:00
Max Kellermann
205fba74cf
tag/ApeLoader: fix buffer overflow after unterminated key
2015-10-16 14:55:40 +02:00
Max Kellermann
356c829b76
util/StringView: new utility class
2015-09-30 22:21:46 +02:00
Max Kellermann
f0b58c6f24
db/UniqueTags, tag/Set, ...: use typedef tag_mask_t
2015-08-24 11:53:30 +02:00
Max Kellermann
f3661b19c0
tag/Settings: move typedef tag_mask_t to Mask.hxx
2015-08-24 11:40:25 +02:00
Max Kellermann
2f5106c97f
tag/Settings: convert to C++
2015-08-24 11:20:45 +02:00
Max Kellermann
0c19418e84
tag/Settings: convert to bit mask
2015-08-24 11:20:45 +02:00
Max Kellermann
60c077c790
tag/Settings: add function IsTagEnabled() wrapping access to ignore_tag_items[]
2015-08-24 11:20:45 +02:00
Max Kellermann
109b3700b5
Tag: include cleanup
2015-08-24 11:20:45 +02:00
Max Kellermann
58996b841a
config/Global: allow calling config_get_string() with one argument
...
default_value defaults to nullptr.
2015-06-26 08:06:40 +02:00
Max Kellermann
d5cfa6d4dc
TagId3: remove the "id3v1_encoding" setting
...
Drop support for misencoded tags. People should not be using ID3v1
anyway.
2015-06-26 00:15:24 +02:00
Max Kellermann
b31d171ae8
*: doxygen fixups
2015-03-17 11:21:43 +01:00
Max Kellermann
39c9669445
fs/Traits: add macro PATH_LITERAL()
2015-03-05 08:58:04 +01:00
Max Kellermann
ff2b427cc1
Merge tag 'v0.19.9'
2015-02-06 17:15:31 +01:00
Max Kellermann
b3fe3e8b3d
TagBuilder: allow adding duplicate tag types in Complement()
...
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().
2015-02-06 12:25:34 +01:00
Max Kellermann
25ebb427da
tag/Rva2: convert pointers to references
2015-02-04 15:57:32 +01:00
Max Kellermann
c5bde10b4f
tag/Rva2: rename struct rva2_data to CamelCase
2015-02-04 15:56:59 +01:00
Max Kellermann
e582e893cc
tag/Rva2: make enum rva2_channel strictly-typed
2015-02-04 15:56:01 +01:00
Max Kellermann
72e44d596f
tag/Format: add %iso8601%
2015-01-22 19:10:15 +01:00
Max Kellermann
1c3f5517fa
config/Option: convert to strictly-typed enum
2015-01-21 23:30:00 +01:00
Max Kellermann
e8debd2e45
output/recorder: dynamic file name
2015-01-14 22:03:26 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
412bedb697
Merge branch 'v0.19.x'
2014-12-26 14:40:32 +01:00
Max Kellermann
940cab8620
Merge branch 'v0.18.x' into v0.19.x
2014-12-26 14:28:52 +01:00
Max Kellermann
53f4044890
util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compare
...
New in clang 3.6.
2014-12-26 13:43:32 +01:00
Max Kellermann
a66051216f
TagId3: add "pure" attributes
2014-12-02 22:17:47 +01:00
Max Kellermann
d93172bee8
Compiler.h: add macro CLANG_OR_GCC_VERSION()
2014-11-28 19:09:56 +01:00
Max Kellermann
83fd822e8b
ApeTag: drop support for non-standard tag "album artist"
...
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 ).
2014-11-25 17:07:08 +01:00
Max Kellermann
c643b6ff16
configure.ac: add macro MPD_ENABLE_AUTO_PKG_LIB
2014-11-22 23:50:21 +01:00
Max Kellermann
b5ba94f1de
tag/Set: do AlbumArtist/Artist fallback only if AlbumArtist is not disabled
...
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.
2014-11-08 19:25:01 +01:00
Max Kellermann
c37f7abb79
TagString: use g_strndup() for unterminated string
...
Fixes buffer overflow bug.
2014-11-02 11:48:13 +01:00
Max Kellermann
666f700a93
TagString: implement fix_utf8() without GLib
2014-10-10 22:11:38 +02:00
Max Kellermann
b7a1954c33
TagString: return WritableBuffer<char>
2014-10-10 22:07:19 +02:00
Max Kellermann
6520589a37
TagString: use strndup() for unterminated string
...
Fixes buffer overflow bug.
2014-10-10 22:06:48 +02:00
Max Kellermann
f445b0178a
TagString: remove ISO-Latin-1 fallback
...
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-10-10 20:53:08 +02:00
Max Kellermann
3560dc4be6
Tag: support "AlbumSort"
...
The new tag is supported by all decoders that use the tag name table,
and the ID3v2 tag "TSOA" maps to it.
2014-09-29 18:55:59 +02:00
Wieland Hoffmann
5525ea45a4
Add MusicBrainz' Release Track Id tag
...
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-27 19:54:12 +02:00
Max Kellermann
8a7ff6a6fd
decoder/flac: move code to tag/MixRamp.cxx
2014-09-24 22:44:58 +02:00
Max Kellermann
6c48aa5fae
decoder/mad: move code to tag/MixRamp.cxx
2014-09-24 22:40:34 +02:00
Max Kellermann
441f9cc2ee
tag/ReplayGain: add VorbisComment parser
...
Move code from the Vorbis and FLAC decoder plugins.
2014-09-24 22:21:13 +02:00
Max Kellermann
9f4fc8ad33
tag/ReplayGain: move code to template function
2014-09-24 22:19:55 +02:00
Max Kellermann
d1e31261fe
decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxx
2014-09-24 21:50:42 +02:00
Max Kellermann
05dd9acba8
tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxx
2014-09-24 21:50:34 +02:00
Max Kellermann
3158955198
TagHandler: pass SongTime to duration()
2014-08-29 22:52:04 +02:00
Max Kellermann
7c25d83f1c
Tag: use SignedSongTime for the song duration
2014-08-29 13:20:58 +02:00
Max Kellermann
be36c0769a
TagId3: fix printf string parameter
2014-07-30 22:02:46 +02:00
Max Kellermann
7a1f3177c9
util/Cast: reimplement as template without macro
2014-07-14 16:24:07 +02:00
Max Kellermann
41a7203c28
Tag: add class const_iterator and methods begin(), end()
...
Enables using range-based "for".
2014-07-12 17:22:39 +02:00