diff --git a/source/CaptureDeviceSpecific/Nisetro/cypress_nisetro_acquisition.cpp b/source/CaptureDeviceSpecific/Nisetro/cypress_nisetro_acquisition.cpp index 98d0abb..287ebf9 100644 --- a/source/CaptureDeviceSpecific/Nisetro/cypress_nisetro_acquisition.cpp +++ b/source/CaptureDeviceSpecific/Nisetro/cypress_nisetro_acquisition.cpp @@ -84,6 +84,13 @@ static cy_device_device_handlers* usb_reconnect(const cyni_device_usb_device* us return final_handlers; } +static std::string process_serial_string(const cyni_device_usb_device* usb_device_desc, std::string out_serial) { + std::string preamble = ""; + if((usb_device_desc != NULL) && usb_device_desc->has_bcd_device_serial) + preamble = "USB "; + return preamble + out_serial; +} + static std::string _cypress_nisetro_get_serial(const cyni_device_usb_device* usb_device_desc, std::string serial, uint16_t bcd_device, int& curr_serial_extra_id) { if((!usb_device_desc->has_bcd_device_serial) && (serial != "")) return serial; @@ -96,10 +103,7 @@ std::string cypress_nisetro_get_serial(const void* usb_device_desc, std::string if(usb_device_desc == NULL) return ""; const cyni_device_usb_device* in_usb_device_desc = (const cyni_device_usb_device*)usb_device_desc; - std::string preamble = ""; - if(in_usb_device_desc->has_bcd_device_serial) - preamble = "USB "; - return preamble + _cypress_nisetro_get_serial(in_usb_device_desc, serial, bcd_device, curr_serial_extra_id); + return process_serial_string(in_usb_device_desc, _cypress_nisetro_get_serial(in_usb_device_desc, serial, bcd_device, curr_serial_extra_id)); } static CaptureDevice _cypress_nisetro_create_device(const cyni_device_usb_device* usb_device_desc, std::string serial, std::string path) { @@ -168,7 +172,7 @@ bool cyni_device_connect_usb(bool print_failed, CaptureData* capture_data, Captu return false; } cypress_nisetro_connection_end(handlers, usb_device_info); - std::string new_serial_number = std::to_string(free_fw_id); + std::string new_serial_number = process_serial_string(next_usb_device_info, std::to_string(free_fw_id)); CaptureDevice new_device; for(int i = 0; i < 20; i++) { default_sleep(500); diff --git a/source/CaptureDeviceSpecific/Optimize_3DS/cypress_optimize_3ds_acquisition.cpp b/source/CaptureDeviceSpecific/Optimize_3DS/cypress_optimize_3ds_acquisition.cpp index 045f0bf..a51670f 100644 --- a/source/CaptureDeviceSpecific/Optimize_3DS/cypress_optimize_3ds_acquisition.cpp +++ b/source/CaptureDeviceSpecific/Optimize_3DS/cypress_optimize_3ds_acquisition.cpp @@ -98,6 +98,13 @@ static cy_device_device_handlers* usb_reconnect(const cyop_device_usb_device* us return final_handlers; } +static std::string process_serial_string(const cyop_device_usb_device* usb_device_desc, std::string out_serial) { + std::string preamble = ""; + if((usb_device_desc != NULL) && usb_device_desc->has_bcd_device_serial) + preamble = "USB "; + return preamble + out_serial; +} + static std::string _cypress_optimize_3ds_get_serial(const cyop_device_usb_device* usb_device_desc, std::string serial, uint16_t bcd_device, int& curr_serial_extra_id) { if((!usb_device_desc->has_bcd_device_serial) && (serial != "")) return serial; @@ -110,10 +117,7 @@ std::string cypress_optimize_3ds_get_serial(const void* usb_device_desc, std::st if(usb_device_desc == NULL) return ""; const cyop_device_usb_device* in_usb_device_desc = (const cyop_device_usb_device*)usb_device_desc; - std::string preamble = ""; - if(in_usb_device_desc->has_bcd_device_serial) - preamble = "USB "; - return preamble + _cypress_optimize_3ds_get_serial(in_usb_device_desc, serial, bcd_device, curr_serial_extra_id); + return process_serial_string(in_usb_device_desc, _cypress_optimize_3ds_get_serial(in_usb_device_desc, serial, bcd_device, curr_serial_extra_id)); } static CaptureDevice _cypress_optimize_3ds_create_device(const cyop_device_usb_device* usb_device_desc, std::string serial, std::string path) { @@ -182,7 +186,7 @@ bool cyop_device_connect_usb(bool print_failed, CaptureData* capture_data, Captu return false; } cypress_optimize_3ds_connection_end(handlers, usb_device_info); - std::string new_serial_number = std::to_string(free_fw_id); + std::string new_serial_number = process_serial_string(next_usb_device_info, std::to_string(free_fw_id)); CaptureDevice new_device; for(int i = 0; i < 20; i++) { default_sleep(500); @@ -915,6 +919,8 @@ static std::string read_key_for_device_id_from_file(uint64_t device_id, const cy } static void add_key_for_device_id_to_file(uint64_t device_id, std::string key, const cyop_device_usb_device* usb_device_desc) { + // This is fine for a limited amount of keys. + // It should be optimized if many keys need to be stored... if(usb_device_desc == NULL) return; if(key == "")