cpp-wrapper: when using get-string-and-reopen method without having set up the usb...
[libftdi] / ftdipp / ftdi.cpp
index ed1d807..f1c1cef 100644 (file)
@@ -27,6 +27,7 @@ This exception does not invalidate any other reasons why a work based
 on this file might be covered by the GNU General Public License.
 */
 #include "ftdi.hpp"
+#include "ftdi_i.h"
 #include "ftdi.h"
 
 namespace Ftdi
@@ -271,16 +272,6 @@ int Context::set_error_char(unsigned char errorch, unsigned char enable)
     return ftdi_set_error_char(d->ftdi, errorch, enable);
 }
 
-int Context::bitbang_enable(unsigned char bitmask)
-{
-    return ftdi_set_bitmode(d->ftdi, bitmask, BITMODE_BITBANG);
-}
-
-int Context::bitbang_disable()
-{
-    return ftdi_disable_bitbang(d->ftdi);
-}
-
 int Context::set_bitmode(unsigned char bitmask, unsigned char mode)
 {
     return ftdi_set_bitmode(d->ftdi, bitmask, mode);
@@ -291,6 +282,11 @@ int Context::set_bitmode(unsigned char bitmask, enum ftdi_mpsse_mode mode)
     return ftdi_set_bitmode(d->ftdi, bitmask, mode);
 }
 
+int Context::bitbang_disable()
+{
+    return ftdi_disable_bitbang(d->ftdi);
+}
+
 int Context::read_pins(unsigned char *pins)
 {
     return ftdi_read_pins(d->ftdi, pins);
@@ -320,6 +316,11 @@ int Context::get_strings()
 
 int Context::get_strings_and_reopen()
 {
+    if ( d->dev == 0 )
+    {
+        d->dev = libusb_get_device(d->ftdi->usb_dev);
+    }
+
     // Get device strings (closes device)
     int ret=get_strings();
     if (ret < 0)
@@ -393,9 +394,9 @@ Eeprom::~Eeprom()
 {
 }
 
-void Eeprom::init_defaults()
+int Eeprom::init_defaults(char* manufacturer, char *product, char * serial)
 {
-    return ftdi_eeprom_initdefaults(d->context);
+    return ftdi_eeprom_initdefaults(d->context, manufacturer, product, serial);
 }
 
 int Eeprom::chip_id(unsigned int *chipid)