tageditor/cli/mainfeatures.h

78 lines
3.9 KiB
C
Raw Permalink Normal View History

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>
#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 {
SetTagInfoArgs(CppUtilities::Argument &filesArg, CppUtilities::Argument &verboseArg, CppUtilities::Argument &pedanticArg);
2019-06-10 22:49:46 +02:00
CppUtilities::Argument &filesArg;
CppUtilities::Argument &verboseArg;
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;
CppUtilities::ConfigValueArgument preserveModificationTimeArg;
CppUtilities::ConfigValueArgument preserveMuxingAppArg;
CppUtilities::ConfigValueArgument preserveWritingAppArg;
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;
extern const char *const fieldNamesForSet;
extern int exitCode;
2019-06-10 22:49:46 +02:00
void applyGeneralConfig(const CppUtilities::Argument &timeSapnFormatArg);
void printFieldNames(const CppUtilities::ArgumentOccurrence &occurrence);
void displayFileInfo(const CppUtilities::ArgumentOccurrence &, const CppUtilities::Argument &filesArg, const CppUtilities::Argument &verboseArg,
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,
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,
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