X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.c;h=0a2e0faafefc88618c79f05a986007ade9555c1e;hp=9cf86ea8b474d46227d0764b846a94a911b53562;hb=878f0c6a695a969f4f5ada3276e4479feda1d87d;hpb=9e44fc94ea5ffe94cc4eaf8d58f55af41f3cef97 diff --git a/src/ftdi.c b/src/ftdi.c index 9cf86ea..0a2e0fa 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -2420,6 +2420,52 @@ int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi, char * manufacturer, } return 0; } + +int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, char * manufacturer, + char * product, char * serial) +{ + struct ftdi_eeprom *eeprom; + + if (ftdi == NULL) + ftdi_error_return(-1, "No struct ftdi_context"); + + if (ftdi->eeprom == NULL) + ftdi_error_return(-2,"No struct ftdi_eeprom"); + + eeprom = ftdi->eeprom; + + if (ftdi->usb_dev == NULL) + ftdi_error_return(-3, "No connected device or device not yet opened"); + + if (manufacturer) { + if (eeprom->manufacturer) + free (eeprom->manufacturer); + eeprom->manufacturer = malloc(strlen(manufacturer)+1); + if (eeprom->manufacturer) + strcpy(eeprom->manufacturer, manufacturer); + } + + if(product) { + if (eeprom->product) + free (eeprom->product); + eeprom->product = malloc(strlen(product)+1); + if (eeprom->product) + strcpy(eeprom->product, product); + } + + if (serial) { + if (eeprom->serial) + free (eeprom->serial); + eeprom->serial = malloc(strlen(serial)+1); + if (eeprom->serial) { + strcpy(eeprom->serial, serial); + eeprom->use_serial = 1; + } + } + return 0; +} + + /*FTD2XX doesn't check for values not fitting in the ACBUS Signal oprtions*/ void set_ft232h_cbus(struct ftdi_eeprom *eeprom, unsigned char * output) {