Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 781b1294 authored by Michael Wright's avatar Michael Wright
Browse files

Convert validatekeymaps to enum class

Test: compiles
Bug: 160010896
Change-Id: I4e582a442a267c2a35bea7a5d4fc7e080d281ecf
parent 00190af7
Loading
Loading
Loading
Loading
+52 −52
Original line number Diff line number Diff line
@@ -26,15 +26,15 @@

using namespace android;

static const char* kProgName = "validatekeymaps";
static const char* PROG_NAME = "validatekeymaps";
static bool gQuiet = false;

enum FileType {
    FILETYPE_UNKNOWN,
    FILETYPE_KEYLAYOUT,
    FILETYPE_KEYCHARACTERMAP,
    FILETYPE_VIRTUALKEYDEFINITION,
    FILETYPE_INPUTDEVICECONFIGURATION,
enum class FileType {
    UNKNOWN,
    KEY_LAYOUT,
    KEY_CHARACTER_MAP,
    VIRTUAL_KEY_DEFINITION,
    INPUT_DEVICE_CONFIGURATION,
};

static void log(const char* fmt, ...) {
@@ -57,33 +57,32 @@ static void error(const char* fmt, ...) {
static void usage() {
    error("Keymap Validation Tool\n\n");
    error("Usage:\n");
    error(
        " %s [-q] [*.kl] [*.kcm] [*.idc] [virtualkeys.*] [...]\n"
    error(" %s [-q] [*.kl] [*.kcm] [*.idc] [virtualkeys.*] [...]\n"
          "   Validates the specified key layouts, key character maps, \n"
          "   input device configurations, or virtual key definitions.\n\n"
          "   -q Quiet; do not write anything to standard out.\n",
        kProgName);
          PROG_NAME);
}

static FileType getFileType(const char* filename) {
    const char *extension = strrchr(filename, '.');
    if (extension) {
        if (strcmp(extension, ".kl") == 0) {
            return FILETYPE_KEYLAYOUT;
            return FileType::KEY_LAYOUT;
        }
        if (strcmp(extension, ".kcm") == 0) {
            return FILETYPE_KEYCHARACTERMAP;
            return FileType::KEY_CHARACTER_MAP;
        }
        if (strcmp(extension, ".idc") == 0) {
            return FILETYPE_INPUTDEVICECONFIGURATION;
            return FileType::INPUT_DEVICE_CONFIGURATION;
        }
    }

    if (strstr(filename, "virtualkeys.")) {
        return FILETYPE_VIRTUALKEYDEFINITION;
        return FileType::VIRTUAL_KEY_DEFINITION;
    }

    return FILETYPE_UNKNOWN;
    return FileType::UNKNOWN;
}

static bool validateFile(const char* filename) {
@@ -91,11 +90,11 @@ static bool validateFile(const char* filename) {

    FileType fileType = getFileType(filename);
    switch (fileType) {
    case FILETYPE_UNKNOWN:
        case FileType::UNKNOWN:
            error("Supported file types: *.kl, *.kcm, virtualkeys.*\n\n");
            return false;

    case FILETYPE_KEYLAYOUT: {
        case FileType::KEY_LAYOUT: {
            base::Result<std::shared_ptr<KeyLayoutMap>> ret = KeyLayoutMap::load(filename);
            if (!ret) {
                error("Error %s parsing key layout file.\n\n", ret.error().message().c_str());
@@ -104,17 +103,18 @@ static bool validateFile(const char* filename) {
            break;
        }

    case FILETYPE_KEYCHARACTERMAP: {
        case FileType::KEY_CHARACTER_MAP: {
            base::Result<std::shared_ptr<KeyCharacterMap>> ret =
                    KeyCharacterMap::load(filename, KeyCharacterMap::Format::ANY);
            if (!ret) {
            error("Error %s parsing key character map file.\n\n", ret.error().message().c_str());
                error("Error %s parsing key character map file.\n\n",
                      ret.error().message().c_str());
                return false;
            }
            break;
        }

    case FILETYPE_INPUTDEVICECONFIGURATION: {
        case FileType::INPUT_DEVICE_CONFIGURATION: {
            android::base::Result<std::unique_ptr<PropertyMap>> propertyMap =
                    PropertyMap::load(String8(filename));
            if (!propertyMap.ok()) {
@@ -125,7 +125,7 @@ static bool validateFile(const char* filename) {
            break;
        }

    case FILETYPE_VIRTUALKEYDEFINITION: {
        case FileType::VIRTUAL_KEY_DEFINITION: {
            std::unique_ptr<VirtualKeyMap> map = VirtualKeyMap::load(filename);
            if (!map) {
                error("Error while parsing virtual key definition file.\n\n");