Commit Graph

29 Commits

Author SHA1 Message Date
2fda0a505d Prevent showing warning about encoding wrongly when making ID3v1 fields
Due to the fallthrough the warning would be printed in any case when using
UTF-8 and not only if the BOM is actually written (as there are non-ASCII
characters). This problem became apparent when using the tageditor's CLI
with `--id3-init-on-create` to create an ID3v1 tag from ID3v2. Of course it
doesn't help if there are actually non-ASCII characters present.
2021-08-08 01:20:39 +02:00
a6ca3183b3 Fix reading empty ID3v1 fields 2021-05-09 12:15:00 +02:00
0a041f6ad2 Fix warnings 2021-03-20 21:26:25 +01:00
f21ac07da0 Get rid of deprecated fields 2021-02-01 17:11:08 +01:00
64d98f5530 Use std::string_view where it makes sense 2021-01-30 21:53:06 +01:00
aa23750307 Make many constructors explicit to avoid unintended implicit conversions 2020-12-05 20:48:57 +01:00
d26e594777 Deprecate 'Year' in favor of 'RecordDate' and 'ReleaseDate', fix handling in ID3v2
1. Convert TYER and related fields of old ID3v2 versions to the new TDRC
  field and only expose that via the generic accessors.
2. When writing an old ID3v2 tag, convert TDRC back to the old fields.
3. One can still manually unset the via 1. auto-populated TDRC to disable 2.
   and write the old fields directly. So the automatic handling does not
   reduce the flexibility of the library.
4. Deprecate 'Year'; it is replaced by the already existing 'RecordDate'
   which is now supposed to be used everywhere where 'Year' was used before
5. Introduce 'ReleaseDate' to support this field which is supported in
   ID3v2.4.0 and Matroska via the generic accessors.
6. Use ISO format when converting tag values of the type DateTime to/from
   string. This is closer to what's used in ID3v2 tags internally. (The
   library still allows the old format as fallback when parsing for
   compatibility.)
2020-04-24 23:15:13 +02:00
9a5c78b725 Don't consider UTF-8 an encoding which can be used in ID3v1
UTF-8 within ID3v1 is still supported relying on the presence of
the BOM. However, the library should not advise that to tag editing
clients.
2019-06-14 18:07:59 +02:00
c9e1dde70b Adapt to changes in c++utilities 2019-06-12 20:40:45 +02:00
5ad00a083c Adapt to changes in c++utilities 2019-06-10 23:11:39 +02:00
f042d216fd Do not completely refuse on UTF-8 in ID3v1
since it is apparently used by some software.

But
* Write at least a BOM so it can be interpreted later
  correctly as UTF-8
* Print a warning
* Keep proposing Latin-1

The tag editor should allow to configure which encoding
is used and whether the BOM is used and which encoding is
assumed when parsing a file.
2019-06-01 22:53:59 +02:00
f27dbd8934 Update documentation 2018-07-09 12:42:14 +02:00
3265e0bea4 Fix documentation which was still using the old namespace 2018-06-03 20:38:32 +02:00
bf7428d066 Fix warnings, improve coding style 2018-05-31 00:25:32 +02:00
38da0c796b ID1v1: Allow conversion from int/string to position 2018-05-31 00:21:54 +02:00
c0336ed4bb Apply clang-format 2018-03-07 01:17:50 +01:00
a0986ad4a9 Fix style issues 2018-03-07 01:11:42 +01:00
0e15c74103 Move everything into namespace TagParser 2018-03-06 23:09:15 +01:00
36511fcc13 Add progress feedback and diagnostics replacing status provider 2018-03-06 22:44:01 +01:00
138fa32f29 Restructure FieldMapBasedTag to use CRTP 2018-03-06 22:44:01 +01:00
e9166c19a5 Don't allow using UTF-8 in ID3v1 2016-12-21 00:41:53 +01:00
d5c8086230 Improve misc details 2016-08-05 01:46:31 +02:00
2c5d463a9f Improve API doc 2016-06-10 23:08:01 +02:00
899e2a97fe small improvements
- fixed some mostly ID3/MP3 related bugs
- added convenience methods/operators
2016-03-18 21:43:09 +01:00
ee09a50915 removed useless destructors 2015-12-21 18:35:47 +01:00
aa50c2d8b3 fixed includes 2015-09-06 19:57:33 +02:00
b1eb6faba6 fixed includes 2015-09-06 15:42:18 +02:00
8b91b41801 updated readme 2015-08-26 20:01:32 +02:00
033e313c74 First commit 2015-04-22 19:22:01 +02:00