]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
open handler
authorBastian Dehn <hhaalo@arcor.de>
Sun, 18 Feb 2024 07:29:48 +0000 (08:29 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 18 Feb 2024 07:29:48 +0000 (08:29 +0100)
src/kds_s2000w_handler.c
src/kds_s2000w_handler.h
src/kds_s2000w_net.c

index 0f53ddc7852d60c7a1842f4aaa23ab8917f9a328..b74a3d40d4c96000d1d646fd12de446289904a8e 100644 (file)
@@ -165,9 +165,15 @@ void _get_current_scan_status()
        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;
@@ -222,7 +228,7 @@ current_state* kds_s2000w_handler_open()
        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)
index 81caaf2e43f7aaa72e5661480a05083af623578c..9f2c00b8d88b854790f5ee2215948d37cbe3a882 100644 (file)
@@ -29,8 +29,13 @@ typedef struct {
        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);
index 01f7d9fcc80527a3f1dcc7bd1e602bdbf9f79b45..78e42d6b72dd83fad1f2a61ff04107f9a5287e4b 100644 (file)
@@ -83,7 +83,7 @@ SANE_Status _sane_kds_s2000w_net_open(SANE_String_Const devicename,
        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;
 
@@ -98,7 +98,7 @@ void _sane_kds_s2000w_net_close(SANE_Handle handle)
 {
        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(
@@ -185,9 +185,9 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
                *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;
        }