From 5338583c481f276b951b72aeb6e3468fc094b9f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 20 Nov 2023 14:27:48 +0800 Subject: [PATCH] Logo (Chafa): accept enum strings instead of numbers --- src/options/logo.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/options/logo.c b/src/options/logo.c index 292e5db2f..bc4e781f7 100644 --- a/src/options/logo.c +++ b/src/options/logo.c @@ -189,11 +189,36 @@ logoType: else if(strcasecmp(subKey, "symbols") == 0) ffOptionParseString(key, value, &options->chafaSymbols); else if(strcasecmp(subKey, "canvas-mode") == 0) - options->chafaCanvasMode = ffOptionParseUInt32(key, value); + { + options->chafaCanvasMode = (uint32_t) ffOptionParseEnum(key, value, (FFKeyValuePair[]) { + { "TRUECOLOR", 0 }, + { "INDEXED_256", 1 }, + { "INDEXED_240", 2 }, + { "INDEXED_16", 3 }, + { "FGBG_BGFG", 4 }, + { "FGBG", 5 }, + { "INDEXED_8", 6 }, + { "INDEXED_16_8", 7 }, + {}, + }); + } else if(strcasecmp(subKey, "color-space") == 0) - options->chafaColorSpace = ffOptionParseUInt32(key, value); + { + options->chafaColorSpace = (uint32_t) ffOptionParseEnum(key, value, (FFKeyValuePair[]) { + { "RGB", 0 }, + { "DIN99D", 1 }, + {}, + }); + } else if(strcasecmp(subKey, "dither-mode") == 0) - options->chafaDitherMode = ffOptionParseUInt32(key, value); + { + options->chafaDitherMode = (uint32_t) ffOptionParseEnum(key, value, (FFKeyValuePair[]) { + { "NONE", 0 }, + { "ORDERED", 1 }, + { "DIFFUSION", 2 }, + {}, + }); + } else return false; }