diff options
Diffstat (limited to 'tools/args.h')
-rw-r--r-- | tools/args.h | 78 |
1 files changed, 10 insertions, 68 deletions
diff --git a/tools/args.h b/tools/args.h index c05f37c..7d04ce3 100644 --- a/tools/args.h +++ b/tools/args.h @@ -8,13 +8,15 @@ // Helpers for parsing command line arguments. No include guard needed. +#include <inttypes.h> +#include <stdint.h> #include <stdio.h> #include <string.h> #include <string> #include <vector> -#include "lib/extras/color_hints.h" +#include "lib/extras/dec/color_hints.h" #include "lib/jxl/base/override.h" #include "lib/jxl/base/status.h" #include "lib/jxl/codec_in_out.h" // DecoderHints @@ -38,43 +40,6 @@ static inline bool ParseOverride(const char* arg, jxl::Override* out) { return JXL_FAILURE("Args"); } -static inline bool ParseUnsigned(const char* arg, size_t* out) { - char* end; - *out = static_cast<size_t>(strtoull(arg, &end, 0)); - if (end[0] != '\0') { - fprintf(stderr, "Unable to interpret as unsigned integer: %s.\n", arg); - return JXL_FAILURE("Args"); - } - return true; -} - -static inline bool ParseUint32(const char* arg, uint32_t* out) { - size_t value = 0; - bool ret = ParseUnsigned(arg, &value); - if (ret) *out = value; - return ret; -} - -static inline bool ParseSigned(const char* arg, int* out) { - char* end; - *out = static_cast<int>(strtol(arg, &end, 0)); - if (end[0] != '\0') { - fprintf(stderr, "Unable to interpret as signed integer: %s.\n", arg); - return JXL_FAILURE("Args"); - } - return true; -} - -static inline bool ParseFloat(const char* arg, float* out) { - char* end; - *out = static_cast<float>(strtod(arg, &end)); - if (end[0] != '\0') { - fprintf(stderr, "Unable to interpret as float: %s.\n", arg); - return JXL_FAILURE("Args"); - } - return true; -} - static inline bool ParseFloatPair(const char* arg, std::pair<float, float>* out) { int parsed = sscanf(arg, "%f,%f", &out->first, &out->second); @@ -89,18 +54,8 @@ static inline bool ParseFloatPair(const char* arg, return true; } -static inline bool ParseDouble(const char* arg, double* out) { - char* end; - *out = static_cast<double>(strtod(arg, &end)); - if (end[0] != '\0') { - fprintf(stderr, "Unable to interpret as double: %s.\n", arg); - return JXL_FAILURE("Args"); - } - return true; -} - static inline bool ParseAndAppendKeyValue(const char* arg, - jxl::ColorHints* out) { + jxl::extras::ColorHints* out) { const char* eq = strchr(arg, '='); if (!eq) { fprintf(stderr, "Expected argument as 'key=value' but received '%s'\n", @@ -114,40 +69,27 @@ static inline bool ParseAndAppendKeyValue(const char* arg, static inline bool ParsePredictor(const char* arg, jxl::Predictor* out) { char* end; - size_t p = static_cast<size_t>(strtoull(arg, &end, 0)); + uint64_t p = static_cast<uint64_t>(strtoull(arg, &end, 0)); if (end[0] != '\0') { fprintf(stderr, "Invalid predictor: %s.\n", arg); return JXL_FAILURE("Args"); } - if (p >= jxl::kNumModularPredictors) { - fprintf(stderr, "Invalid predictor value %zu, must be less than %zu.\n", p, - jxl::kNumModularPredictors); + if (p >= jxl::kNumModularEncoderPredictors) { + fprintf(stderr, + "Invalid predictor value %" PRIu64 ", must be less than %" PRIu64 + ".\n", + p, static_cast<uint64_t>(jxl::kNumModularEncoderPredictors)); return JXL_FAILURE("Args"); } *out = static_cast<jxl::Predictor>(p); return true; } -static inline bool ParseString(const char* arg, std::string* out) { - out->assign(arg); - return true; -} - static inline bool ParseCString(const char* arg, const char** out) { *out = arg; return true; } -static inline bool SetBooleanTrue(bool* out) { - *out = true; - return true; -} - -static inline bool SetBooleanFalse(bool* out) { - *out = false; - return true; -} - static inline bool IncrementUnsigned(size_t* out) { (*out)++; return true; |