Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
e66951a6
Kaydet (Commit)
e66951a6
authored
Eki 25, 2002
tarafından
Martin Hollmichel
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
add: sane.h, #104324#
üst
5bd40a79
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
219 additions
and
0 deletions
+219
-0
sane.h
sane/inc/sane.h
+213
-0
build.lst
sane/prj/build.lst
+3
-0
d.lst
sane/prj/d.lst
+3
-0
No files found.
sane/inc/sane.h
0 → 100644
Dosyayı görüntüle @
e66951a6
/* sane - Scanner Access Now Easy.
Copyright (C) 1997 David Mosberger-Tang and Andreas Beck
This file is part of the SANE package.
This file is in the public domain. You may use and modify it as
you see fit, as long as this copyright message is included and
that there is an indication as to what modifications have been
made (if any).
SANE is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
This file declares SANE application interface. See the SANE
standard for a detailed explanation of the interface. */
#ifndef sane_h
#define sane_h
#define SANE_CURRENT_MAJOR 0
#define SANE_VERSION_CODE(major, minor, build) \
( (((SANE_Word) (major) & 0xff) << 24) \
| (((SANE_Word) (minor) & 0xff) << 16) \
| (((SANE_Word) (build) & 0xffff) << 0))
#define SANE_VERSION_MAJOR(code) ((((SANE_Word)(code)) >> 24) & 0xff)
#define SANE_VERSION_MINOR(code) ((((SANE_Word)(code)) >> 16) & 0xff)
#define SANE_VERSION_BUILD(code) ((((SANE_Word)(code)) >> 0) & 0xffff)
#define SANE_FALSE 0
#define SANE_TRUE 1
typedef
unsigned
char
SANE_Byte
;
typedef
int
SANE_Word
;
typedef
SANE_Word
SANE_Bool
;
typedef
SANE_Word
SANE_Int
;
typedef
char
SANE_Char
;
typedef
SANE_Char
*
SANE_String
;
typedef
const
SANE_Char
*
SANE_String_Const
;
typedef
void
*
SANE_Handle
;
typedef
SANE_Word
SANE_Fixed
;
#define SANE_FIXED_SCALE_SHIFT 16
#define SANE_FIX(v) ((SANE_Word) ((v) * (1 << SANE_FIXED_SCALE_SHIFT)))
#define SANE_UNFIX(v) ((double)(v) / (1 << SANE_FIXED_SCALE_SHIFT))
typedef
enum
{
SANE_STATUS_GOOD
=
0
,
/* everything A-OK */
SANE_STATUS_UNSUPPORTED
,
/* operation is not supported */
SANE_STATUS_CANCELLED
,
/* operation was cancelled */
SANE_STATUS_DEVICE_BUSY
,
/* device is busy; try again later */
SANE_STATUS_INVAL
,
/* data is invalid (includes no dev at open) */
SANE_STATUS_EOF
,
/* no more data available (end-of-file) */
SANE_STATUS_JAMMED
,
/* document feeder jammed */
SANE_STATUS_NO_DOCS
,
/* document feeder out of documents */
SANE_STATUS_COVER_OPEN
,
/* scanner cover is open */
SANE_STATUS_IO_ERROR
,
/* error during device I/O */
SANE_STATUS_NO_MEM
,
/* out of memory */
SANE_STATUS_ACCESS_DENIED
/* access to resource has been denied */
}
SANE_Status
;
typedef
enum
{
SANE_TYPE_BOOL
=
0
,
SANE_TYPE_INT
,
SANE_TYPE_FIXED
,
SANE_TYPE_STRING
,
SANE_TYPE_BUTTON
,
SANE_TYPE_GROUP
}
SANE_Value_Type
;
typedef
enum
{
SANE_UNIT_NONE
=
0
,
/* the value is unit-less (e.g., # of scans) */
SANE_UNIT_PIXEL
,
/* value is number of pixels */
SANE_UNIT_BIT
,
/* value is number of bits */
SANE_UNIT_MM
,
/* value is millimeters */
SANE_UNIT_DPI
,
/* value is resolution in dots/inch */
SANE_UNIT_PERCENT
,
/* value is a percentage */
SANE_UNIT_MICROSECOND
/* value is micro seconds */
}
SANE_Unit
;
typedef
struct
{
SANE_String_Const
name
;
/* unique device name */
SANE_String_Const
vendor
;
/* device vendor string */
SANE_String_Const
model
;
/* device model name */
SANE_String_Const
type
;
/* device type (e.g., "flatbed scanner") */
}
SANE_Device
;
#define SANE_CAP_SOFT_SELECT (1 << 0)
#define SANE_CAP_HARD_SELECT (1 << 1)
#define SANE_CAP_SOFT_DETECT (1 << 2)
#define SANE_CAP_EMULATED (1 << 3)
#define SANE_CAP_AUTOMATIC (1 << 4)
#define SANE_CAP_INACTIVE (1 << 5)
#define SANE_CAP_ADVANCED (1 << 6)
#define SANE_CAP_ALWAYS_SETTABLE (1 << 7)
#define SANE_OPTION_IS_ACTIVE(cap) (((cap) & SANE_CAP_INACTIVE) == 0)
#define SANE_OPTION_IS_SETTABLE(cap) (((cap) & SANE_CAP_SOFT_SELECT) != 0)
#define SANE_INFO_INEXACT (1 << 0)
#define SANE_INFO_RELOAD_OPTIONS (1 << 1)
#define SANE_INFO_RELOAD_PARAMS (1 << 2)
typedef
enum
{
SANE_CONSTRAINT_NONE
=
0
,
SANE_CONSTRAINT_RANGE
,
SANE_CONSTRAINT_WORD_LIST
,
SANE_CONSTRAINT_STRING_LIST
}
SANE_Constraint_Type
;
typedef
struct
{
SANE_Word
min
;
/* minimum (element) value */
SANE_Word
max
;
/* maximum (element) value */
SANE_Word
quant
;
/* quantization value (0 if none) */
}
SANE_Range
;
typedef
struct
{
SANE_String_Const
name
;
/* name of this option (command-line name) */
SANE_String_Const
title
;
/* title of this option (single-line) */
SANE_String_Const
desc
;
/* description of this option (multi-line) */
SANE_Value_Type
type
;
/* how are values interpreted? */
SANE_Unit
unit
;
/* what is the (physical) unit? */
SANE_Int
size
;
SANE_Int
cap
;
/* capabilities */
SANE_Constraint_Type
constraint_type
;
union
{
const
SANE_String_Const
*
string_list
;
/* NULL-terminated list */
const
SANE_Word
*
word_list
;
/* first element is list-length */
const
SANE_Range
*
range
;
}
constraint
;
}
SANE_Option_Descriptor
;
typedef
enum
{
SANE_ACTION_GET_VALUE
=
0
,
SANE_ACTION_SET_VALUE
,
SANE_ACTION_SET_AUTO
}
SANE_Action
;
typedef
enum
{
SANE_FRAME_GRAY
,
/* band covering human visual range */
SANE_FRAME_RGB
,
/* pixel-interleaved red/green/blue bands */
SANE_FRAME_RED
,
/* red band only */
SANE_FRAME_GREEN
,
/* green band only */
SANE_FRAME_BLUE
/* blue band only */
}
SANE_Frame
;
typedef
struct
{
SANE_Frame
format
;
SANE_Bool
last_frame
;
SANE_Int
bytes_per_line
;
SANE_Int
pixels_per_line
;
SANE_Int
lines
;
SANE_Int
depth
;
}
SANE_Parameters
;
struct
SANE_Auth_Data
;
#define SANE_MAX_USERNAME_LEN 256
#define SANE_MAX_PASSWORD_LEN 256
typedef
void
(
*
SANE_Auth_Callback
)
(
SANE_String_Const
resource
,
SANE_Char
username
[
SANE_MAX_USERNAME_LEN
],
SANE_Char
password
[
SANE_MAX_PASSWORD_LEN
]);
extern
SANE_Status
sane_init
(
SANE_Int
*
version_code
,
SANE_Auth_Callback
authorize
);
extern
void
sane_exit
(
void
);
extern
SANE_Status
sane_get_devices
(
const
SANE_Device
***
device_list
,
SANE_Bool
local_only
);
extern
SANE_Status
sane_open
(
SANE_String_Const
devicename
,
SANE_Handle
*
handle
);
extern
void
sane_close
(
SANE_Handle
handle
);
extern
const
SANE_Option_Descriptor
*
sane_get_option_descriptor
(
SANE_Handle
handle
,
SANE_Int
option
);
extern
SANE_Status
sane_control_option
(
SANE_Handle
handle
,
SANE_Int
option
,
SANE_Action
action
,
void
*
value
,
SANE_Int
*
info
);
extern
SANE_Status
sane_get_parameters
(
SANE_Handle
handle
,
SANE_Parameters
*
params
);
extern
SANE_Status
sane_start
(
SANE_Handle
handle
);
extern
SANE_Status
sane_read
(
SANE_Handle
handle
,
SANE_Byte
*
data
,
SANE_Int
max_length
,
SANE_Int
*
length
);
extern
void
sane_cancel
(
SANE_Handle
handle
);
extern
SANE_Status
sane_set_io_mode
(
SANE_Handle
handle
,
SANE_Bool
non_blocking
);
extern
SANE_Status
sane_get_select_fd
(
SANE_Handle
handle
,
SANE_Int
*
fd
);
extern
SANE_String_Const
sane_strstatus
(
SANE_Status
status
);
#endif
/* sane_h */
sane/prj/build.lst
0 → 100644
Dosyayı görüntüle @
e66951a6
sa sane : solenv NULL
sa sane usr1 - all md_mkout NULL
sa sane\prj get - all md_prj NULL
sane/prj/d.lst
0 → 100644
Dosyayı görüntüle @
e66951a6
mkdir: %_DEST%\inc%_EXT%\external
mkdir: %_DEST%\inc%_EXT%\external\sane
hedabu: ..\inc\sane.h %_DEST%\inc%_EXT%\external\sane\sane.h
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment