Break device mode class driver interfaces into seperate config and state structs...
[pub/lufa.git] / Demos / Device / ClassDriver / RNDISEthernet / RNDISEthernet.c
index 3c9fddf..ed07184 100644 (file)
  *  passed to all RNDIS Class driver functions, so that multiple instances of the same class\r
  *  within a device can be differentiated from one another.\r
  */\r
-USB_ClassInfo_RNDIS_t Ethernet_RNDIS_Interface =\r
+USB_ClassInfo_RNDIS_Device_t Ethernet_RNDIS_Interface =\r
        {\r
-               .ControlInterfaceNumber     = 0,\r
-\r
-               .DataINEndpointNumber       = CDC_TX_EPNUM,\r
-               .DataINEndpointSize         = CDC_TXRX_EPSIZE,\r
-\r
-               .DataOUTEndpointNumber      = CDC_RX_EPNUM,\r
-               .DataOUTEndpointSize        = CDC_TXRX_EPSIZE,\r
-\r
-               .NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM,\r
-               .NotificationEndpointSize   = CDC_NOTIFICATION_EPSIZE,\r
-               \r
-               .AdapterVendorDescription   = "LUFA RNDIS Demo Adapter",\r
-               .AdapterMACAddress          = {ADAPTER_MAC_ADDRESS},\r
+               .Config =\r
+                       {\r
+                               .ControlInterfaceNumber     = 0,\r
+\r
+                               .DataINEndpointNumber       = CDC_TX_EPNUM,\r
+                               .DataINEndpointSize         = CDC_TXRX_EPSIZE,\r
+\r
+                               .DataOUTEndpointNumber      = CDC_RX_EPNUM,\r
+                               .DataOUTEndpointSize        = CDC_TXRX_EPSIZE,\r
+\r
+                               .NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM,\r
+                               .NotificationEndpointSize   = CDC_NOTIFICATION_EPSIZE,\r
+                               \r
+                               .AdapterVendorDescription   = "LUFA RNDIS Demo Adapter",\r
+                               .AdapterMACAddress          = {ADAPTER_MAC_ADDRESS},\r
+                       },\r
+                       \r
+               .State =\r
+                       {\r
+                               // Leave all state values to their defaults                     \r
+                       }\r
        };\r
 \r
 /** Main program entry point. This routine contains the overall program flow, including initial\r
@@ -73,10 +81,10 @@ int main(void)
 \r
        for (;;)\r
        {\r
-               if (Ethernet_RNDIS_Interface.FrameIN.FrameInBuffer)\r
+               if (Ethernet_RNDIS_Interface.State.FrameIN.FrameInBuffer)\r
                {\r
                        LEDs_SetAllLEDs(LEDMASK_USB_BUSY);\r
-                       Ethernet_ProcessPacket(&Ethernet_RNDIS_Interface.FrameIN, &Ethernet_RNDIS_Interface.FrameOUT);\r
+                       Ethernet_ProcessPacket(&Ethernet_RNDIS_Interface.State.FrameIN, &Ethernet_RNDIS_Interface.State.FrameOUT);\r
                        LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
                }\r
 \r