pike.git
/
src
/
modules
/
SANE
/
sane.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/modules/SANE/sane.c:25:
#include "backend.h" #include "operators.h" #include "module_support.h" #include "builtin_functions.h" #include "../Image/image.h" /* must be included last */ #include "module_magic.h"
-
RCSID("$Id: sane.c,v 1.
8
2000
/
12
/
01
08
:
10
:
23
hubbe
Exp $");
+
RCSID("$Id: sane.c,v 1.
9
2001
/
07
/
21
00
:
54
:
31
nilsson
Exp $");
/* **! module SANE **! **! This module enables access to the SANE (Scanner Access Now Easy) **! library from pike **! **! note
-
**! $Id: sane.c,v 1.
8
2000
/
12
/
01
08
:
10
:
23
hubbe
Exp $
+
**! $Id: sane.c,v 1.
9
2001
/
07
/
21
00
:
54
:
31
nilsson
Exp $
*/ static int sane_is_inited; struct scanner { SANE_Handle h; }; static void init_sane()
pike.git/src/modules/SANE/sane.c:68:
} /* **! method array(mapping) list-scanners() **! **! Returns an array with all available scanners. **! **! Example: **! <pre>
-
**!
Pike v0.7 release 120 running Hilfe v2.0 (Incremental Pike Frontend)
+
**! Pike v0.7 release 120 running Hilfe v2.0 (Incremental Pike Frontend)
**! > SANE.list_scanners(); **! Result: ({ **! ([ **! "model":"Astra 1220S ", **! "name":"umax:/dev/scg1f", **! "type":"flatbed scanner", **! "vendor":"UMAX " **! ]), **! ([ **! "model":"Astra 1220S ",
pike.git/src/modules/SANE/sane.c:214:
{ char *name; if(!sane_is_inited) init_sane(); get_all_args( "create", args, "%s", &name ); if( sane_open( name, &THIS->h ) ) Pike_error("Failed to open scanner \"%s\"\n", name ); } /*
-
**!
function
array(mapping) list_options(
)
+
**!
method
array(mapping) list_options()
*/ static void f_scanner_list_options( INT32 args ) { int i, n; const SANE_Option_Descriptor *d; pop_n_elems( args ); for( i = 1; (d = sane_get_option_descriptor( THIS->h, i) ); i++ ) push_option_descriptor( d ); f_aggregate( i-1 );
pike.git/src/modules/SANE/sane.c:242:
if(d->name && !strcmp( d->name, name ) ) { *p = d; return i; } Pike_error("No such option: %s\n", name ); } /*
-
**!
function
void set_option( string name, mixed new_value )
-
**!
function
void set_option( string name )
+
**!
method
void set_option( string name, mixed new_value )
+
**!
method
void set_option( string name )
**! If no value is specified, the option is set to it's default value */ static void f_scanner_set_option( INT32 args ) { char *name; int no; INT_TYPE int_value; FLOAT_TYPE float_value; SANE_Int tmp; const SANE_Option_Descriptor *d;
pike.git/src/modules/SANE/sane.c:291:
} else { int_value = 1; sane_control_option( THIS->h, no, SANE_ACTION_SET_AUTO, &int_value, &tmp ); } pop_n_elems( args ); push_int( 0 ); } /*
-
**!
function
mixed get_option( string name )
+
**!
method
mixed get_option( string name )
*/ static void f_scanner_get_option( INT32 args ) { char *name; int no; SANE_Int int_value; float f; SANE_Int tmp; const SANE_Option_Descriptor *d; get_all_args( "get_option", args, "%s", &name );
pike.git/src/modules/SANE/sane.c:332:
sane_control_option( THIS->h, no, SANE_ACTION_GET_VALUE, &name, &tmp ); pop_n_elems( args ); push_text( name ); case SANE_TYPE_GROUP: break; } } /*
-
**!
function
mapping(string:int) get_parameters(
)
+
**!
method
mapping(string:int) get_parameters()
*/ static void f_scanner_get_parameters( INT32 args ) { SANE_Parameters p; pop_n_elems( args ); sane_get_parameters( THIS->h, &p ); push_text( "format" ); push_int( p.format ); push_text( "last_frame" ); push_int( p.last_frame ); push_text( "lines" ); push_int( p.lines ); push_text( "depth" ); push_int( p.depth );
pike.git/src/modules/SANE/sane.c:414:
push_text( "Image.Image" ); APPLY_MASTER( "resolv", 1 ); image_program = program_from_svalue( sp - 1 ); sp--;/* Do not free image program.. */ } if( !image_program ) Pike_error("No Image.Image?!\n"); } /*
-
**!
function
Image.Image simple_scan(
)
+
**!
method
Image.Image simple_scan()
*/ static void f_scanner_simple_scan( INT32 args ) { SANE_Parameters p; SANE_Handle h = THIS->h; struct object *o; rgb_group *r; assert_image_program();
pike.git/src/modules/SANE/sane.c:469:
break; } } while( !p.last_frame ); THREADS_DISALLOW(); push_object( o ); } /*
-
**!
function
void row_scan(function(Image.Image,int,Scanner:void) callback)
+
**!
method
void row_scan(function(Image.Image,int,Scanner:void) callback)
*/ static void f_scanner_row_scan( INT32 args ) { SANE_Parameters p; SANE_Handle h = THIS->h; struct svalue *s; struct object *o; rgb_group *r, or; int i, nr;
pike.git/src/modules/SANE/sane.c:614:
set_read_callback( fd, 0, 0 ); free_object( c->o ); free_object( c->t ); free_svalue( &c->callback ); free( c->buffer ); free( c ); } } /*
-
**!
function
void nonblocking_row_scan(function(Image.Image,int,Scanner,int:void) callback)
+
**!
method
void nonblocking_row_scan(function(Image.Image,int,Scanner,int:void) callback)
*/ static void f_scanner_nonblocking_row_scan( INT32 args ) { SANE_Parameters p; SANE_Handle h = THIS->h; struct svalue *s; int fd; struct row_scan_struct *rsp; if( sane_start( THIS->h ) ) Pike_error("Start failed\n");