X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=ftdipp%2Fftdi.hpp;h=2ac4bc2d97d9c844ed0651bfca4433ed5774731d;hp=d56660d6acd2417109d9c08f89a16f042aad5d86;hb=f14f84d3ab33c785903e5b4fb615076f9cbcefad;hpb=6b22a0549318d1e7fba0c1d9e28c1acf7b94f8b0 diff --git a/ftdipp/ftdi.hpp b/ftdipp/ftdi.hpp index d56660d..2ac4bc2 100644 --- a/ftdipp/ftdi.hpp +++ b/ftdipp/ftdi.hpp @@ -79,13 +79,15 @@ public: /* Device manipulators */ bool is_open(); - int open(struct usb_device *dev = 0); - int open(int vendor, int product, const std::string& description = std::string(), const std::string& serial = std::string()); + int open(struct libusb_device *dev = 0); + int open(int vendor, int product); + int open(int vendor, int product, const std::string& description, const std::string& serial = std::string(), unsigned int index=0); + int open(const std::string& description); int close(); int reset(); int flush(int mask = Input|Output); int set_interface(enum ftdi_interface interface); - void set_usb_device(struct usb_dev_handle *dev); + void set_usb_device(struct libusb_device_handle *dev); /* Line manipulators */ int set_baud_rate(int baudrate); @@ -120,7 +122,8 @@ public: /* BitBang mode */ int set_bitmode(unsigned char bitmask, unsigned char mode); - int bitbang_enable(unsigned char bitmask); + int set_bitmode(unsigned char bitmask, enum ftdi_mpsse_mode mode); + int DEPRECATED(bitbang_enable(unsigned char bitmask)); int bitbang_disable(); int read_pins(unsigned char *pins); @@ -129,11 +132,12 @@ public: protected: int get_strings(); + int get_strings_and_reopen(); /* Properties */ struct ftdi_context* context(); void set_context(struct ftdi_context* context); - void set_usb_device(struct usb_device *dev); + void set_usb_device(struct libusb_device *dev); private: class Private; @@ -148,13 +152,14 @@ public: Eeprom(Context* parent); ~Eeprom(); - void init_defaults(); - void set_size(int size); - int size(unsigned char *eeprom, int maxsize); + int init_defaults(char *manufacturer, char* product, char * serial); int chip_id(unsigned int *chipid); int build(unsigned char *output); + int read(unsigned char *eeprom); int write(unsigned char *eeprom); + int read_location(int eeprom_addr, unsigned short *eeprom_val); + int write_location(int eeprom_addr, unsigned short eeprom_val); int erase(); private: @@ -172,27 +177,36 @@ public: static List* find_all(int vendor, int product); - /*! List size */ - int size(); - - /*! Append element */ - void push_back(const Context& element); - void append(const Context& element) - { push_back(element); } - - /*! Prepend element */ - void push_front(const Context& element); - void prepend(const Context& element) - { push_front(element); } - - /*! Clear list */ + /// List type storing "Context" objects + typedef std::list ListType; + /// Iterator type for the container + typedef ListType::iterator iterator; + /// Const iterator type for the container + typedef ListType::const_iterator const_iterator; + /// Reverse iterator type for the container + typedef ListType::reverse_iterator reverse_iterator; + /// Const reverse iterator type for the container + typedef ListType::const_reverse_iterator const_reverse_iterator; + + iterator begin(); + iterator end(); + const_iterator begin() const; + const_iterator end() const; + + reverse_iterator rbegin(); + reverse_iterator rend(); + const_reverse_iterator rbegin() const; + const_reverse_iterator rend() const; + + ListType::size_type size() const; + bool empty() const; void clear(); - /* Iterators */ - typedef std::list::iterator iterator; - std::list::iterator begin(); - std::list::iterator end(); + void push_back(const Context& element); + void push_front(const Context& element); + iterator erase(iterator pos); + iterator erase(iterator beg, iterator end); private: class Private;