Added ability to search by Channel PSM to the GetChannelData() function in the Blueto...
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / BluetoothStack.h
index a97ac08..aebdd96 100644 (file)
                #define CHANNEL_PSM_UPNP               0x0010\r
                #define CHANNEL_PSM_HIDP               0x0011\r
                \r
+               #define CHANNEL_SEARCH_LOCALNUMBER     0\r
+               #define CHANNEL_SEARCH_REMOTENUMBER    1\r
+               #define CHANNEL_SEARCH_PSM             2\r
+               \r
                #define MAXIMUM_CHANNEL_MTU            255\r
                \r
        /* Enums: */\r
                        char     PINCode[16]; /**< Pin code required to send or receive in order to authenticate with a remote device. */\r
                        char     Name[]; /**< Name of the local bluetooth device, up to 248 characters. */\r
                } Bluetooth_Device_t;\r
+               \r
+               /** Bluetooth stack state information structure, for the containment of the Bluetooth stack state. The values in\r
+                *  this structure are set by the Bluetooth stack internally, and should all be treated as read only by the user\r
+                *  application.\r
+                */\r
+               typedef struct\r
+               {\r
+                       uint8_t CurrentHCIState; /**< Current HCI state machine state. */\r
+                       uint8_t NextHCIState; /**< Next HCI state machine state to progress to once the currently issued command completes. */\r
+                       bool    IsInitialized; /**< Indicates if the Bluetooth stack is currently initialized and ready for connections\r
+                                               *   to or from a remote Bluetooth device.\r
+                                               */\r
+                       uint8_t LocalBDADDR[6]; /**< Local bluetooth adapter's BDADDR, valid when the stack is fully initialized. */\r
+               } Bluetooth_Stack_State_t;\r
        \r
        /* Includes: */\r
                #include "BluetoothHCICommands.h"\r
                void Bluetooth_Stack_Init(void);\r
                void Bluetooth_Stack_USBTask(void);\r
 \r
+               void                 Bluetooth_StackInitialized(void);\r
                bool                 Bluetooth_ConnectionRequest(const uint8_t* RemoteAddress);\r
                void                 Bluetooth_ConnectionComplete(void);\r
                void                 Bluetooth_DisconnectionComplete(void);\r
                bool                 Bluetooth_ChannelConnectionRequest(const uint16_t PSM);\r
                void                 Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t* const Channel);\r
-               Bluetooth_Channel_t* Bluetooth_GetChannelData(const uint16_t ChannelNumber, const bool SearchByRemoteChannel);\r
+               Bluetooth_Channel_t* Bluetooth_GetChannelData(const uint16_t SearchValue, const uint8_t SearchKey);\r
                Bluetooth_Channel_t* Bluetooth_OpenChannel(const uint16_t PSM);\r
                void                 Bluetooth_CloseChannel(Bluetooth_Channel_t* const Channel);\r
                uint8_t              Bluetooth_SendPacket(void* Data, uint16_t DataLen, Bluetooth_Channel_t* const Channel);\r
 \r
        /* External Variables: */\r
-               extern Bluetooth_Device_t     Bluetooth_DeviceConfiguration;\r
-               extern Bluetooth_Connection_t Bluetooth_Connection;\r
+               extern Bluetooth_Device_t      Bluetooth_DeviceConfiguration;\r
+               extern Bluetooth_Connection_t  Bluetooth_Connection;\r
+               extern Bluetooth_Stack_State_t Bluetooth_State;\r
 \r
 #endif\r