Commit Graph

197 Commits

Author SHA1 Message Date
Martchus df1c949f88 cli: Revamp `extract` to allow specifying index of value to extract 2022-03-16 20:37:35 +01:00
Martchus 7f1e234f36 Fix occurrences of wrong encoding handling with `std::filesystem` 2022-03-16 19:51:54 +01:00
Martchus 7ba63ad79f cli: Display at least MIME-type if field cannot be displayed as string 2022-03-16 19:38:51 +01:00
Martchus a21d91e716 Improve coding style in CLI code for parsing specified fields
* Use `std::string_view` instead of C-style strings and e.g. `strncmp`
* Use consistent coding style, e.g. for initialization
2022-01-01 21:15:22 +01:00
Martchus ef637cb361 Use more uniform coding style in `setTagInfo()` 2022-01-01 20:45:06 +01:00
Martchus 28691378ce Avoid creation of targets when relevat values are empty or when using relaxed matching 2022-01-01 20:44:42 +01:00
Martchus 4905aa96b4 Avoid copy when registering interrupt handler 2021-12-31 00:44:52 +01:00
Martchus 2c9be7c223 Fix parsing CLI argument "target-attachments" 2021-12-31 00:42:43 +01:00
Martchus dca5905744 Improve coding style in CLI code
* Use `std::string_view` instead of `const std::string &`
* Use `const` and `auto` where it makes sense
2021-12-31 00:41:56 +01:00
Martchus c71fde86ec Allow relaxed target matching 2021-12-31 00:40:36 +01:00
Martchus 34282ebbe9 Remove handling for comma-separated specifications of targets to remove 2021-12-31 00:35:42 +01:00
Martchus c753c2e1fd Remove unused variable 2021-12-05 17:52:55 +01:00
Martchus 43ebafe6dc Improve error message when trying to assign attachments to format not supporting it
See https://github.com/Martchus/tageditor/issues/74
2021-09-24 21:54:52 +02:00
Martchus fef97aa1db Allow specifying `--validate` flag when displaying file info 2021-08-18 23:12:27 +02:00
Martchus 33b346fb7e Improve error message when file for tag value not found 2021-08-14 14:23:08 +02:00
Martchus 9c1bd4c210 Avoid warning about implicit conversion 2021-07-03 23:53:20 +02:00
Martchus b4d1df8592 Fix typos found via `codespell --skip .git -w` 2021-07-03 19:38:36 +02:00
Martchus a9f3a607a3 Improve showing IO errors
* Make error messages and dialogs more consistent
* Print the actual error message (which might actually contain something
  useful when NativeFileStream is used)
2021-06-01 22:36:48 +02:00
Martchus 523971ad9d Suppress warning about cover type for ID3v1 tag when also an ID3v2 tag is present 2021-06-01 22:05:07 +02:00
Martchus 7ada28b06e cli: Allow preserving the modification time
See https://github.com/Martchus/tageditor/issues/66
2021-06-01 21:56:23 +02:00
Martchus 3203d4403e Apply clang-format 2021-05-27 18:56:53 +02:00
Martchus 9e0ce80c8c cli: Add --quiet flag to set operation 2021-05-27 18:56:42 +02:00
Martchus 53f0f02c72 Fix handling arbitrary files specified as field values
The container offset must not be used here as it may be garbage if the file
format is not recognized (e.g. if the file is an arbitrary text file).
2021-05-22 23:02:55 +02:00
Martchus 54093af53b Add missing include for std::optional 2021-05-22 22:59:52 +02:00
Martchus 5acb9d32ee Show the cover description within the CLI 2021-05-10 20:51:50 +02:00
Martchus 1944773022 Allow setting multiple covers of the same type but different descriptions
The standard actually says that there might be different covers with only
different descriptions:

    Description is a
    short description of the picture, represented as a terminated
    text string. There may be several pictures attached to one file, each
    in their individual "APIC" frame, but only one with the same content
    descriptor. There may only be one picture with the picture type
    declared as picture type $01 and $02 respectively.

I assume "content descriptor" means combination of the type and
description.

This is in accordance with eyeD3.

See https://github.com/Martchus/tageditor/issues/64#issuecomment-833952940
2021-05-10 20:51:15 +02:00
Martchus b56232c1f4 Fix printing cover field of non-ID3v2 tags 2021-04-28 17:48:29 +02:00
Martchus 41fb2069f3 Allow setting covers of special types with description via CLI
See https://github.com/Martchus/tageditor/issues/64
2021-04-28 00:57:57 +02:00
Martchus d31fd79e87 Adapt to changes in tagparser library 2021-04-23 22:18:30 +02:00
Martchus e535e20720 Fix warnings 2021-03-20 21:59:49 +01:00
Martchus 9fbb375924 Adapt to changes in tagparser (without making actually use of the new API) 2021-02-04 23:22:43 +01:00
Martchus 82d0834e75 Adapt to changes in tagparser 2021-02-02 11:02:30 +01:00
Martchus 7ed99a5035 Adapt to changes in tagparser 2021-02-01 17:11:48 +01:00
Martchus 670a9a1c91 Adapt to changes in tagparser 2021-01-30 21:57:09 +01:00
Martchus 06fd8c58d7 Fix invocation of write in interrupt handler 2021-01-30 21:54:59 +01:00
Martchus 0a7d05256c Adapt to changes in tagparser v10 2020-12-14 21:19:49 +01:00
Martchus d98b2612c0 Fix size for writing "Signal received" warning 2020-09-26 20:39:41 +02:00
Martchus bb4bb29ab9 Handle SIGTERM as well (in addition to SIGINT) when saving changes
* e.g. ffmpeg handles SIGTERM as well to finalize writing the file
* not tested yet
2020-06-02 17:19:09 +02:00
Martchus 01daa21305 Use 'RecordDate' instead of 'Year' field, add 'ReleaseDate' field 2020-04-24 23:26:40 +02:00
Martchus d3f84c4c39 Add conversion from ISO-639-2/B codes to language names 2019-08-17 20:58:14 +02:00
Martchus a5224d930d Apply clang-format 2019-08-13 00:35:04 +02:00
Martchus 9a37492a10 Use helper for flag enum class from c++utilities 2019-08-12 20:26:38 +02:00
Martchus 66a45f7578 Adapt to changes in c++utilities 2019-06-12 20:47:44 +02:00
Martchus 66c9250246 Adapt to changes in c++utilities 2019-06-10 22:49:46 +02:00
Martchus 3e7bdb3703 Add track to field to CLI help/completion 2019-05-18 21:50:04 +02:00
Martchus f4143a6eb1 Apply cmake-format and clang-format 2019-05-04 21:03:32 +02:00
Martchus 1691b9daa2 Adapt to c++utilities v5 2019-05-04 16:05:20 +02:00
Martchus f746c1b5ef Show total size, duration and bitrate in CLI 2019-03-10 16:34:04 +01:00
Martchus 1401b13f7f Fix warning when reading cover and use container offset 2019-02-13 21:40:17 +01:00
Martchus 74d05eede9 Fix specifying custom fields
* Fix support for Vorbis comment and add test case
* Consider only fields for the current format
  when displaying tags
2019-01-02 17:12:48 +01:00
Martchus dbc1c79f49 Support album artist and vendor 2019-01-01 23:44:28 +01:00
Martchus c0c413cddc Fix typo 2018-11-15 21:33:08 +01:00
Martchus 19b2cb0eb3 Show pixel/display size and PAR in CLI 2018-07-28 15:08:54 +02:00
Martchus 1bd4fed7a7 Replace typedef with using 2018-07-11 13:18:36 +02:00
Martchus c9d43c7931 Adapt to tagparser v8 2018-07-10 16:35:50 +02:00
Martchus b6ed69db8a Use constexpr AttachmentInfo and some helper 2018-07-10 14:12:26 +02:00
Martchus 53970fbf74 Fix TagParser namespace in documentation 2018-06-03 20:39:00 +02:00
Martchus 0b86408637 Fix specifying track number
The way to specify the track ID for setting meta-data on
track-level conflicted with the way to specify the track
number. The track ID is now specified via 'track-id='.

This breaks the CLI, however I see it as a bug that
'track=' worked for specifying the track ID so it should
be ok.
2018-05-31 00:32:30 +02:00
Martchus 4edeaa1ab2 Support showing unsupported fields when displaying tag info 2018-05-13 00:27:42 +02:00
Martchus a7bdc00112 Fix usage of enable_if with GCC 8
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.

Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:53:01 +02:00
Martchus 3411ee3eef Apply clang-format 2018-04-29 19:02:42 +02:00
Martchus 4f21442f39 Set writing application 2018-03-20 21:41:42 +01:00
Martchus 73fb412cfc Simplify creation of CLI arguments 2018-03-14 18:44:33 +01:00
Martchus e04b63d77d Colorize diag messages 2018-03-13 19:29:34 +01:00
Martchus 97518578b0 Reduce nesting in setTagInfo() 2018-03-13 19:21:12 +01:00
Martchus 1f4a79403e Turn most warnings into fatal errors 2018-03-13 19:20:41 +01:00
Martchus 99ef9643ee Parse everything in displayFileInfo()
Because displaying padding requires parsing the tags for
files with ID3 tags.
2018-03-11 19:05:45 +01:00
Martchus 4f53029a6e Refactor MediaFileInfo::createAppropriateTags() 2018-03-11 18:58:20 +01:00
Martchus 4b7d7a9499 Apply clang-format 2018-03-07 01:18:01 +01:00
Martchus c1a3e53dc9 Move tagparser to namespace TagParser 2018-03-06 23:10:13 +01:00
Martchus c2b2e4ac44 Adapt to new notification handling 2018-03-06 22:43:51 +01:00
Martchus 254b9b7661 Adapt to tagparser v7 2018-03-06 22:43:51 +01:00
Martchus 82ccb9b9f3 cli: Allow to set backup path 2018-02-20 21:36:55 +01:00
Martchus 5320ef0660 cli: Gather notifications also in the error case 2018-02-20 21:36:15 +01:00
Martchus 1a17bef9c2 Fix typo 2018-02-05 21:55:45 +01:00
Martchus 7848b285b6 Fix some warnings 2018-01-31 21:02:24 +01:00
Martchus 5254e6cdf9 Add --pretty flag to JSON export 2018-01-26 18:09:53 +01:00
Martchus ef08011167 Add #ifdef for JSON export include 2018-01-21 15:27:34 +01:00
Martchus 13d9bbf8d6 Fix include paths for reflective-rapidjson
So the paths match the actual install directory.
2018-01-20 21:16:15 +01:00
Martchus e3e9e40682 Fix error handling in JSON export 2018-01-20 00:59:50 +01:00
Martchus ae85f123f8 Export target info in a structured way 2018-01-19 23:43:54 +01:00
Martchus 01e57c86d6 Add JSON export 2018-01-15 01:08:36 +01:00
Martchus 3443729d16 Reset allTracks for following track modifier 2017-12-05 15:44:25 +01:00
Martchus d06004d01a cli: Improve help/auto-completion for track attributes 2017-12-05 15:21:59 +01:00
Martchus 79a8be22c5 cli: Parse on/off as boolean 2017-12-05 15:11:28 +01:00
Martchus 02586635b5 Add option to specify time span output format
See https://github.com/Martchus/tageditor/issues/27
2017-11-29 22:57:32 +01:00
Martchus 163abf3b02 Make use of escape codes configurable 2017-10-17 00:01:58 +02:00
Martchus b1b071aba8 Call only save functions (according to POSIX) in signal handler
It still uses some static variables. However, it seems to be
unproblematic.
2017-10-14 18:15:51 +02:00
Martchus 30f76b8d59 cli: Be sure pos is initialized 2017-10-09 21:35:16 +02:00
Martchus ec695373cf cli: Improve overall coding style
First step for further refactoring
2017-10-09 20:58:13 +02:00
Martchus 358b105b1b cli: Handle interrupt so setting tags is not force-canceled
This should prevent damaged files in case CTRL + C is used to
terminate the application during rewrite.
2017-10-09 19:25:01 +02:00
Martchus 7f7d5f22c7 cli: Clear current status after finalizing log 2017-10-09 19:03:54 +02:00
Martchus 41def42c71 cli: Use phrases also in helper 2017-10-09 19:02:28 +02:00
Martchus 4ce58426c0 cli: Catch correct exceptions when setting tags 2017-10-09 19:01:49 +02:00
Martchus f1de016b39 Move phrases for CLI to c++utilities 2017-09-26 15:25:24 +02:00
Martchus 5ffa9b7d2c Improve CLI
* Use formatting
* Use more consistent format
* Show track summary
2017-09-22 00:19:24 +02:00
Martchus 7400534d20 Use frame instead of sample count for video tracks 2017-06-27 00:37:56 +02:00
Martchus 6fb6d3dcbe Allow setting track meta-data 2017-06-17 00:45:08 +02:00
Martchus cbe6b800cd Warn when encoding not supported 2017-05-18 02:32:51 +02:00
Martchus 041b53101a Make definitions for gui support project specific 2017-04-27 22:10:55 +02:00