gnome-scan r666 - in trunk: . modules/gsane
- From: bersace svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-scan r666 - in trunk: . modules/gsane
- Date: Fri, 12 Dec 2008 20:40:12 +0000 (UTC)
Author: bersace
Date: Fri Dec 12 20:40:12 2008
New Revision: 666
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=666&view=rev
Log:
Added handle_option abstract method.
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 Fri Dec 12 20:40:12 2008
@@ -26,17 +26,48 @@
struct _GSaneOptionHandlerPrivate
{
/* pointer to the SANE handle owned by the GSaneScanner */
- gpointer* handle;
+ SANE_Handle handle;
};
+GnomeScanOptionHint gsane_option_hint(const SANE_Option_Descriptor*desc)
+{
+ if (desc->cap & SANE_CAP_ADVANCED) {
+ return GNOME_SCAN_OPTION_HINT_SECONDARY;
+ }
+ else {
+ return GNOME_SCAN_OPTION_HINT_PRIMARY;
+ }
+}
+
+
GSaneOptionHandler*
-gsane_option_handler_new(GType type, gpointer* handle)
+gsane_option_handler_new(GType type, GnomeScanScanner* scanner, SANE_Handle handle)
{
GSaneOptionHandler *self = GSANE_OPTION_HANDLER(g_type_create_instance(type));
self->priv->handle = handle;
+ self->scanner = scanner;
return self;
}
+void
+gsane_option_handler_destroy(GSaneOptionHandler *self)
+{
+ g_type_free_instance((GTypeInstance*) self);
+}
+
+static void
+gsane_option_handler_do_handle_option(GSaneOptionHandler *self, SANE_Int n, const SANE_Option_Descriptor* desc, const gchar* group)
+{
+ g_warning("gsane_option_handler_handle_option not implemented by %s", g_type_name(G_TYPE_FROM_INSTANCE(self)));
+}
+
+void
+gsane_option_handler_handle_option(GSaneOptionHandler *self, SANE_Int n, const SANE_Option_Descriptor* desc, const gchar*group)
+{
+ GSANE_OPTION_HANDLER_GET_CLASS(self)->handle_option(self, n, desc, group);
+}
+
+
/* GType instance boiler plate code */
void
gsane_option_handler_instance_init(GTypeInstance *instance, gpointer g_class)
@@ -51,6 +82,7 @@
GSaneOptionHandlerClass *oh_class = GSANE_OPTION_HANDLER_CLASS(g_class);
g_type_class_add_private(g_class, sizeof(GSaneOptionHandlerPrivate));
oh_class->unique = FALSE;
+ oh_class->handle_option = gsane_option_handler_do_handle_option;
}
GType
Modified: trunk/modules/gsane/gsane-option-handler.h
==============================================================================
--- trunk/modules/gsane/gsane-option-handler.h (original)
+++ trunk/modules/gsane/gsane-option-handler.h Fri Dec 12 20:40:12 2008
@@ -24,12 +24,15 @@
#include <glib-object.h>
#include <sane/sane.h>
+#include <gnome-scan-scanner.h>
+#include <gnome-scan-option.h>
G_BEGIN_DECLS
-#define GSANE_TYPE_OPTION_HANDLER (gsane_option_handler_get_type())
-#define GSANE_OPTION_HANDLER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GSANE_TYPE_OPTION_HANDLER, GSaneOptionHandler))
-#define GSANE_OPTION_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSANE_TYPE_OPTION_HANDLER, GSaneOptionHandlerClass))
+#define GSANE_TYPE_OPTION_HANDLER (gsane_option_handler_get_type())
+#define GSANE_OPTION_HANDLER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GSANE_TYPE_OPTION_HANDLER, GSaneOptionHandler))
+#define GSANE_OPTION_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSANE_TYPE_OPTION_HANDLER, GSaneOptionHandlerClass))
+#define GSANE_OPTION_HANDLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GSANE_TYPE_OPTION_HANDLER, GSaneOptionHandlerClass))
typedef struct _GSaneOptionHandlerClass GSaneOptionHandlerClass;
typedef struct _GSaneOptionHandler GSaneOptionHandler;
@@ -38,6 +41,8 @@
struct _GSaneOptionHandlerClass
{
GTypeClass parent_class;
+ void (*handle_option) (GSaneOptionHandler*self, SANE_Int n, const SANE_Option_Descriptor*desc, const gchar* group);
+
/* Whether the scanner must have a unique instance of the
option handler */
gboolean unique;
@@ -46,17 +51,20 @@
struct _GSaneOptionHandler
{
GTypeInstance parent_instance;
+ GnomeScanScanner* scanner;
+
+ /*< private >*/
GSaneOptionHandlerPrivate* priv;
};
-GType
-gsane_option_handler_get_type(void) G_GNUC_CONST;
+/* utils */
+GnomeScanOptionHint gsane_option_hint(const SANE_Option_Descriptor*desc);
-gint
-gsane_option_handler_get_int(GSaneOptionHandler handler, SANE_Int index);
+GSaneOptionHandler* gsane_option_handler_new(GType type, GnomeScanScanner *scanner, SANE_Handle handle);
+void gsane_option_handler_destroy(GSaneOptionHandler *self);
+void gsane_option_handler_handle_option(GSaneOptionHandler *self, SANE_Int n, const SANE_Option_Descriptor* desc, const gchar*group);
-gboolean
-gsane_option_handler_set_int(GSaneOptionHandler handler, SANE_Int index, gint value);
+GType gsane_option_handler_get_type(void) G_GNUC_CONST;
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]