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 Original line Diff line number Diff line
@@ -26,15 +26,15 @@


using namespace android;
using namespace android;


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


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


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


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


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


    return FILETYPE_UNKNOWN;
    return FileType::UNKNOWN;
}
}


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


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


    case FILETYPE_KEYLAYOUT: {
        case FileType::KEY_LAYOUT: {
            base::Result<std::shared_ptr<KeyLayoutMap>> ret = KeyLayoutMap::load(filename);
            base::Result<std::shared_ptr<KeyLayoutMap>> ret = KeyLayoutMap::load(filename);
            if (!ret) {
            if (!ret) {
                error("Error %s parsing key layout file.\n\n", ret.error().message().c_str());
                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;
            break;
        }
        }


    case FILETYPE_KEYCHARACTERMAP: {
        case FileType::KEY_CHARACTER_MAP: {
            base::Result<std::shared_ptr<KeyCharacterMap>> ret =
            base::Result<std::shared_ptr<KeyCharacterMap>> ret =
                    KeyCharacterMap::load(filename, KeyCharacterMap::Format::ANY);
                    KeyCharacterMap::load(filename, KeyCharacterMap::Format::ANY);
            if (!ret) {
            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;
                return false;
            }
            }
            break;
            break;
        }
        }


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


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