From: Juerg Billeter Date: Thu, 6 Mar 2008 19:22:15 +0000 (+0000) Subject: add libftdi bindings, patch by Evan Nemerson X-Git-Tag: VALA_0_2_0~81 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e12dd86c9114d75944662bc7a22da615a30b8fa;p=platform%2Fupstream%2Fvala.git add libftdi bindings, patch by Evan Nemerson 2008-03-06 Juerg Billeter * vapi/Makefile.am, vapi/libftdi.deps, vapi/libftdi.vapi: add libftdi bindings, patch by Evan Nemerson svn path=/trunk/; revision=1105 --- diff --git a/ChangeLog b/ChangeLog index 1a1090f..afb6490 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-03-06 Jürg Billeter + + * vapi/Makefile.am, vapi/libftdi.deps, vapi/libftdi.vapi: + add libftdi bindings, patch by Evan Nemerson + 2008-03-05 Jürg Billeter * vala/valaclasstype.vala, vala/valadatatype.vala, diff --git a/vapi/Makefile.am b/vapi/Makefile.am index 7eb3748..3707022 100644 --- a/vapi/Makefile.am +++ b/vapi/Makefile.am @@ -77,6 +77,8 @@ dist_vapi_DATA = \ hildon-fm-2.vapi \ json-glib-1.0.vapi \ libbonoboui-2.0.vapi \ + libftdi.deps \ + libftdi.vapi \ libglade-2.0.deps \ libglade-2.0.vapi \ libgnome-2.0.vapi \ diff --git a/vapi/libftdi.deps b/vapi/libftdi.deps new file mode 100644 index 0000000..04fac9b --- /dev/null +++ b/vapi/libftdi.deps @@ -0,0 +1 @@ +libusb diff --git a/vapi/libftdi.vapi b/vapi/libftdi.vapi new file mode 100644 index 0000000..fa90868 --- /dev/null +++ b/vapi/libftdi.vapi @@ -0,0 +1,142 @@ +[CCode (cprefix = "ftdi_", lower_case_prefix = "ftdi_", cheader_filename = "ftdi.h,usb.h")] +namespace FTDI { + [CCode (cprefix = "TYPE_")] + enum ChipType { + AM, + BM, + 2232C + } + + [CCode (cprefix = "")] + enum ParityType { + NONE, + ODD, + EVEN, + MARK, + SPACE + } + + [CCode (cprefix = "STOP_")] + enum StopBitsType { + BIT_1, + BIT_15, + BIT_2 + } + + [CCode (cprefix = "")] + enum BitsType { + BITS_7, + BITS_8 + } + + [CCode (cprefix = "BITMODE_", cname = "ftdi_mpsse_mode")] + enum MPSSEMode { + RESET, + BITBANG, + MPSSE, + SYNCBB, + MCU, + OPTO, + CBUS + } + + [CCode (cprefix = "INTERFACE_")] + enum Interface { + ANY, + A, + B + } + + [CCode (cprefix = "SIO_")] + enum FlowControlType { + DISABLE_FLOW_CTRL, + RTS_CTS_HS, + DTR_DSR_HS, + XON_XOFF_HS + } + + [CCode (cname = "struct ftdi_device_list", cheader_filename = "usb.h", free_function = "ftdi_list_free2")] + public class DeviceList { + public DeviceList next; + public USB.Device * dev; + } + + [CCode (cname = "struct ftdi_eeprom")] + struct EEPROM { + public int vendor_id; + public int product_id; + public int self_powered; + public int remote_wakeup; + public int BM_type_chip; + public int in_is_isochronous; + public int out_is_isochronous; + public int suspend_pull_downs; + public int use_serial; + public int change_usb_version; + public int usb_version; + public int max_power; + public string manufacturer; + public string product; + public string serial; + } + + [CCode (cname = "struct ftdi_context", free_function = "ftdi_free", cprefix = "ftdi_")] + public class Context { + [CCode (cname = "ftdi_new")] + public Context (); + public int init (); + public void deinit (); + public int set_interface (Interface iface); + public void set_usbdev (USB.Device * usbdev); + public int usb_find_all (out DeviceList devlist, int vendor, int product); + [NoArrayLength] + public int usb_get_strings (USB.Device * usbdev, char[] manufacturer, int manufacturer_len, char[] description, int description_len, char[] serial, int serial_len); + public int usb_open_dev (USB.Device * usbdev); + public int usb_open (int vendor, int product); + public int usb_open_desc (int vendor, int product, string description, string serial); + public int usb_reset (); + public int usb_purge_buffers (); + public int usb_close (); + public int set_baudrate (int baudrate); + public int set_line_property (BitsType bits, StopBitsType sbit, ParityType parity); + [NoArrayLength] + public int write_data (uchar[] buf, int size); + public int write_data_set_chunksize (int chunksize); + public int write_data_get_chunksize (out int chunksize); + [NoArrayLength] + public int read_data (uchar[] buf, uint size); + public int read_data_set_chunksize (int chunksize); + public int read_data_get_chunksize (out int chunksize); + public int enable_bitbang (uchar bitmask); + public int disable_bitbang (); + public int set_bitmode (uchar bitmask, uchar mode); + public int read_pins (out uchar pins); + public int set_latency_timer (uchar latency); + public int get_latency_timer (out uchar latency); + public void eeprom_initdefaults (out EEPROM eeprom); + public weak string get_error_string (); + public int setflowctrl (FlowControlType flowctrl); + public int setdtr (int state); + public int setrts (int state); + + public USB.DeviceHandle usb_dev; + public int usb_read_timeout; + public int usb_write_timeout; + public ChipType type; + public int baudrate; + public uchar bitbang_enabled; + [NoArrayLength] + public uchar[] readbuffer; + public uint readbuffer_offset; + public uint readbuffer_remaining; + public uint readbuffer_chunksize; + public uint writebuffer_chunksize; + public int @interface; + public int index; + public int in_ep; + public int out_ep; + public uchar bitbang_mode; + [NoArrayLength] + public string error_str; + } +}