sleep(1);
}
-current_state* kds_s2000w_handler_open()
+current_state* kds_s2000w_handler_open(const char* devicename, void* handle)
{
debug_printf(ALL, "kds_s2000w_handler_open");
+ if (strcmp(devicename, "kds_s2000w_net")) {
+ handler* h = NULL;
+ h = malloc(sizeof(handler));
+ handle = h;
+ }
+
init_gamma_table();
image.size = 0;
image.data = NULL;
return state;
}
-void kds_s2000w_handler_close()
+void kds_s2000w_handler_close(void* handle)
{
debug_printf(ALL, "kds_s2000w_handler_close");
if (state == NULL || state->sessionid == 0)
void* image;
} metadata;
-current_state* kds_s2000w_handler_open();
-void kds_s2000w_handler_close();
+typedef struct {
+ long sessionid;
+ metadata current_metadata;
+} handler;
+
+current_state* kds_s2000w_handler_open(const char* devicename, void* handle);
+void kds_s2000w_handler_close(void* handle);
current_state* kds_s2000w_handler_current_state();
void kds_s2000w_handler_get_option(int option, void* value);
void kds_s2000w_handler_set_option(int option, void* value, int* info);
if (strcmp(devicename, "kds_s2000w_net") != 0)
return SANE_STATUS_INVAL;
- current_state* state = kds_s2000w_handler_open();
+ current_state* state = kds_s2000w_handler_open(devicename, handle);
if (state->state == BUSY)
return SANE_STATUS_DEVICE_BUSY;
{
debug_printf(ALL, "sane_kds_s2000w_net_close");
kds_s2000w_option_descriptor_free_option_descriptors();
- kds_s2000w_handler_close();
+ kds_s2000w_handler_close(handle);
}
const SANE_Option_Descriptor* _sane_kds_s2000w_net_get_option_descriptor(
*length = 0;
kds_s2000w_handler_stop_scan();
sleep(1);
- kds_s2000w_handler_close();
+ kds_s2000w_handler_close(handle);
sleep(1);
- kds_s2000w_handler_open();
+ kds_s2000w_handler_open("kds_s2000w_net", handle);
return SANE_STATUS_CANCELLED;
}