6b469f1c26
Add Locale class to deal with differently specified languages/countries
...
Different media/tag formats specify languages and countries
differently. This change introduces a Locale class to keep track
of the format being used. So far there are no automatic conversions
implemented so it is entirely up to the user to pass valid values using
a format which matches the one required by the media/tag format.
This change also adds support for Matroska's IETF elements so at least the
raw value can be read, written and is preserved.
2020-12-16 17:48:08 +01:00
e7ce9e7ced
Improve documentation
2020-11-05 19:52:09 +01:00
6c8f237087
Show warning when reading/writing ID3v2 frames not matching the tag version
2020-04-22 19:48:27 +02:00
0af4044a50
Remove deprecated functions of Id3v2Frame
2019-06-16 17:43:58 +02:00
5ad00a083c
Adapt to changes in c++utilities
2019-06-10 23:11:39 +02:00
a4665456d6
Fix warnings in Id3v2Frame
2019-06-01 22:26:16 +02:00
69c72909e8
Fix some Doxygen warnings
2019-06-01 15:07:48 +02:00
c17db5f2f6
Apply cmake-format and clang-format
2019-05-04 21:03:09 +02:00
7efa7a0d5a
Adapt to c++utilities v5
2019-05-04 16:04:21 +02:00
dbce74444a
Deprecate unused methods in Id3v2Frame
2019-02-13 21:44:19 +01:00
e93a7c53b3
Fix warnings in ID3v2Frame
2019-02-13 21:43:56 +01:00
3d3bc94e39
Prevent warning "Cannot make an empty frame"
2019-02-13 20:19:46 +01:00
f1382bd286
Make message about empty frames only a warning
...
Empty frames don't cause any trouble in general. They only
*might* indicate that something went wrong.
2018-11-15 22:09:10 +01:00
a775ee61a2
Remove debug messages that the padding has been reached
...
This is true for most MP3 files and therefore not really helpful.
2018-11-15 22:07:07 +01:00
8d89954cd3
Remove frameIdString()
2018-07-12 12:34:38 +02:00
1a97d91b27
Preserve multiple strings in ID3v2 text frames
2018-07-12 12:34:38 +02:00
f27dbd8934
Update documentation
2018-07-09 12:42:14 +02:00
d64084ec78
Refactor formatting list of values
2018-07-01 22:11:34 +02:00
943123afa1
Warn about ID3v2 text frame with multiple strings
...
First step to support multiple strings within ID3v2 text
frame.
See
* https://github.com/Martchus/tagparser/issues/10
* https://github.com/Martchus/tageditor/issues/38
2018-07-01 02:04:29 +02:00
3265e0bea4
Fix documentation which was still using the old namespace
2018-06-03 20:38:32 +02:00
a065412d98
Add support for disk position in ID3v2.0
2018-06-02 23:08:38 +02:00
0a640c9f7f
Fix warnings, mostly about implicit int conversions
...
This should fix all non-erros, leaving only warnings which
are indeed potential problems.
The following warnings should be safe to ignore:
* Conversions of various offsets from uint64 to
std::streamoff/int64 are safe because such offsets have
been obtained via tellg() and other functions
returning std::streamoff in the first place.
* It also works vice-versa since tellg() should not
return negative offsets with exceptions enabled.
* Conversions from char to unsigned char are also ok.
* Unused diag arguments can be ignored (those might be
useful later).
* Annotate all intended fallthoughs.
2018-06-02 23:04:53 +02:00
404e4f751f
Improve comments and accessing the value in Id3v2FrameMaker
2018-06-02 19:34:07 +02:00
710b7b420a
Prevent writing float/e-notation to Id3v2 duration field
2018-06-02 19:31:39 +02:00
878b3a3c4e
Make diag msg on conversion error in Id3v2FrameMaker more specific
2018-06-02 19:29:43 +02:00
047e9f7fd0
ID3v2: Warn if specified string is no valid position
2018-05-31 00:23:01 +02:00
ca0b8e4d8c
Improve coding style
2018-03-11 22:28:15 +01:00
59024a66a0
Don't clear field before parsing by default
2018-03-11 22:27:12 +01:00
b35fc2ff0d
Improve some structure layouts
2018-03-11 16:14:42 +01:00
0215b89057
Improve Id3v2Frame
2018-03-11 16:03:22 +01:00
c0336ed4bb
Apply clang-format
2018-03-07 01:17:50 +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
7a02e8a325
Uniform/simplify typedefs in templates
...
* Begin type names with capital letter
* Remove typedefs for implementation type
* Remove useless/obsolete comments
* Simplify relevant code
2018-03-06 22:44:01 +01:00
6a62ef7fc2
Fix typo
2018-01-29 16:33:55 +01:00
f65b90885a
Improve coding style
2017-10-09 21:49:04 +02:00
6b705d5652
Mind encoding when converting TagValue to pos
2017-06-03 21:00:26 +02:00
0d39a70b5f
Improve making picture/comment frames
2017-05-29 14:05:15 +02:00
8f5f61c85e
Fix finding termination in ID3v2 description
...
This check is only to prevent writing bad frame
when given description contains termination
2017-05-21 00:09:09 +02:00
e925e15533
Improve handling of Unicode and BOM in ID3v2
...
* Convert UTF-8 text fields automatically to UTF-16
when version is ID3v2.3 or below
-> so conversion from ID3v2.4 to ID3v2.3 or below
doesn't require manual conversion of possibly
UTF-8 encoded fields
* Don't use magic numbers for ID3v2 encoding byte
* Don't warn about UTF-16 Big Endian with BOM
2017-05-20 23:34:45 +02:00
23e84886d4
Id3v2Frame: Write BOM explicitely
...
* Instead of leaving this up to the application
* So the BOM isn't missing anymore when using
CLI of Tag Editor
2017-05-18 02:27:08 +02:00
c3394acdb2
Fix typos
2017-03-01 18:21:00 +01:00
424b238539
Make context static const where possible
2017-02-06 18:53:09 +01:00
add833f87f
Fix conversion of ID3v2 length frame using UTF-16
2017-02-05 22:51:27 +01:00
b97192abd3
Use std::make_unique provided by C++14
2017-02-05 21:02:40 +01:00
541f14039b
Make use of string builder
2017-01-27 18:59:22 +01:00
1ddaa4f693
Fix indentation in id3v2frame.cpp
2016-11-13 23:57:59 +01:00
633d68f4c9
Ensure parseWideString() returns host byte order
2016-11-13 23:56:49 +01:00
1e17bf47d3
Fix size calculation of ID3v2.2 frames
2016-08-05 01:30:46 +02:00
7e058f289c
Improve API doc
2016-06-15 22:53:39 +02:00