Move out RFCOMM channel structure init code to a seperate routine, to save on compile...
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / RFCOMMControl.c
index 2495bb4..e5bce54 100644 (file)
@@ -195,23 +195,8 @@ static void RFCOMM_ProcessDPNCommand(const RFCOMM_Command_t* const CommandHeader
        /* Check if the channel has no corresponding entry - remote did not open it first */\r
        if (RFCOMMChannel == NULL)\r
        {\r
-               /* Find a free entry in the RFCOMM channel multiplexer state array */\r
-               for (uint8_t i = 0; i < RFCOMM_MAX_OPEN_CHANNELS; i++)\r
-               {\r
-                       /* If the channel's state is closed, the channel state entry is free */\r
-                       if (RFCOMM_Channels[i].State == RFCOMM_Channel_Closed)\r
-                       {\r
-                               RFCOMMChannel                     = &RFCOMM_Channels[i];\r
-                               RFCOMMChannel->DLCI               = Params->DLCI;\r
-                               RFCOMMChannel->MTU                = 0xFFFF;\r
-                               RFCOMMChannel->Remote.Signals     = 0 | (1 << 0);\r
-                               RFCOMMChannel->Remote.BreakSignal = 0 | (1 << 0);\r
-                               RFCOMMChannel->Local.Signals      = RFCOMM_SIGNAL_RTC | RFCOMM_SIGNAL_RTR | RFCOMM_SIGNAL_DV | (1 << 0);\r
-                               RFCOMMChannel->Local.BreakSignal  = 0 | (1 << 0);\r
-                               RFCOMMChannel->ConfigFlags        = 0;\r
-                               break;\r
-                       }\r
-               }\r
+               /* Create a new entry in the channel table for the new channel */\r
+               RFCOMMChannel = RFCOMM_GetFreeChannelEntry(Params->DLCI);\r
                \r
                /* No free entry was found, discard the request */\r
                if (RFCOMMChannel == NULL)\r