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



Author: bersace
Date: Fri Dec 12 20:43:38 2008
New Revision: 667
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=667&view=rev

Log:
Use SANE_Value_Type for rules by type.

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

Modified: trunk/modules/gsane/gsane-option-manager.c
==============================================================================
--- trunk/modules/gsane/gsane-option-manager.c	(original)
+++ trunk/modules/gsane/gsane-option-manager.c	Fri Dec 12 20:43:38 2008
@@ -49,20 +49,30 @@
 }
 
 void
-gsane_option_manager_add_rule_by_type(GSaneOptionManager* self, GType value_type, GType handler_type)
+gsane_option_manager_add_rule_by_name(GSaneOptionManager* self, const gchar* name, GType handler_type)
 {
-	g_hash_table_insert(self->priv->type_rules, (gpointer) value_type, (gpointer) handler_type);
+	g_hash_table_insert(self->priv->type_rules, g_strdup(name), (gpointer)handler_type);
 }
 
 void
-gsane_option_manager_add_rule_by_name(GSaneOptionManager* self, const gchar* name, GType handler_type)
+gsane_option_manager_add_rule_by_type(GSaneOptionManager* self, SANE_Value_Type value_type, GType handler_type)
 {
-	g_hash_table_insert(self->priv->type_rules, g_strdup(name), (gpointer)handler_type);
+	g_hash_table_insert(self->priv->type_rules, (gpointer)value_type, (gpointer) handler_type);
 }
 
 GType
-gsane_option_manager_get_handler_type(GSaneOptionManager* self, SANE_Int n)
+gsane_option_manager_get_handler_type(GSaneOptionManager* self, const SANE_Option_Descriptor* desc)
 {
+	GType type = G_TYPE_INVALID;
+
+	type = (GType) g_hash_table_lookup(self->priv->name_rules, desc->name);
+	if (type != G_TYPE_INVALID)
+		return type;
+
+	type = (GType) g_hash_table_lookup(self->priv->type_rules, (gpointer)desc->type);
+	if (type != G_TYPE_INVALID)
+		return type;
+
 	return G_TYPE_INVALID;
 }
 
@@ -79,7 +89,7 @@
 	GSaneOptionManager *self = GSANE_OPTION_MANAGER(instance);
 	self->priv = GSANE_OPTION_MANAGER_GET_PRIVATE(instance);
 	self->priv->name_rules = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
-	self->priv->type_rules = g_hash_table_new(g_int_hash, g_int_equal);
+	self->priv->type_rules = g_hash_table_new(g_direct_hash, g_direct_equal);
 }
 
 GType

Modified: trunk/modules/gsane/gsane-option-manager.h
==============================================================================
--- trunk/modules/gsane/gsane-option-manager.h	(original)
+++ trunk/modules/gsane/gsane-option-manager.h	Fri Dec 12 20:43:38 2008
@@ -48,9 +48,9 @@
 
 GSaneOptionManager* gsane_option_manager_new(void);
 void gsane_option_manager_destroy(GSaneOptionManager *self);
-void gsane_option_manager_add_rule_by_type(GSaneOptionManager* self, GType value_type, GType handler_type);
+void gsane_option_manager_add_rule_by_type(GSaneOptionManager* self, SANE_Value_Type value_type, GType handler_type);
 void gsane_option_manager_add_rule_by_name(GSaneOptionManager* self, const gchar* name, GType handler_type);
-GType gsane_option_manager_get_handler_type(GSaneOptionManager* self, SANE_Int n);
+GType gsane_option_manager_get_handler_type(GSaneOptionManager* self, const SANE_Option_Descriptor* desc);
 GType gsane_option_manager_get_type(void) G_GNUC_CONST;
 
 G_END_DECLS



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