flatUSB/class/eem.c

40 lines
722 B
C

#include "eem.h"
#include <memory.h>
#include "../usb.h"
static USB_EemState eems = {0};
void usb_eem_init(uint8_t data_ep) {
// clear the state
memset(&eems, 0, sizeof(USB_EemState));
// store data endpoint number
eems.data_ep = data_ep;
// EEM is operational
eems.initialized = true;
}
int usb_eem_process_and_return(USB_CallbackEvent *cbevt) {
switch (cbevt->type) {
case USB_CBEVT_UNKNOWN_REQ:
break;
case USB_CBEVT_OUT:
break;
case USB_CBEVT_IN:
if (cbevt->ep == eems.data_ep) { // verify endpoint number
usbcore_write(eems.data_ep, NULL, 0); // send ZLP
}
break;
default:
break;
}
return 0;
}