41 lines
791 B
C
41 lines
791 B
C
|
#pragma once
|
|||
|
|
|||
|
#include <string>
|
|||
|
#include "sane/sane_ex.h"
|
|||
|
#include "config.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(OPTSCHEME* schm);
|
|||
|
act_result apply(const SANE_Option_Descriptor* desc, int opt, const std::vector<OPTVAL>& vals);
|
|||
|
|
|||
|
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);
|
|||
|
bool apply_setting(OPTSCHEME* schm = nullptr);
|
|||
|
void set_online(bool online);
|
|||
|
void close(void);
|
|||
|
};
|