/* Copyright: © 2018 SIL International. Description: Implementation of the keyboard API functions using internal data structures and functions. Create Date: 1 Oct 2018 Authors: Tim Eves (TSE) History: 1 Sep 2018 - TSE - Initial implementation. 5 Oct 2018 - TSE - Refactor out adaptor and internal classes into keyboard.hpp */ #include #include #include #include #include #include #include #include #include #include #include "keyboard.hpp" #include "option.hpp" km_kbp_status km_kbp_keyboard_load(km_kbp_path_name kb_path, km_kbp_keyboard **keyboard) { assert(keyboard); if (!keyboard) return KM_KBP_STATUS_INVALID_ARGUMENT; auto stat = std::filesystem::status(kb_path); // // if (stat.type() != std::filesystem::file_type::regular) // return KM_KBP_STATUS_INVALID_ARGUMENT; *keyboard = static_cast(new km::kbp::keyboard(kb_path)); return KM_KBP_STATUS_OK; } void km_kbp_keyboard_dispose(km_kbp_keyboard *keyboard) { delete keyboard; } km_kbp_status km_kbp_keyboard_get_attrs(km_kbp_keyboard const *keyboard, km_kbp_keyboard_attrs const **out) { assert(keyboard); assert(out); if (!keyboard || !out) return KM_KBP_STATUS_INVALID_ARGUMENT; *out = keyboard; return KM_KBP_STATUS_OK; }