#pragma once #include #include "sane/sane_ex.h" #include "cfg/gb_json.h" class sane_dev { SANE_Handle hdev_; bool offline_; std::string name_; std::string cfg_name_; enum act_result { ACT_RESULT_NO_NEED = 0, ACT_RESULT_FAILED, ACT_RESULT_SUCCESS, }; bool apply(gb::sane_config_schm* schm); public: sane_dev(); ~sane_dev(); public: std::string name(void); std::string current_configuration_name(void); bool is_online(void); SANE_Handle handle(void); bool open(const std::string& name); void set_online(bool online); void close(void); };