Commit Graph

27 Commits

Author SHA1 Message Date
Martchus 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
Martchus 4cc2dbd9e6 Use flags instead of tons of boolean fields in AbstractTrack 2020-12-16 17:48:08 +01:00
Martchus b2c02e9acc Fix childs -> children 2019-12-30 22:54:11 +01:00
Martchus a59a01cfe9 Prevent warning when adding album artist to MP4
Prevents "making MP4 tag field aART: It was not possible to
find an appropriate raw data type id. UTF-8 will be assumed."
2019-10-09 18:03:34 +02:00
Martchus 5ad00a083c Adapt to changes in c++utilities 2019-06-10 23:11:39 +02:00
Martchus 7efa7a0d5a Adapt to c++utilities v5 2019-05-04 16:04:21 +02:00
Martchus 3265e0bea4 Fix documentation which was still using the old namespace 2018-06-03 20:38:32 +02:00
Martchus 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
Martchus 59024a66a0 Don't clear field before parsing by default 2018-03-11 22:27:12 +01:00
Martchus c0336ed4bb Apply clang-format 2018-03-07 01:17:50 +01:00
Martchus 0e15c74103 Move everything into namespace TagParser 2018-03-06 23:09:15 +01:00
Martchus 36511fcc13 Add progress feedback and diagnostics replacing status provider 2018-03-06 22:44:01 +01:00
Martchus 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
Martchus ebcbe092a4 Reduce if-cascades in Mp4TagField 2017-09-14 19:33:49 +02:00
Martchus b97192abd3 Use std::make_unique provided by C++14 2017-02-05 21:02:40 +01:00
Martchus 541f14039b Make use of string builder 2017-01-27 18:59:22 +01:00
Martchus b4e167bd71 Ease dealing with native field IDs
In particular, this allow conversion from native field IDs
to readible string representation and vice verca
2017-01-23 00:25:53 +01:00
Martchus c272ec315b Fix setting encoding in TagValue::assignText()
* when no conversion should to be done
* also be more tolerant in TagValue::toString() when
  no encoding has been specified
2016-12-28 00:17:26 +01:00
Martchus f6d0f3a003 Improve handling of extended MP4 fields 2016-11-14 22:59:19 +01:00
Martchus bbafd16dcc Support FLAC in Ogg 2016-05-14 23:20:51 +02:00
Martchus 899e2a97fe small improvements
- fixed some mostly ID3/MP3 related bugs
- added convenience methods/operators
2016-03-18 21:43:09 +01:00
Martchus 6f0adce661 make use of padding when applying changes to MP3 files 2015-12-22 23:54:35 +01:00
Martchus 0c82c4c1fd allow precalculation of MP4 tag size 2015-12-10 13:50:46 +01:00
Martchus aa50c2d8b3 fixed includes 2015-09-06 19:57:33 +02:00
Martchus b1eb6faba6 fixed includes 2015-09-06 15:42:18 +02:00
Martchus 7106e8650b improved format detection 2015-06-12 02:35:50 +02:00
Martchus 033e313c74 First commit 2015-04-22 19:22:01 +02:00