libgphoto2 photo camera library (libgphoto2) Internals  2.5.23
gphoto2-port-library.h
Go to the documentation of this file.
1 
24 #ifndef __GPHOTO2_PORT_LIBRARY_H__
25 #define __GPHOTO2_PORT_LIBRARY_H__
26 
28 #include <gphoto2/gphoto2-port.h>
29 
39 typedef struct _GPPortOperations {
40  int (*init) (GPPort *);
41  int (*exit) (GPPort *);
42  int (*open) (GPPort *);
43  int (*close) (GPPort *);
44  int (*read) (GPPort *, char *, int);
45  int (*check_int)(GPPort *, char *, int, int);
46  int (*write) (GPPort *, const char *, int);
47  int (*update) (GPPort *);
48 
49  /* Pointers to devices. Please note these are stubbed so there is
50  no need to #ifdef GP_PORT_* anymore. */
51 
52  /* for serial devices */
53  int (*get_pin) (GPPort *, GPPin, GPLevel*);
54  int (*set_pin) (GPPort *, GPPin, GPLevel);
55  int (*send_break)(GPPort *, int);
56  int (*flush) (GPPort *, int);
57 
58  /* for USB devices */
59  int (*find_device)(GPPort * dev, int idvendor, int idproduct);
60  int (*find_device_by_class)(GPPort * dev, int class, int subclass, int protocol);
61  int (*clear_halt) (GPPort * dev, int ep);
62  int (*msg_write) (GPPort * dev, int request, int value, int index,
63  char *bytes, int size);
64  int (*msg_read) (GPPort * dev, int request, int value, int index,
65  char *bytes, int size);
66  int (*msg_interface_write) (GPPort * dev, int request,
67  int value, int index, char *bytes, int size);
68  int (*msg_interface_read) (GPPort * dev, int request,
69  int value, int index, char *bytes, int size);
70  int (*msg_class_write) (GPPort * dev, int request,
71  int value, int index, char *bytes, int size);
72  int (*msg_class_read) (GPPort * dev, int request,
73  int value, int index, char *bytes, int size);
74 
75  /* For USB disk direct IO devices */
76  int (*seek) (GPPort * dev, int offset, int whence);
77 
78  /* For USB Mass Storage raw SCSI ports */
79  int (*send_scsi_cmd) (GPPort *port, int to_dev,
80  char *cmd, int cmd_size,
81  char *sense, int sense_size,
82  char *data, int data_size);
83 
84  int (*reset) (GPPort *);
85 
87 
88 typedef GPPortType (* GPPortLibraryType) (void);
89 typedef int (* GPPortLibraryList) (GPPortInfoList *list);
90 
91 typedef GPPortOperations *(* GPPortLibraryOperations) (void);
92 
93 /*
94  * If you want to write an io library, you need to implement the following
95  * functions. Everything else in your io library should be declared static.
96  */
97 
100 
102 
103 #endif /* __GPHOTO2_PORT_LIBRARY_H__ */
_GPPortOperations::msg_interface_read
int(* msg_interface_read)(GPPort *dev, int request, int value, int index, char *bytes, int size)
Definition: gphoto2-port-library.h:68
GPPortOperations
struct _GPPortOperations GPPortOperations
The port operations.
gp_port_library_list
int gp_port_library_list(GPPortInfoList *list)
_GPPortOperations::open
int(* open)(GPPort *)
Definition: gphoto2-port-library.h:42
_GPPortInfoList
Definition: gphoto2-port-info-list.c:74
_GPPortOperations::send_break
int(* send_break)(GPPort *, int)
Definition: gphoto2-port-library.h:55
_GPPortOperations::write
int(* write)(GPPort *, const char *, int)
Definition: gphoto2-port-library.h:46
_GPPortOperations::set_pin
int(* set_pin)(GPPort *, GPPin, GPLevel)
Definition: gphoto2-port-library.h:54
_GPPortOperations::msg_class_write
int(* msg_class_write)(GPPort *dev, int request, int value, int index, char *bytes, int size)
Definition: gphoto2-port-library.h:70
_GPPortOperations::msg_interface_write
int(* msg_interface_write)(GPPort *dev, int request, int value, int index, char *bytes, int size)
Definition: gphoto2-port-library.h:66
gphoto2-port.h
_GPPort
The GPhoto port structure.
Definition: gphoto2-port.h:143
_GPPortOperations::msg_write
int(* msg_write)(GPPort *dev, int request, int value, int index, char *bytes, int size)
Definition: gphoto2-port-library.h:62
_GPPortOperations::find_device_by_class
int(* find_device_by_class)(GPPort *dev, int class, int subclass, int protocol)
Definition: gphoto2-port-library.h:60
GPPortLibraryList
int(* GPPortLibraryList)(GPPortInfoList *list)
Definition: gphoto2-port-library.h:89
_GPPortOperations::close
int(* close)(GPPort *)
Definition: gphoto2-port-library.h:43
_GPPortOperations::reset
int(* reset)(GPPort *)
Definition: gphoto2-port-library.h:84
_GPPortOperations::msg_read
int(* msg_read)(GPPort *dev, int request, int value, int index, char *bytes, int size)
Definition: gphoto2-port-library.h:64
_GPPortOperations::find_device
int(* find_device)(GPPort *dev, int idvendor, int idproduct)
Definition: gphoto2-port-library.h:59
_GPPortOperations::msg_class_read
int(* msg_class_read)(GPPort *dev, int request, int value, int index, char *bytes, int size)
Definition: gphoto2-port-library.h:72
gp_port_library_operations
GPPortOperations * gp_port_library_operations(void)
_GPPortOperations::flush
int(* flush)(GPPort *, int)
Definition: gphoto2-port-library.h:56
GPLevel
enum _GPLevel GPLevel
Level to pull specific lines.
GPPin
enum _GPPin GPPin
Serial pins.
_GPPortOperations::init
int(* init)(GPPort *)
Definition: gphoto2-port-library.h:40
_GPPortOperations::seek
int(* seek)(GPPort *dev, int offset, int whence)
Definition: gphoto2-port-library.h:76
_GPPortOperations::read
int(* read)(GPPort *, char *, int)
Definition: gphoto2-port-library.h:44
gphoto2-port-info-list.h
GPPortLibraryType
GPPortType(* GPPortLibraryType)(void)
Definition: gphoto2-port-library.h:88
_GPPortOperations::check_int
int(* check_int)(GPPort *, char *, int, int)
Definition: gphoto2-port-library.h:45
gp_port_library_type
GPPortType gp_port_library_type(void)
_GPPortOperations::send_scsi_cmd
int(* send_scsi_cmd)(GPPort *port, int to_dev, char *cmd, int cmd_size, char *sense, int sense_size, char *data, int data_size)
Definition: gphoto2-port-library.h:79
_GPPortOperations::clear_halt
int(* clear_halt)(GPPort *dev, int ep)
Definition: gphoto2-port-library.h:61
_GPPortOperations::exit
int(* exit)(GPPort *)
Definition: gphoto2-port-library.h:41
_GPPortOperations::update
int(* update)(GPPort *)
Definition: gphoto2-port-library.h:47
_GPPortOperations
The port operations.
Definition: gphoto2-port-library.h:39
_GPPortOperations::get_pin
int(* get_pin)(GPPort *, GPPin, GPLevel *)
Definition: gphoto2-port-library.h:53
GPPortType
GPPortType
The gphoto port type.
Definition: gphoto2-port-info-list.h:34