Martchus
9f41c30443
Silence/fix GCC's maybe-uninitialized warnings
...
* The warning about `bsEnvCount` is actually correct.
* The warning about `lastAtomToBeWritten` might be correct.
* The warning about `relPos` is definitely unjustified because `relPos` is
only used when `cueRelativePositionElement` is not `nullptr` and `relPos`
is initialized in that case.
* The warnings about `pos`, `nextPageOffset` and `startOfLastMetaDataBlock`
are also wrong for similar reasons.
2023-10-31 20:05:13 +01:00
Martchus
72f56f4297
Set the OggIterator filter correctly when parsing tags
...
I suppose otherwise parsing will fail if there are multiple streams and the
tag spans multiple interleaved pages.
2022-05-03 23:52:18 +02:00
Martchus
5106d94f2a
Add Ogg stream serial number to tag target when parsing Vorbis comments
...
So the stream the Vorbis comment belongs to is shown in the tag editor GUI.
Otherwise it shouldn't change the behavior.
2022-05-03 23:50:20 +02:00
Martchus
5e3fa563e1
Fix warning about shadowing variable
2021-10-26 15:54:57 +02:00
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