From f213efe55b3693e97eb03919819a0db5445cbb16 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 18 Feb 2024 08:29:48 +0100 Subject: [PATCH] open handler --- src/kds_s2000w_handler.c | 10 ++++++++-- src/kds_s2000w_handler.h | 9 +++++++-- src/kds_s2000w_net.c | 8 ++++---- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 0f53ddc..b74a3d4 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -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) diff --git a/src/kds_s2000w_handler.h b/src/kds_s2000w_handler.h index 81caaf2..9f2c00b 100644 --- a/src/kds_s2000w_handler.h +++ b/src/kds_s2000w_handler.h @@ -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); diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 01f7d9f..78e42d6 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -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; } -- 2.39.5