ae5efb6321430a33564249e264a0c3e9c290c6f2
[slipway.git] / src / com / ftdi / usb / ftdi.i
1 %module example
2 %{
3 #include "ftdi.h"
4 %}
5
6 %include<typemaps.i>
7 %include<arrays_java.i>
8
9 %inline %{
10 #include "ftdi.h"
11 struct ftdi_context *new_ftdi_context() {
12   return (struct ftdi_context*)malloc(sizeof(struct ftdi_context));
13 }
14 struct ftdi_eeprom *new_ftdi_eeprom() {
15   return (struct ftdi_eeprom*)malloc(sizeof(struct ftdi_eeprom));
16 }
17
18 %}
19
20
21 int ftdi_init(struct ftdi_context *ftdi);
22 /*
23 int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface interface);
24 */
25
26 void ftdi_deinit(struct ftdi_context *ftdi);
27 void ftdi_set_usbdev (struct ftdi_context *ftdi, usb_dev_handle *usbdev);
28     
29 int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist,
30                       int vendor, int product);
31 void ftdi_list_free(struct ftdi_device_list **devlist);
32     
33 int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product);
34 int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product,
35                        const char* description, const char* serial);
36 int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev);
37     
38 int ftdi_usb_close(struct ftdi_context *ftdi);
39 int ftdi_usb_reset(struct ftdi_context *ftdi);
40 int ftdi_usb_purge_buffers(struct ftdi_context *ftdi);
41
42 int ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate);
43
44 int ftdi_set_line_property(struct ftdi_context *ftdi, int bits,
45                            int sbit, int parity);
46
47 int ftdi_read_data(struct ftdi_context *ftdi, signed char buf[], int size);
48 int ftdi_read_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize);
49 int ftdi_read_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize);
50
51 int ftdi_write_data(struct ftdi_context *ftdi, signed char buf[], int size);
52 int ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize);
53 int ftdi_write_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize);
54
55 int ftdi_enable_bitbang(struct ftdi_context *ftdi, unsigned char bitmask);
56 int ftdi_disable_bitbang(struct ftdi_context *ftdi);
57 int ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned char mode);
58 int ftdi_read_pins(struct ftdi_context *ftdi, signed char pins[]);
59
60 int ftdi_setflowctrl(struct ftdi_context *ftdi, int flowctrl);
61
62 int ftdi_set_latency_timer(struct ftdi_context *ftdi, unsigned char latency);
63 int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency);
64
65 // init and build eeprom from ftdi_eeprom structure
66 void ftdi_eeprom_initdefaults(struct ftdi_eeprom *eeprom);
67 int  ftdi_eeprom_build(struct ftdi_eeprom *eeprom, signed char output[]);
68
69 // "eeprom" needs to be valid 128 byte eeprom (generated by the eeprom generator)
70 // the checksum of the eeprom is valided
71
72 int ftdi_read_eeprom(struct ftdi_context *ftdi, signed char eeprom[]);
73 int ftdi_write_eeprom(struct ftdi_context *ftdi, signed char eeprom[]);
74 int ftdi_erase_eeprom(struct ftdi_context *ftdi);