1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<title>GnomeScanBackend</title>
6
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
7
<link rel="start" href="index.html" title="Gnome Scan Reference Manual">
8
<link rel="up" href="backend.html" title="Writing Backend">
9
<link rel="prev" href="GnomeScanModule.html" title="GnomeScanModule">
10
<link rel="next" href="GnomeScanner.html" title="GnomeScanner">
11
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
12
<link rel="stylesheet" href="style.css" type="text/css">
13
<link rel="part" href="core.html" title="Part I. Gnome Scan Core Reference">
14
<link rel="chapter" href="setup.html" title="Using Gnome Scan">
15
<link rel="chapter" href="extends.html" title="Extending For Application">
16
<link rel="part" href="internals.html" title="Part II. Gnome Scan Internals">
17
<link rel="chapter" href="backend.html" title="Writing Backend">
18
<link rel="index" href="symbols.html" title="Index">
19
<link rel="index" href="hierarchy.html" title="Object Hierarchy">
20
<link rel="index" href="gallery.html" title="Widget Gallery">
22
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
23
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
25
<td><a accesskey="p" href="GnomeScanModule.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
26
<td><a accesskey="u" href="backend.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
27
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
28
<th width="100%" align="center">Gnome Scan Reference Manual</th>
29
<td><a accesskey="n" href="GnomeScanner.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
31
<tr><td colspan="5" class="shortcuts"><nobr><a href="#GnomeScanBackend.synopsis" class="shortcut">Top</a>
33
<a href="#GnomeScanBackend.description" class="shortcut">Description</a>
35
<a href="#GnomeScanBackend.object-hierarchy" class="shortcut">Object Hierarchy</a>
37
<a href="#GnomeScanBackend.signals" class="shortcut">Signals</a></nobr></td></tr>
39
<div class="refentry" lang="en">
40
<a name="GnomeScanBackend"></a><div class="titlepage"></div>
41
<div class="refnamediv"><table width="100%"><tr>
43
<h2><span class="refentrytitle"><a name="GnomeScanBackend.top_of_page"></a>GnomeScanBackend</span></h2>
44
<p>GnomeScanBackend — Probe scanners</p>
46
<td valign="top" align="right"></td>
48
<div class="refsynopsisdiv">
49
<a name="GnomeScanBackend.synopsis"></a><h2>Synopsis</h2>
50
<pre class="synopsis">
51
<a class="link" href="GnomeScanBackend.html#GnomeScanBackend-struct" title="GnomeScanBackend">GnomeScanBackend</a>;
52
<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a>* <a class="link" href="GnomeScanBackend.html#gnome-scan-backend-new" title="gnome_scan_backend_new ()">gnome_scan_backend_new</a> (<a
53
href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
54
>GType</a> backend_type);
55
void <a class="link" href="GnomeScanBackend.html#gnome-scan-backend-probe-scanners" title="gnome_scan_backend_probe_scanners ()">gnome_scan_backend_probe_scanners</a> (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend);
56
void <a class="link" href="GnomeScanBackend.html#gnome-scan-backend-add-scanner" title="gnome_scan_backend_add_scanner ()">gnome_scan_backend_add_scanner</a> (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
57
<a class="link" href="GnomeScanner.html" title="GnomeScanner">GnomeScanner</a> *scanner);
58
void <a class="link" href="GnomeScanBackend.html#gnome-scan-backend-remove-scanner" title="gnome_scan_backend_remove_scanner ()">gnome_scan_backend_remove_scanner</a> (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
59
<a class="link" href="GnomeScanner.html" title="GnomeScanner">GnomeScanner</a> *scanner);
60
void <a class="link" href="GnomeScanBackend.html#gnome-scan-backend-probe-done" title="gnome_scan_backend_probe_done ()">gnome_scan_backend_probe_done</a> (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend);
63
<div class="refsect1" lang="en">
64
<a name="GnomeScanBackend.object-hierarchy"></a><h2>Object Hierarchy</h2>
65
<pre class="synopsis">
67
href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
72
<div class="refsect1" lang="en">
73
<a name="GnomeScanBackend.signals"></a><h2>Signals</h2>
74
<pre class="synopsis">
75
"<a class="link" href="GnomeScanBackend.html#GnomeScanBackend-probe-done" title='The "probe-done" signal'>probe-done</a>" : Run Last
76
"<a class="link" href="GnomeScanBackend.html#GnomeScanBackend-scanner-added" title='The "scanner-added" signal'>scanner-added</a>" : Run Last
77
"<a class="link" href="GnomeScanBackend.html#GnomeScanBackend-scanner-removed" title='The "scanner-removed" signal'>scanner-removed</a>" : Run First
80
<div class="refsect1" lang="en">
81
<a name="GnomeScanBackend.description"></a><h2>Description</h2>
83
In Gnome Scan, the so called "backend" is only responsible to probe
84
devices. In fact, the scanner is only responsible to detect scanner
85
plug and unplug and trigger signal about that. Probing is just a
86
way to add already plugged scanner just like adding a hotplugged
90
The backend itseld does not maintain a public list of scanner, it's
91
up to the UI to maintain a list of scanner (e.g. through a
93
href="/usr/share/gtk-doc/html/gtk/GtkListStore.html"
94
><span class="type">GtkListStore</span></a>).
97
<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a> is the base class for real backend. If you want
98
to instanciate all backends, just initialize all <span class="type">GnomeScanModules</span>
99
and instanciate each <a
100
href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#g-type-children"
101
><code class="function">g_type_children()</code></a> of <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>.</p>
106
<div class="refsect1" lang="en">
107
<a name="GnomeScanBackend.details"></a><h2>Details</h2>
108
<div class="refsect2" lang="en">
109
<a name="GnomeScanBackend-struct"></a><h3>GnomeScanBackend</h3>
110
<pre class="programlisting">typedef struct _GnomeScanBackend GnomeScanBackend;</pre>
112
The <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a> is only responsible to probe scanners,
113
emitting signal on scanner plug or unplug. Ideally, most of the
114
acquisition work is done through <a class="link" href="GnomeScanner.html" title="GnomeScanner"><span class="type">GnomeScanner</span></a>.</p>
120
<div class="refsect2" lang="en">
121
<a name="gnome-scan-backend-new"></a><h3>gnome_scan_backend_new ()</h3>
122
<pre class="programlisting"><a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a>* gnome_scan_backend_new (<a
123
href="/usr/share/gtk-doc/html/gobject/gobject-Type-Information.html#GType"
124
>GType</a> backend_type);</pre>
126
Instanciate a new backend of type <em class="parameter"><code>type</code></em>. It check wether <em class="parameter"><code>type</code></em> is a
127
child type of <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>.</p>
131
<div class="variablelist"><table border="0">
132
<col align="left" valign="top">
135
<td><p><span class="term"><em class="parameter"><code>backend_type</code></em> :</span></p></td>
136
<td> the top level backend GType
140
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
141
<td> a new <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>.
148
<div class="refsect2" lang="en">
149
<a name="gnome-scan-backend-probe-scanners"></a><h3>gnome_scan_backend_probe_scanners ()</h3>
150
<pre class="programlisting">void gnome_scan_backend_probe_scanners (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend);</pre>
152
Trigger probe. Ideally called in a new thread through <a
153
href="/usr/share/gtk-doc/html/glib/glib-Threads.html#g-thread-create"
154
><code class="function">g_thread_create()</code></a>.
158
href="/usr/share/gtk-doc/html/glib/glib-Threads.html#g-thread-create"
159
><code class="function">g_thread_create()</code></a></p>
163
<div class="variablelist"><table border="0">
164
<col align="left" valign="top">
166
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
167
<td> a <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
173
<div class="refsect2" lang="en">
174
<a name="gnome-scan-backend-add-scanner"></a><h3>gnome_scan_backend_add_scanner ()</h3>
175
<pre class="programlisting">void gnome_scan_backend_add_scanner (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
176
<a class="link" href="GnomeScanner.html" title="GnomeScanner">GnomeScanner</a> *scanner);</pre>
178
This function is used by child class to trigger
179
<a class="link" href="GnomeScanBackend.html#GnomeScanBackend-scanner-added" title='The "scanner-added" signal'><span class="type">"scanner-added"</span></a> signal.</p>
183
<div class="variablelist"><table border="0">
184
<col align="left" valign="top">
187
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
188
<td> a <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
192
<td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
193
<td> a new <a class="link" href="GnomeScanner.html" title="GnomeScanner"><span class="type">GnomeScanner</span></a>
200
<div class="refsect2" lang="en">
201
<a name="gnome-scan-backend-remove-scanner"></a><h3>gnome_scan_backend_remove_scanner ()</h3>
202
<pre class="programlisting">void gnome_scan_backend_remove_scanner (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
203
<a class="link" href="GnomeScanner.html" title="GnomeScanner">GnomeScanner</a> *scanner);</pre>
205
Trigger <a class="link" href="GnomeScanBackend.html#GnomeScanBackend-scanner-removed" title='The "scanner-removed" signal'><span class="type">"scanner-removed"</span></a> upon <em class="parameter"><code>scanner</code></em>. This
206
function is to be used only by child class.</p>
210
<div class="variablelist"><table border="0">
211
<col align="left" valign="top">
214
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
215
<td> a <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
219
<td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
220
<td> a deprecated <a class="link" href="GnomeScanner.html" title="GnomeScanner"><span class="type">GnomeScanner</span></a>
227
<div class="refsect2" lang="en">
228
<a name="gnome-scan-backend-probe-done"></a><h3>gnome_scan_backend_probe_done ()</h3>
229
<pre class="programlisting">void gnome_scan_backend_probe_done (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend);</pre>
231
Trigger <a class="link" href="GnomeScanBackend.html#GnomeScanBackend-probe-done" title='The "probe-done" signal'><span class="type">"probe-done"</span></a> signal. Used by child class.</p>
235
<div class="variablelist"><table border="0">
236
<col align="left" valign="top">
238
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
239
<td> a <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
245
<div class="refsect1" lang="en">
246
<a name="GnomeScanBackend.signal-details"></a><h2>Signal Details</h2>
247
<div class="refsect2" lang="en">
248
<a name="GnomeScanBackend-probe-done"></a><h3>The <code class="literal">"probe-done"</code> signal</h3>
249
<pre class="programlisting">void user_function (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
251
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
252
>gpointer</a> user_data) : Run Last</pre>
254
This signal allow app to know if the backend has found a
255
scanner during probe. If the <a class="link" href="GnomeScanBackend.html#GnomeScanBackend-probe-done" title='The "probe-done" signal'><span class="type">"probe-done"</span></a>
256
signal is emitted and no <a class="link" href="GnomeScanBackend.html#GnomeScanBackend-scanner-added" title='The "scanner-added" signal'><span class="type">"scanner-added"</span></a>
257
signal has been sent, this mean that no scanner has been found
258
at all. Remember the backend does not handle a list of
259
<a class="link" href="GnomeScanner.html" title="GnomeScanner"><span class="type">GnomeScanner</span></a>.</p>
263
<div class="variablelist"><table border="0">
264
<col align="left" valign="top">
267
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
268
<td> the emitting <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
272
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
273
<td>user data set when the signal handler was connected.</td>
279
<div class="refsect2" lang="en">
280
<a name="GnomeScanBackend-scanner-added"></a><h3>The <code class="literal">"scanner-added"</code> signal</h3>
281
<pre class="programlisting">void user_function (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
282
<a class="link" href="GnomeScanner.html" title="GnomeScanner">GnomeScanner</a> *scanner,
284
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
285
>gpointer</a> user_data) : Run Last</pre>
287
This backend is triggered each time it discover a new scanner
288
during probe or on plug.</p>
292
<div class="variablelist"><table border="0">
293
<col align="left" valign="top">
296
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
297
<td> the emitting <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
301
<td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
302
<td> the newly added <a class="link" href="GnomeScanner.html" title="GnomeScanner"><span class="type">GnomeScanner</span></a>
306
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
307
<td>user data set when the signal handler was connected.</td>
313
<div class="refsect2" lang="en">
314
<a name="GnomeScanBackend-scanner-removed"></a><h3>The <code class="literal">"scanner-removed"</code> signal</h3>
315
<pre class="programlisting">void user_function (<a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend">GnomeScanBackend</a> *backend,
316
<a class="link" href="GnomeScanner.html" title="GnomeScanner">GnomeScanner</a> *scanner,
318
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
319
>gpointer</a> user_data) : Run First</pre>
321
This signal is emitted as a scanner is lost. Every reference to
322
this scanner must be removed.</p>
326
<div class="variablelist"><table border="0">
327
<col align="left" valign="top">
330
<td><p><span class="term"><em class="parameter"><code>backend</code></em> :</span></p></td>
331
<td> the emitting <a class="link" href="GnomeScanBackend.html" title="GnomeScanBackend"><span class="type">GnomeScanBackend</span></a>
335
<td><p><span class="term"><em class="parameter"><code>scanner</code></em> :</span></p></td>
336
<td> the scanner removed
340
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
341
<td>user data set when the signal handler was connected.</td>
350
Generated by GTK-Doc V1.10</div>