Remove libftdi dependency

Libusb was already doing the bulk of the work...
This commit just removes what basically was a dependency
for a very small amount of code.
This commit is contained in:
Lorenzooone
2025-03-25 21:16:35 +01:00
parent dc24a41394
commit facf6b4ce5
12 changed files with 604 additions and 539 deletions

View File

@@ -7,23 +7,23 @@
void list_devices_ftd2_compatibility(std::vector<CaptureDevice> &devices_list, std::vector<no_access_recap_data> &no_access_list);
void ftd2_capture_main_loop(CaptureData* capture_data);
int ftd2_get_queue_status(void* handle, bool is_libftdi, size_t* bytes_in);
bool ftd2_is_error(int value, bool is_libftdi);
int ftd2_write(void* handle, bool is_libftdi, const uint8_t* data, size_t size, size_t *sent);
int ftd2_read(void* handle, bool is_libftdi, uint8_t* data, size_t size, size_t *bytesIn);
int ftd2_set_timeouts(void* handle, bool is_libftdi, int timeout_read, int timeout_write);
int ftd2_reset_device(void* handle, bool is_libftdi);
int ftd2_set_usb_parameters(void* handle, bool is_libftdi, size_t size_in, size_t size_out);
int ftd2_set_chars(void* handle, bool is_libftdi, unsigned char eventch, unsigned char event_enable, unsigned char errorch, unsigned char error_enable);
int ftd2_set_latency_timer(void* handle, bool is_libftdi, unsigned char latency);
int ftd2_set_flow_ctrl_rts_cts(void* handle, bool is_libftdi);
int ftd2_reset_bitmode(void* handle, bool is_libftdi);
int ftd2_set_mpsse_bitmode(void* handle, bool is_libftdi);
int ftd2_set_fifo_bitmode(void* handle, bool is_libftdi);
int ftd2_purge_all(void* handle, bool is_libftdi);
int ftd2_read_ee(void* handle, bool is_libftdi, int eeprom_addr, int *eeprom_val);
int ftd2_close(void* handle, bool is_libftdi);
int ftd2_open(CaptureDevice* device, void** handle, bool is_libftdi);
int ftd2_get_queue_status(void* handle, bool is_ftd2_libusb, size_t* bytes_in);
bool ftd2_is_error(int value, bool is_ftd2_libusb);
int ftd2_write(void* handle, bool is_ftd2_libusb, const uint8_t* data, size_t size, size_t *sent);
int ftd2_read(void* handle, bool is_ftd2_libusb, uint8_t* data, size_t size, size_t *bytesIn);
int ftd2_set_timeouts(void* handle, bool is_ftd2_libusb, int timeout_read, int timeout_write);
int ftd2_reset_device(void* handle, bool is_ftd2_libusb);
int ftd2_set_usb_parameters(void* handle, bool is_ftd2_libusb, size_t size_in, size_t size_out);
int ftd2_set_chars(void* handle, bool is_ftd2_libusb, unsigned char eventch, unsigned char event_enable, unsigned char errorch, unsigned char error_enable);
int ftd2_set_latency_timer(void* handle, bool is_ftd2_libusb, unsigned char latency);
int ftd2_set_flow_ctrl_rts_cts(void* handle, bool is_ftd2_libusb);
int ftd2_reset_bitmode(void* handle, bool is_ftd2_libusb);
int ftd2_set_mpsse_bitmode(void* handle, bool is_ftd2_libusb);
int ftd2_set_fifo_bitmode(void* handle, bool is_ftd2_libusb);
int ftd2_purge_all(void* handle, bool is_ftd2_libusb);
int ftd2_read_ee(void* handle, bool is_ftd2_libusb, int eeprom_addr, int *eeprom_val);
int ftd2_close(void* handle, bool is_ftd2_libusb);
int ftd2_open(CaptureDevice* device, void** handle, bool is_ftd2_libusb);
void ftd2_init();
void ftd2_end();

View File

@@ -45,7 +45,7 @@ const int get_ftd2_fw_index(int index);
uint64_t get_max_samples(bool is_rgb888);
uint64_t get_capture_size(bool is_rgb888);
size_t remove_synch_from_final_length(uint32_t* out_buffer, size_t real_length);
bool enable_capture(void* handle, bool is_libftdi);
bool enable_capture(void* handle, bool is_ftd2_libusb);
bool synchronization_check(uint16_t* data_buffer, size_t size, uint16_t* next_data_buffer, size_t* next_size, bool special_check = false);
#endif

View File

@@ -0,0 +1,37 @@
#ifndef __DSCAPTURE_FTD2_LIBUSB_HPP
#define __DSCAPTURE_FTD2_LIBUSB_HPP
#include "dscapture_ftd2_shared.hpp"
#include "capture_structs.hpp"
enum ftd2_mpsse_mode {
FTD2_MPSSE_BITMODE_RESET = 0x00,
FTD2_MPSSE_BITMODE_MPSSE = 0x02,
FTD2_MPSSE_BITMODE_SYNCFIFO = 0x40,
};
enum ftd2_flow_ctrls {
FTD2_SIO_RTS_CTS_HS = 0x1 << 8,
FTD2_SIO_XON_XOFF_HS = 0x4 << 8,
};
void ftd2_libusb_init();
void ftd2_libusb_end();
void list_devices_ftd2_libusb(std::vector<CaptureDevice> &devices_list, std::vector<no_access_recap_data> &no_access_list);
void ftd2_capture_main_loop_libusb(CaptureData* capture_data);
int ftd2_libusb_reset(void* handle);
int ftd2_libusb_set_latency_timer(void* handle, unsigned char latency);
int ftd2_libusb_setflowctrl(void* handle, int flowctrl, unsigned char xon, unsigned char xoff);
int ftd2_libusb_set_bitmode(void* handle, unsigned char bitmask, unsigned char mode);
int ftd2_libusb_purge(void* handle, bool do_read, bool do_write);
int ftd2_libusb_read_eeprom(void* handle, int eeprom_addr, int *eeprom_val);
int ftd2_libusb_set_chars(void* handle, unsigned char eventch, unsigned char event_enable, unsigned char errorch, unsigned char error_enable);
int ftd2_libusb_set_usb_chunksizes(void* handle, unsigned int chunksize_in, unsigned int chunksize_out);
void ftd2_libusb_set_timeouts(void* handle, int timeout_in_ms, int timeout_out_ms);
int ftd2_libusb_write(void* handle, const uint8_t* data, size_t size, size_t* bytesOut);
int ftd2_libusb_read(void* handle, uint8_t* data, size_t size, size_t* bytesIn);
int get_ftd2_libusb_read_queue_size(void* handle, size_t* bytesIn);
int ftd2_libusb_open_serial(CaptureDevice* device, void** handle);
int ftd2_libusb_close(void* handle);
#endif

View File

@@ -1,27 +0,0 @@
#ifndef __DSCAPTURE_LIBFTDI2_HPP
#define __DSCAPTURE_LIBFTDI2_HPP
#include "dscapture_ftd2_shared.hpp"
#include "capture_structs.hpp"
void libftdi_init();
void libftdi_end();
void list_devices_libftdi(std::vector<CaptureDevice> &devices_list, std::vector<no_access_recap_data> &no_access_list);
void ftd2_capture_main_loop_libftdi(CaptureData* capture_data);
int libftdi_reset(void* handle);
int libftdi_set_latency_timer(void* handle, unsigned char latency);
int libftdi_setflowctrl(void* handle, int flowctrl, unsigned char xon, unsigned char xoff);
int libftdi_set_bitmode(void* handle, unsigned char bitmask, unsigned char mode);
int libftdi_purge(void* handle, bool do_read, bool do_write);
int libftdi_read_eeprom(void* handle, int eeprom_addr, int *eeprom_val);
int libftdi_set_chars(void* handle, unsigned char eventch, unsigned char event_enable, unsigned char errorch, unsigned char error_enable);
int libftdi_set_usb_chunksizes(void* handle, unsigned int chunksize_in, unsigned int chunksize_out);
void libftdi_set_timeouts(void* handle, int timeout_in_ms, int timeout_out_ms);
int libftdi_write(void* handle, const uint8_t* data, size_t size, size_t* bytesOut);
int libftdi_read(void* handle, uint8_t* data, size_t size, size_t* bytesIn);
int get_libftdi_read_queue_size(void* handle, size_t* bytesIn);
int libftdi_open_serial(CaptureDevice* device, void** handle);
int libftdi_close(void* handle);
#endif