Martchus
e277070e9c
Use `std::filesystem` in backup helper code
...
* Fix applying changes to symlinks so that the target is modified in any
case (and not just if a rewrite isn't necessary)
* Avoid using `std::rename` and `std::remove` because they might not work
under Windows when the path contains non-ASCII characters
* Simplify code, remove `isRelative()`
2021-09-11 23:54:49 +02:00
Martchus
ee9aeb00b4
Write zero lacing value in Ogg header if Vorbis comment size divisible by 255
...
See https://github.com/Martchus/tageditor/issues/70
2021-08-16 19:22:15 +02:00
Martchus
18d4a5e8de
Allow aborting Ogg parsing
2021-08-15 23:33:01 +02:00
Martchus
10f781951c
Allow aborting Ogg writing
2021-08-15 23:31:20 +02:00
Martchus
7341f53c12
Fix warnings about implicit cast
2021-08-15 21:25:41 +02:00
Martchus
c1ecc03617
Use if-else instead of try-catch when finding track for Ogg page
2021-08-14 13:50:44 +02:00
Martchus
617e36f27c
Add more details in warning about missing Ogg pages
2021-08-14 13:49:55 +02:00
Martchus
0b0127aab7
Prevent warning about missing Ogg pages when skipping pages for all streams
2021-08-14 13:49:37 +02:00
Martchus
dd2b75d845
Try to re-sync Ogg parser when invalid bytes are detected
2021-08-14 13:42:08 +02:00
Martchus
c9f6ae77e2
Emit progress information while applying changes to Ogg file
2021-08-13 21:00:14 +02:00
Martchus
6cd16dcdfc
Ensure `currentParams` is set before dereferencing when applying OGG changes
2021-08-13 20:41:30 +02:00
Martchus
339995edf5
Prevent dropping Ogg pages which have been omitten during parsing when applying changes
...
See https://github.com/Martchus/tageditor/issues/69
2021-08-13 20:41:30 +02:00
Martchus
b11869f837
Fix saving Ogg files when path is using URL scheme `file://`
2021-08-13 18:11:21 +02:00
Jonas Kvinge
ea23d71e8a
Fix spelling and typos
2021-07-02 11:12:39 +02:00
Martchus
65597fd71e
Add API to allow aborting overall/expensive parsing functions
...
* Not really implemented within the various code paths of the parsers at
this point; this commit mainly adds the API.
* Adjust example in README
2021-02-04 23:21:50 +01:00
Martchus
64d98f5530
Use std::string_view where it makes sense
2021-01-30 21:53:06 +01:00
Martchus
7043c3d2a9
Don't suppress IO errors when writing files
...
* Close or flush streams explicitely so writing is not
deferred
* to catch errors in the right place
* to avoid suppressing errors completely when writing
would be deferred to the destructor invocation
* Improve comments
2019-12-15 19:43:16 +01:00
Martchus
5ad00a083c
Adapt to changes in c++utilities
2019-06-10 23:11:39 +02:00
Martchus
c17db5f2f6
Apply cmake-format and clang-format
2019-05-04 21:03:09 +02:00
Martchus
3288d49d62
Support 'file://' URLs also when saving
2019-05-04 16:04:37 +02:00
Martchus
7efa7a0d5a
Adapt to c++utilities v5
2019-05-04 16:04:21 +02:00
Martchus
a87ad5f5ec
Don't use global variable for backup directory
2018-07-12 12:34:38 +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
d856fb4c75
Use std::numeric_limits
2018-03-21 20:40:51 +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
568f876b34
Improve performance when parsing big OGG files
...
by skipping pages in the middle (unless a full parse
is forced).
Additionally, the size of the tracks is now determined
on container-level which makes handling the skipping
easier.
2017-08-29 01:29:27 +02:00
Martchus
e9c923471b
Fix ambigious function call
2017-08-11 21:48:39 +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
477ac9884b
Use _wopen under Windows to support unicode filenames
2016-12-21 00:42:31 +01:00
Martchus
817a8e25e6
Improve documentation and consistency
2016-08-04 00:16:19 +02:00
Martchus
cf5b021180
Use workaround for GCC Bug 66145
2016-06-14 22:53:43 +02:00
Martchus
53f0903c3b
Add tests for FLAC files
2016-05-21 22:11:08 +02:00
Martchus
a84ac37dbe
Add support for raw FLAC streams
2016-05-16 20:56:53 +02:00
Martchus
bbafd16dcc
Support FLAC in Ogg
2016-05-14 23:20:51 +02:00
Martchus
6c6ab0e301
improved file handling
...
- don't override backup files
- allow saving files at a different location
- reduce code duplication for restoring backups
2016-05-01 20:02:44 +02:00
Martchus
6cce90b106
overall code cleanup
2016-04-24 22:10:45 +02:00
Martchus
b8e8dcd778
fixed some OGG/Vorbis related issues
2016-03-22 22:52:36 +01: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
240e7d0b42
support Opus in OGG
2016-01-17 19:32:58 +01:00
Martchus
ed10015b1a
fixed reset() methods
2015-10-06 22:39:18 +02: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
8b91b41801
updated readme
2015-08-26 20:01:32 +02:00
Martchus
033e313c74
First commit
2015-04-22 19:22:01 +02:00