| /****************************************************************************** |
| * |
| * Copyright 2002-2012 Broadcom Corporation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ******************************************************************************/ |
| |
| /****************************************************************************** |
| * |
| * This file contains HID connection internal definitions |
| * |
| ******************************************************************************/ |
| |
| #ifndef HID_CONN_H |
| #define HID_CONN_H |
| |
| #include "osi/include/alarm.h" |
| |
| typedef enum : uint8_t { |
| HID_CONN_STATE_UNUSED = 0, |
| HID_CONN_STATE_CONNECTING_CTRL = 1, |
| HID_CONN_STATE_CONNECTING_INTR = 2, |
| HID_CONN_STATE_CONFIG = 3, |
| HID_CONN_STATE_CONNECTED = 4, |
| HID_CONN_STATE_DISCONNECTING = 5, |
| HID_CONN_STATE_SECURITY = 6, |
| } tHID_CONN_STATE; |
| |
| /* Define the HID Connection Block |
| */ |
| typedef struct hid_conn { |
| tHID_CONN_STATE conn_state; |
| |
| #define CASE_RETURN_TEXT(code) \ |
| case code: \ |
| return #code |
| |
| static inline std::string state_text(const tHID_CONN_STATE& state) { |
| switch (state) { |
| CASE_RETURN_TEXT(HID_CONN_STATE_UNUSED); |
| CASE_RETURN_TEXT(HID_CONN_STATE_CONNECTING_CTRL); |
| CASE_RETURN_TEXT(HID_CONN_STATE_CONNECTING_INTR); |
| CASE_RETURN_TEXT(HID_CONN_STATE_CONFIG); |
| CASE_RETURN_TEXT(HID_CONN_STATE_CONNECTED); |
| CASE_RETURN_TEXT(HID_CONN_STATE_DISCONNECTING); |
| CASE_RETURN_TEXT(HID_CONN_STATE_SECURITY); |
| default: |
| return std::string("UNKNOWN[%hhu]", state); |
| } |
| } |
| #undef CASE_RETURN_TEXT |
| |
| #define HID_CONN_FLAGS_IS_ORIG (0x01) |
| #define HID_CONN_FLAGS_CONGESTED (0x20) |
| #define HID_CONN_FLAGS_INACTIVE (0x40) |
| |
| uint8_t conn_flags; |
| |
| uint16_t ctrl_cid; |
| uint16_t intr_cid; |
| uint16_t rem_mtu_size; |
| uint16_t disc_reason; /* Reason for disconnecting (for HID_HDEV_EVT_CLOSE) */ |
| alarm_t* process_repage_timer; |
| } tHID_CONN; |
| |
| #define HID_SEC_CHN 1 |
| #define HID_NOSEC_CHN 2 |
| |
| #define HIDD_SEC_CHN 3 |
| |
| #endif |