diff options
Diffstat (limited to 'lib/usbhost/USB_Host_Shield_2.0/BTHID.h')
-rw-r--r-- | lib/usbhost/USB_Host_Shield_2.0/BTHID.h | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/lib/usbhost/USB_Host_Shield_2.0/BTHID.h b/lib/usbhost/USB_Host_Shield_2.0/BTHID.h deleted file mode 100644 index 1a7d8687c7..0000000000 --- a/lib/usbhost/USB_Host_Shield_2.0/BTHID.h +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright (C) 2013 Kristian Lauszus, TKJ Electronics. All rights reserved. - - This software may be distributed and modified under the terms of the GNU - General Public License version 2 (GPL2) as published by the Free Software - Foundation and appearing in the file GPL2.TXT included in the packaging of - this file. Please note that GPL2 Section 2[b] requires that all works based - on this software must also be made publicly available under the terms of - the GPL2 ("Copyleft"). - - Contact information - ------------------- - - Kristian Lauszus, TKJ Electronics - Web : http://www.tkjelectronics.com - e-mail : kristianl@tkjelectronics.com - */ - -#ifndef _bthid_h_ -#define _bthid_h_ - -#include "BTD.h" -#include "hidboot.h" - -#define KEYBOARD_PARSER_ID 0 -#define MOUSE_PARSER_ID 1 -#define NUM_PARSERS 2 - -/** This BluetoothService class implements support for Bluetooth HID devices. */ -class BTHID : public BluetoothService { -public: - /** - * Constructor for the BTHID class. - * @param p Pointer to the BTD class instance. - * @param pair Set this to true in order to pair with the device. If the argument is omitted then it will not pair with it. One can use ::PAIR to set it to true. - * @param pin Write the pin to BTD#btdPin. If argument is omitted, then "0000" will be used. - */ - BTHID(BTD *p, bool pair = false, const char *pin = "0000"); - - /** @name BluetoothService implementation */ - /** Used this to disconnect the devices. */ - void disconnect(); - /**@}*/ - - /** - * Get HIDReportParser. - * @param id ID of parser. - * @return Returns the corresponding HIDReportParser. Returns NULL if id is not valid. - */ - HIDReportParser *GetReportParser(uint8_t id) { - if (id >= NUM_PARSERS) - return NULL; - return pRptParser[id]; - }; - - /** - * Set HIDReportParser to be used. - * @param id Id of parser. - * @param prs Pointer to HIDReportParser. - * @return Returns true if the HIDReportParser is set. False otherwise. - */ - bool SetReportParser(uint8_t id, HIDReportParser *prs) { - if (id >= NUM_PARSERS) - return false; - pRptParser[id] = prs; - return true; - }; - - /** - * Set HID protocol mode. - * @param mode HID protocol to use. Either HID_BOOT_PROTOCOL or HID_RPT_PROTOCOL. - */ - void setProtocolMode(uint8_t mode) { - protocolMode = mode; - }; - - /** - * Used to set the leds on a keyboard. - * @param data See KBDLEDS in hidboot.h - */ - void setLeds(uint8_t data); - - /** True if a device is connected */ - bool connected; - - /** Call this to start the paring sequence with a device */ - void pair(void) { - if(pBtd) - pBtd->pairWithHID(); - }; - -protected: - /** @name BluetoothService implementation */ - /** - * Used to pass acldata to the services. - * @param ACLData Incoming acldata. - */ - void ACLData(uint8_t* ACLData); - /** Used to run part of the state machine. */ - void Run(); - /** Use this to reset the service. */ - void Reset(); - /** - * Called when a device is successfully initialized. - * Use attachOnInit(void (*funcOnInit)(void)) to call your own function. - * This is useful for instance if you want to set the LEDs in a specific way. - */ - void onInit() { - if(pFuncOnInit) - pFuncOnInit(); // Call the user function - OnInitBTHID(); - }; - /**@}*/ - - /** @name Overridable functions */ - /** - * Used to parse Bluetooth HID data to any class that inherits this class. - * @param len The length of the incoming data. - * @param buf Pointer to the data buffer. - */ - virtual void ParseBTHIDData(uint8_t len, uint8_t *buf) { - return; - }; - /** Called when a device is connected */ - virtual void OnInitBTHID() { - return; - }; - /** Used to reset any buffers in the class that inherits this */ - virtual void ResetBTHID() { - return; - } - /**@}*/ - - /** L2CAP source CID for HID_Control */ - uint8_t control_scid[2]; - - /** L2CAP source CID for HID_Interrupt */ - uint8_t interrupt_scid[2]; - -private: - HIDReportParser *pRptParser[NUM_PARSERS]; // Pointer to HIDReportParsers. - - /** Set report protocol. */ - void setProtocol(); - uint8_t protocolMode; - - void L2CAP_task(); // L2CAP state machine - - bool activeConnection; // Used to indicate if it already has established a connection - - /* Variables used for L2CAP communication */ - uint8_t control_dcid[2]; // L2CAP device CID for HID_Control - Always 0x0070 - uint8_t interrupt_dcid[2]; // L2CAP device CID for HID_Interrupt - Always 0x0071 - uint8_t l2cap_state; -}; -#endif |