#include "usb.h"
#include "usb_device_cdc.h"
#include "queue.h"
#include <stdlib.h>
usb_device_t *dummy_usb_device_init() {
usb_device_t* device = malloc(sizeof(usb_device_t));
device->state = INIT;
device->setup.detected_setup_errors = 0;
device->core = calloc(sizeof(USB_OTG_GlobalTypeDef), 1);
device->device = calloc(sizeof(USB_OTG_DeviceTypeDef), 1);
device->out = calloc(sizeof(USB_OTG_OUTEndpointTypeDef), 8);
device->in = calloc(sizeof(USB_OTG_INEndpointTypeDef), 8);
device->fifos = calloc(sizeof(usb_fifo_t), 8);
device->setup.received_setup_commands = queue_malloc(sizeof(usb_setup_command_t), MAX_SETUP_PACKETS);
queue_init(device->setup.received_setup_commands, sizeof(usb_setup_command_t), MAX_SETUP_PACKETS);
return device;
}
int main() {
usb_device_t* device = dummy_usb_device_init();
usb_class_header_t* header = usb_device_cdc_init(device, 0x1234, 0x1234, NULL, NULL, 0x0000, NULL);
device->class = header;
device->vt = USB_CLASS_CDC_ACM;
usb_device_cdc_acm_configure(device);
usb_setup_command_t config_cmd = {
.wLength = 160
};
usb_device_cdc_send_configuration(device, &config_cmd);
return 0;
}