pict
Documentation for pict is still a work-in-progress
 
Loading...
Searching...
No Matches
cl_backend.h
Go to the documentation of this file.
1
2#ifndef CL_BACKEND_H
3#define CL_BACKEND_H
4
9
10#define PTP_TIMEOUT 1000
11
14 struct PtpDeviceEntry *prev;
15
16 int id;
17 int vendor_id;
18 int product_id;
19
20 uint32_t endpoint_in;
21 uint32_t endpoint_out;
22 uint32_t endpoint_int;
23
24 char name[16];
25 char manufacturer[16];
26 void *device_handle_ptr;
27
28 struct PtpDeviceEntry *next;
29};
30
33int ptp_comm_init(struct PtpRuntime *r);
34
36void ptp_comm_deinit(struct PtpRuntime *r);
37
40struct PtpDeviceEntry *ptpusb_device_list(struct PtpRuntime *r);
41
44
47int ptp_device_open(struct PtpRuntime *r, struct PtpDeviceEntry *entry);
48
50int ptp_device_init(struct PtpRuntime *r);
51
53int ptp_cmd_write(struct PtpRuntime *r, void *to, unsigned int length);
55int ptp_cmd_read(struct PtpRuntime *r, void *to, unsigned int length);
56
58int ptp_device_reset(struct PtpRuntime *r);
59
61int ptp_send_packet(struct PtpRuntime *r, unsigned int length);
62
64int ptp_receive_all_packets(struct PtpRuntime *r);
65
67int ptp_read_int(struct PtpRuntime *r, void *to, unsigned int length);
68
70int ptp_device_close(struct PtpRuntime *r);
71
74int ptpip_connect(struct PtpRuntime *r, const char *addr, int port, int extra_tmout);
76int ptpip_cmd_write(struct PtpRuntime *r, void *data, unsigned int size);
78int ptpip_cmd_read(struct PtpRuntime *r, void *data, unsigned int size);
80int ptpip_connect_events(struct PtpRuntime *r, const char *addr, int port);
81int ptpip_event_send(struct PtpRuntime *r, void *data, unsigned int size);
82int ptpip_event_read(struct PtpRuntime *r, void *data, unsigned int size);
84int ptpip_device_close(struct PtpRuntime *r);
85
88
92int ptpusb_get_status(struct PtpRuntime *r);
93
95
96#endif
int ptp_send_packet(struct PtpRuntime *r, unsigned int length)
Send packets in r->data.
int ptp_device_reset(struct PtpRuntime *r)
Reset the USB endpoints if possible.
int ptpusb_get_status(struct PtpRuntime *r)
Get status of currently connected device This is a quick and cheap way to check if the connection is ...
int ptp_device_open(struct PtpRuntime *r, struct PtpDeviceEntry *entry)
Open and connect to a device from the PtpDeviceEntry structure.
int ptpip_connect_events(struct PtpRuntime *r, const char *addr, int port)
Connect PTP/IP event socket. Port depends on implementation.
void ptp_comm_deinit(struct PtpRuntime *r)
Deinits backend and frees all memory.
struct PtpDeviceEntry * ptpusb_device_list(struct PtpRuntime *r)
Get a linked list of USB or PTP Devices.
int ptp_device_init(struct PtpRuntime *r)
Connects to the first PTP device it finds.
int ptp_read_int(struct PtpRuntime *r, void *to, unsigned int length)
Poll the interrupt endpoint.
int ptp_device_close(struct PtpRuntime *r)
Disconnect from the current device.
void ptpusb_free_device_list_entry(void *)
Backend must implement this to free the device_handle_ptr field in each device entry.
int ptp_receive_all_packets(struct PtpRuntime *r)
Receive all packets into r->data.
int ptpip_cmd_write(struct PtpRuntime *r, void *data, unsigned int size)
Send data over the raw command endpoint for USB backend.
int ptpip_connect(struct PtpRuntime *r, const char *addr, int port, int extra_tmout)
Connect to a TCP port on the default network adapter.
void ptpusb_free_device_list(struct PtpDeviceEntry *e)
Frees the device entry linked list.
int ptpip_cmd_read(struct PtpRuntime *r, void *data, unsigned int size)
Receive raw data over the command endpoint for USB backend.
int ptp_cmd_read(struct PtpRuntime *r, void *to, unsigned int length)
Receive raw data over the command endpoint for USB backend.
int ptp_cmd_write(struct PtpRuntime *r, void *to, unsigned int length)
Send data over the raw command endpoint for USB backend.
int ptpip_device_close(struct PtpRuntime *r)
Disconnect from a PTP/IP device.
int ptp_comm_init(struct PtpRuntime *r)
Initializes backend context.
Linked-list entry for a single USB device.
Definition cl_backend.h:13