code_app/app/scanner/sane_device.h

39 lines
656 B
C++

#pragma once
#include <string>
#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);
};