| /****************************************************************************** | |
| * | |
| * Copyright 2016 The Android Open Source Project | |
| * 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. | |
| * | |
| ******************************************************************************/ | |
| #ifndef HIDD_API_H | |
| #define HIDD_API_H | |
| #include "hiddefs.h" | |
| #include "sdp_api.h" | |
| /***************************************************************************** | |
| * Type Definitions | |
| ****************************************************************************/ | |
| enum { HID_CHANNEL_INTR, HID_CHANNEL_CTRL }; | |
| /* | |
| HID_DHOST_EVT_OPEN - connected to host device (CTRL and INTR), data = n/a | |
| HID_DHOST_EVT_CLOSE - disconnected from host device, data=reason | |
| HID_DHOST_EVT_GET_REPORT - got GET_REPORT from host | |
| HID_DHOST_EVT_SET_REPORT - got SET_REPORT from host | |
| HID_DHOST_EVT_SET_PROTOCOL - got SET_PROTOCOL from host | |
| */ | |
| enum { | |
| HID_DHOST_EVT_OPEN, | |
| HID_DHOST_EVT_CLOSE, | |
| HID_DHOST_EVT_GET_REPORT, | |
| HID_DHOST_EVT_SET_REPORT, | |
| HID_DHOST_EVT_SET_PROTOCOL, | |
| HID_DHOST_EVT_INTR_DATA, | |
| HID_DHOST_EVT_VC_UNPLUG, | |
| HID_DHOST_EVT_SUSPEND, | |
| HID_DHOST_EVT_EXIT_SUSPEND, | |
| }; | |
| typedef void(tHID_DEV_HOST_CALLBACK)(const RawAddress& bd_addr, uint8_t event, | |
| uint32_t data, BT_HDR* p_buf); | |
| /***************************************************************************** | |
| * External Function Declarations | |
| ****************************************************************************/ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevInit | |
| * | |
| * Description Initializes control block | |
| * | |
| * Returns void | |
| * | |
| ******************************************************************************/ | |
| extern void HID_DevInit(void); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevRegister | |
| * | |
| * Description Registers HID device with lower layers | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevRegister(tHID_DEV_HOST_CALLBACK* host_cback); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevDeregister | |
| * | |
| * Description Deregisters HID device with lower layers | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevDeregister(void); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevSetSecurityLevel | |
| * | |
| * Description Sets security level for HID device connections | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevSetSecurityLevel(uint8_t sec_lvl); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevAddRecord | |
| * | |
| * Description Creates SDP record for HID device | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevAddRecord(uint32_t handle, char* p_name, | |
| char* p_description, char* p_provider, | |
| uint16_t subclass, uint16_t desc_len, | |
| uint8_t* p_desc_data); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevSendReport | |
| * | |
| * Description Sends report | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevSendReport(uint8_t channel, uint8_t type, uint8_t id, | |
| uint16_t len, uint8_t* p_data); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevVirtualCableUnplug | |
| * | |
| * Description Sends Virtual Cable Unplug | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevVirtualCableUnplug(void); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevPlugDevice | |
| * | |
| * Description Establishes virtual cable to given host | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevPlugDevice(const RawAddress& addr); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevUnplugDevice | |
| * | |
| * Description Unplugs virtual cable from given host | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevUnplugDevice(const RawAddress& addr); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevConnect | |
| * | |
| * Description Connects to device | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevConnect(void); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevDisconnect | |
| * | |
| * Description Disconnects from device | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevDisconnect(void); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevSetIncomingPolicy | |
| * | |
| * Description Sets policy for incoming connections (allowed/disallowed) | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevSetIncomingPolicy(bool allow); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevReportError | |
| * | |
| * Description Reports error for Set Report via HANDSHAKE | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevReportError(uint8_t error); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevGetDevice | |
| * | |
| * Description Returns the BD Address of virtually cabled device | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevGetDevice(RawAddress* addr); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevSetIncomingQos | |
| * | |
| * Description Sets Incoming QoS values for Interrupt L2CAP Channel | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevSetIncomingQos( | |
| uint8_t service_type, uint32_t token_rate, uint32_t token_bucket_size, | |
| uint32_t peak_bandwidth, uint32_t latency, uint32_t delay_variation); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevSetOutgoingQos | |
| * | |
| * Description Sets Outgoing QoS values for Interrupt L2CAP Channel | |
| * | |
| * Returns tHID_STATUS | |
| * | |
| ******************************************************************************/ | |
| extern tHID_STATUS HID_DevSetOutgoingQos( | |
| uint8_t service_type, uint32_t token_rate, uint32_t token_bucket_size, | |
| uint32_t peak_bandwidth, uint32_t latency, uint32_t delay_variation); | |
| /******************************************************************************* | |
| * | |
| * Function HID_DevSetTraceLevel | |
| * | |
| * Description This function sets the trace level for HID Dev. If called | |
| * with a value of 0xFF, it simply reads the current trace level. | |
| * | |
| * Returns the new (current) trace level | |
| * | |
| ******************************************************************************/ | |
| extern uint8_t HID_DevSetTraceLevel(uint8_t new_level); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* HIDD_API_H */ |