diff --git a/lib/usb/applesauce.h b/lib/usb/applesauce.h new file mode 100644 index 00000000..9c080075 --- /dev/null +++ b/lib/usb/applesauce.h @@ -0,0 +1,6 @@ +#pragma once + +#define APPLESAUCE_VID 0x16c0 +#define APPLESAUCE_PID 0x0483 + +#define APPLESAUCE_ID ((APPLESAUCE_VID << 16) | APPLESAUCE_PID) diff --git a/lib/usb/usb.cc b/lib/usb/usb.cc index a6654796..b79e880f 100644 --- a/lib/usb/usb.cc +++ b/lib/usb/usb.cc @@ -9,6 +9,7 @@ #include "lib/proto.h" #include "usbfinder.h" #include "lib/logger.h" +#include "applesauce.h" #include "greaseweazle.h" static USB* usb = NULL; @@ -54,6 +55,11 @@ static std::shared_ptr selectDevice() std::cerr << fmt::format( "Greaseweazle: {} on {}\n", c->serial, c->serialPort); break; + + case APPLESAUCE_ID: + std::cerr << fmt::format( + "Applesauce: {} on {}\n", c->serial, c->serialPort); + break; } } exit(1); @@ -87,6 +93,9 @@ USB* get_usb_impl() return createGreaseweazleUsb( candidate->serialPort, globalConfig()->usb().greaseweazle()); + case APPLESAUCE_ID: + error("Applesauce not supported yet"); + default: error("internal"); } diff --git a/lib/usb/usbfinder.cc b/lib/usb/usbfinder.cc index d3a87003..20b546a3 100644 --- a/lib/usb/usbfinder.cc +++ b/lib/usb/usbfinder.cc @@ -3,12 +3,13 @@ #include "usb.h" #include "lib/bytes.h" #include "usbfinder.h" +#include "applesauce.h" #include "greaseweazle.h" #include "protocol.h" #include "libusbp.hpp" static const std::set VALID_DEVICES = { - GREASEWEAZLE_ID, FLUXENGINE_ID}; + GREASEWEAZLE_ID, FLUXENGINE_ID, APPLESAUCE_ID}; static const std::string get_serial_number(const libusbp::device& device) { @@ -71,6 +72,9 @@ std::string getDeviceName(DeviceType type) case DEVICE_FLUXENGINE: return "FluxEngine"; + case DEVICE_APPLESAUCE: + return "Applesauce"; + default: return "unknown"; } diff --git a/lib/usb/usbfinder.h b/lib/usb/usbfinder.h index 2034a7d8..435c7e3b 100644 --- a/lib/usb/usbfinder.h +++ b/lib/usb/usbfinder.h @@ -7,7 +7,8 @@ enum DeviceType { DEVICE_FLUXENGINE, - DEVICE_GREASEWEAZLE + DEVICE_GREASEWEAZLE, + DEVICE_APPLESAUCE, }; extern std::string getDeviceName(DeviceType type);