gnome-scan r749 - in trunk: . modules/gsane



Author: bersace
Date: Thu Dec 25 19:48:14 2008
New Revision: 749
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=749&view=rev

Log:
Silently support SANE int option as double.

Modified:
   trunk/ChangeLog
   trunk/modules/gsane/gsane-option-handler.c
   trunk/modules/gsane/gsane-option-handler.h

Modified: trunk/modules/gsane/gsane-option-handler.c
==============================================================================
--- trunk/modules/gsane/gsane-option-handler.c	(original)
+++ trunk/modules/gsane/gsane-option-handler.c	Thu Dec 25 19:48:14 2008
@@ -258,15 +258,37 @@
 gsane_option_handler_get_double(GSaneOptionHandler *self, const SANE_Option_Descriptor* desc, SANE_Int index, GError **error)
 {
 	SANE_Word value;
-	gsane_option_handler_control_option(self, desc, index, SANE_ACTION_GET_VALUE, &value, error);
-	return SANE_UNFIX(value);
+	switch(desc->type) {
+	case SANE_TYPE_INT:
+		return (gdouble) gsane_option_handler_get_int(self, desc, index, error);
+		break;
+	case SANE_TYPE_FIXED:
+		gsane_option_handler_control_option(self, desc, index, SANE_ACTION_GET_VALUE, &value, error);
+		return SANE_UNFIX(value);
+		break;
+	default:
+		g_warning("Trying to get double value on a non number option.");
+		return 0.0;
+		break;
+	}
 }
 
 gboolean
 gsane_option_handler_set_double(GSaneOptionHandler *self, const SANE_Option_Descriptor* desc, SANE_Int index, gdouble value, GError **error)
 {
-	SANE_Fixed fixed = SANE_FIX(value);
-	return gsane_option_handler_control_option(self, desc, index, SANE_ACTION_SET_VALUE, &fixed, error);
+	SANE_Fixed fixed;
+	switch(desc->type) {
+	case SANE_TYPE_INT:
+		return gsane_option_handler_set_int(self, desc, index, (gint) value, error);
+		break;
+	case SANE_TYPE_FIXED:
+		fixed = SANE_FIX(value);
+		return gsane_option_handler_control_option(self, desc, index, SANE_ACTION_SET_VALUE, &fixed, error);
+		break;
+	default:
+		g_warning("Trying to get double value from non number option.");
+		return FALSE;
+	}
 }
 
 

Modified: trunk/modules/gsane/gsane-option-handler.h
==============================================================================
--- trunk/modules/gsane/gsane-option-handler.h	(original)
+++ trunk/modules/gsane/gsane-option-handler.h	Thu Dec 25 19:48:14 2008
@@ -26,6 +26,7 @@
 #include <sane/sane.h>
 #include <gnome-scan-scanner.h>
 #include <gnome-scan-option.h>
+#include "gsane-common.h"
 
 G_BEGIN_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]