fl16: Make dynamic serial number a little more generic

First step towards upstreaming.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
This commit is contained in:
Daniel Schaefer
2023-03-23 13:09:09 +08:00
parent ef518f5b4b
commit 4827822cdc
8 changed files with 85 additions and 71 deletions

View File

@@ -41,7 +41,7 @@
#include "usb_descriptor.h"
#include "usb_descriptor_common.h"
#include "lotus.h"
#include "dyn_serial.h"
#ifdef JOYSTICK_ENABLE
# include "joystick.h"
@@ -1139,8 +1139,9 @@ uint16_t get_usb_descriptor(const uint16_t wValue, const uint16_t wIndex, const
#if defined(SERIAL_NUMBER)
case 0x03:
// TODO: Give these functions a generic name and let anyone override it
Address = lotus_serial_number_string();
Size = lotus_serial_number_string_len();
// Framework 16 uses this
Address = dyn_serial_number_string();
Size = dyn_serial_number_string_len();
break;
#endif

View File

@@ -30,6 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "debug.h"
#include "wait.h"
#include "usb_descriptor_common.h"
#include "dyn_serial.h"
#ifdef RAW_ENABLE
# include "raw_hid.h"
@@ -761,7 +762,7 @@ const PROGMEM usbStringDescriptor_t usbStringDescriptorProduct = {
.bString = USBSTR(PRODUCT)
};
// THIS IS NOT USED by Lotus. TODO: Implement flexible serial number here
// THIS IS NOT USED by Framework 16. TODO: Implement dynamic serial number here
#if defined(SERIAL_NUMBER)
const PROGMEM usbStringDescriptor_t usbStringDescriptorSerial =
.header = {
@@ -1035,8 +1036,9 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
break;
#if defined(SERIAL_NUMBER)
case 3: // iSerialNumber
usbMsgPtr = (usbMsgPtr_t)lotus_serial_number_string();
len = lotus_serial_number_string_len();
// Not using this on Framework 16
usbMsgPtr = (usbMsgPtr_t)dynamic_serial_number_string();
len = dynamic_serial_number_string_len();
break;
#endif
}