2015-04-22 19:33:53 +02:00
|
|
|
#ifndef MAINFEATURES_H
|
|
|
|
#define MAINFEATURES_H
|
|
|
|
|
2015-11-28 00:20:49 +01:00
|
|
|
#include <c++utilities/application/argumentparser.h>
|
|
|
|
|
2022-05-21 13:06:34 +02:00
|
|
|
#define EXIT_IO_FAILURE (EXIT_FAILURE + 1)
|
|
|
|
#define EXIT_PARSING_FAILURE (EXIT_FAILURE + 2)
|
|
|
|
|
2019-06-10 22:49:46 +02:00
|
|
|
namespace CppUtilities {
|
2015-04-22 19:33:53 +02:00
|
|
|
class Argument;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Cli {
|
|
|
|
|
2018-03-07 01:18:01 +01:00
|
|
|
struct SetTagInfoArgs {
|
2023-04-25 23:16:15 +02:00
|
|
|
SetTagInfoArgs(CppUtilities::Argument &filesArg, CppUtilities::Argument &verboseArg, CppUtilities::Argument &pedanticArg);
|
2019-06-10 22:49:46 +02:00
|
|
|
CppUtilities::Argument &filesArg;
|
|
|
|
CppUtilities::Argument &verboseArg;
|
2023-04-25 23:16:15 +02:00
|
|
|
CppUtilities::Argument &pedanticArg;
|
2021-05-27 18:56:42 +02:00
|
|
|
CppUtilities::ConfigValueArgument quietArg;
|
2019-06-10 22:49:46 +02:00
|
|
|
CppUtilities::ConfigValueArgument docTitleArg;
|
|
|
|
CppUtilities::ConfigValueArgument removeOtherFieldsArg;
|
|
|
|
CppUtilities::ConfigValueArgument treatUnknownFilesAsMp3FilesArg;
|
|
|
|
CppUtilities::ConfigValueArgument id3v1UsageArg;
|
|
|
|
CppUtilities::ConfigValueArgument id3v2UsageArg;
|
|
|
|
CppUtilities::ConfigValueArgument mergeMultipleSuccessiveTagsArg;
|
|
|
|
CppUtilities::ConfigValueArgument id3v2VersionArg;
|
|
|
|
CppUtilities::ConfigValueArgument id3InitOnCreateArg;
|
|
|
|
CppUtilities::ConfigValueArgument id3TransferOnRemovalArg;
|
|
|
|
CppUtilities::ConfigValueArgument encodingArg;
|
|
|
|
CppUtilities::ConfigValueArgument removeTargetArg;
|
|
|
|
CppUtilities::ConfigValueArgument addAttachmentArg;
|
|
|
|
CppUtilities::ConfigValueArgument updateAttachmentArg;
|
|
|
|
CppUtilities::ConfigValueArgument removeAttachmentArg;
|
|
|
|
CppUtilities::ConfigValueArgument removeExistingAttachmentsArg;
|
|
|
|
CppUtilities::ConfigValueArgument minPaddingArg;
|
|
|
|
CppUtilities::ConfigValueArgument maxPaddingArg;
|
|
|
|
CppUtilities::ConfigValueArgument prefPaddingArg;
|
|
|
|
CppUtilities::ConfigValueArgument tagPosValueArg;
|
|
|
|
CppUtilities::ConfigValueArgument forceTagPosArg;
|
|
|
|
CppUtilities::ConfigValueArgument tagPosArg;
|
|
|
|
CppUtilities::ConfigValueArgument indexPosValueArg;
|
|
|
|
CppUtilities::ConfigValueArgument forceIndexPosArg;
|
|
|
|
CppUtilities::ConfigValueArgument indexPosArg;
|
|
|
|
CppUtilities::ConfigValueArgument forceRewriteArg;
|
|
|
|
CppUtilities::ConfigValueArgument valuesArg;
|
|
|
|
CppUtilities::ConfigValueArgument outputFilesArg;
|
|
|
|
CppUtilities::ConfigValueArgument backupDirArg;
|
|
|
|
CppUtilities::ConfigValueArgument layoutOnlyArg;
|
2021-06-01 21:56:23 +02:00
|
|
|
CppUtilities::ConfigValueArgument preserveModificationTimeArg;
|
2023-08-09 23:05:28 +02:00
|
|
|
CppUtilities::ConfigValueArgument preserveMuxingAppArg;
|
|
|
|
CppUtilities::ConfigValueArgument preserveWritingAppArg;
|
2024-02-27 02:58:47 +01:00
|
|
|
CppUtilities::ConfigValueArgument preserveTotalFieldsArg;
|
2023-07-05 01:47:26 +02:00
|
|
|
CppUtilities::ConfigValueArgument jsArg;
|
2023-08-07 17:22:54 +02:00
|
|
|
CppUtilities::ConfigValueArgument jsSettingsArg;
|
2019-06-10 22:49:46 +02:00
|
|
|
CppUtilities::OperationArgument setTagInfoArg;
|
2015-11-28 00:20:49 +01:00
|
|
|
};
|
|
|
|
|
2016-07-04 23:28:11 +02:00
|
|
|
extern const char *const fieldNames;
|
2016-07-31 23:22:22 +02:00
|
|
|
extern const char *const fieldNamesForSet;
|
2022-05-21 13:06:34 +02:00
|
|
|
extern int exitCode;
|
2019-06-10 22:49:46 +02:00
|
|
|
void applyGeneralConfig(const CppUtilities::Argument &timeSapnFormatArg);
|
|
|
|
void printFieldNames(const CppUtilities::ArgumentOccurrence &occurrence);
|
2021-08-18 23:12:27 +02:00
|
|
|
void displayFileInfo(const CppUtilities::ArgumentOccurrence &, const CppUtilities::Argument &filesArg, const CppUtilities::Argument &verboseArg,
|
2023-04-25 23:16:15 +02:00
|
|
|
const CppUtilities::Argument &pedanticArg, const CppUtilities::Argument &validateArg);
|
2019-06-10 22:49:46 +02:00
|
|
|
void generateFileInfo(const CppUtilities::ArgumentOccurrence &, const CppUtilities::Argument &inputFileArg,
|
|
|
|
const CppUtilities::Argument &outputFileArg, const CppUtilities::Argument &validateArg);
|
2019-06-12 20:47:44 +02:00
|
|
|
void displayTagInfo(const CppUtilities::Argument &fieldsArg, const CppUtilities::Argument &showUnsupportedArg, const CppUtilities::Argument &filesArg,
|
2023-04-25 23:16:15 +02:00
|
|
|
const CppUtilities::Argument &verboseArg, const CppUtilities::Argument &pedanticArg);
|
2019-06-12 20:47:44 +02:00
|
|
|
void setTagInfo(const Cli::SetTagInfoArgs &args);
|
|
|
|
void extractField(const CppUtilities::Argument &fieldArg, const CppUtilities::Argument &attachmentArg, const CppUtilities::Argument &inputFilesArg,
|
2022-03-16 20:37:35 +01:00
|
|
|
const CppUtilities::Argument &outputFileArg, const CppUtilities::Argument &indexArg, const CppUtilities::Argument &verboseArg);
|
2019-06-12 20:47:44 +02:00
|
|
|
void exportToJson(const CppUtilities::ArgumentOccurrence &, const CppUtilities::Argument &filesArg, const CppUtilities::Argument &prettyArg);
|
2015-04-22 19:33:53 +02:00
|
|
|
|
2018-03-07 01:18:01 +01:00
|
|
|
} // namespace Cli
|
2015-04-22 19:33:53 +02:00
|
|
|
|
|
|
|
#endif // MAINFEATURES_H
|