summaryrefslogtreecommitdiffstats
path: root/stack/hid/hidd_int.h
diff options
context:
space:
mode:
Diffstat (limited to 'stack/hid/hidd_int.h')
-rw-r--r--stack/hid/hidd_int.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/stack/hid/hidd_int.h b/stack/hid/hidd_int.h
new file mode 100644
index 0000000..58d7a83
--- /dev/null
+++ b/stack/hid/hidd_int.h
@@ -0,0 +1,136 @@
+/****************************************************************************/
+/* */
+/* Name: hidd_int.h */
+/* */
+/* Function: this file contains HID DEVICE internal definitions */
+/* */
+/* */
+/* Copyright (c) 2002-2004, WIDCOMM Inc., All Rights Reserved. */
+/* WIDCOMM Bluetooth Core. Proprietary and confidential. */
+/* */
+/****************************************************************************/
+
+#ifndef HIDD_INT_H
+#define HIDD_INT_H
+#include "hidd_api.h"
+#include "hid_conn.h"
+#include "l2c_api.h"
+
+/* Define the possible events of the HID Device state machine.
+*/
+enum
+{
+ HOST_CONN_OPEN,
+ HOST_CONN_CLOSE,
+ HOST_CONN_LOST,
+ HOST_CONN_FAIL,
+ HID_API_CONNECT,
+ HID_API_DISCONNECT,
+ HID_API_SEND_DATA
+};
+
+/* Define the possible states of the HID Device.
+*/
+enum
+{
+ HID_DEV_ST_NO_CONN,
+ HID_DEV_ST_CONNECTING,
+ HID_DEV_ST_CONNECTED,
+ HID_DEV_ST_DISC_ING
+};
+
+/* To remember the power mode and setting */
+typedef struct curr_pm_setting
+{
+ UINT8 mode;
+ UINT16 interval;
+} tHID_DEV_PM_CURR;
+
+/* Define the HID management control block.
+*/
+typedef struct hid_control_block
+{
+ BD_ADDR host_addr; /* BD-Addr of the host device */
+ BOOLEAN host_known; /* Mode */
+ BOOLEAN virtual_cable;/* If the device is to behave as virtual cable */
+ UINT8 dev_state; /* Device state if in HOST-KNOWN mode */
+ UINT8 conn_tries; /* Remembers to the number of connection attempts while CONNECTING */
+ UINT8 sec_mask;
+ UINT16 get_rep_buf_sz;
+ tHID_CONN conn; /* L2CAP channel info */
+
+#if HID_DEV_PM_INCLUDED == TRUE
+ TIMER_LIST_ENT idle_tle; /* Timer used for inactivity timing */
+ tHID_DEV_PM_PWR_MD pm_params[3]; /* Power management parameters for the three possible states */
+ tHID_DEV_PM_CURR curr_pm; /* Current power mode */
+ BOOLEAN pm_ctrl_busy;/* A power mode transition is going on */
+ UINT8 conn_substate;
+ tHID_DEV_PM_PWR_MD final_pm;/* To remember the power mode while a power mode change is ongoing */
+#endif
+
+ BOOLEAN use_qos_flg; /* Qos information provided by application or not */
+ BOOLEAN unplug_on; /* Virtual unplug has been sent or received */
+ tHID_DEV_QOS_INFO qos_info; /* Storage for QoS provided by application */
+
+ tHID_DEV_CALLBACK *callback; /* Application callbacks */
+ tL2CAP_CFG_INFO l2cap_ctrl_cfg; /* Configuration data for control channel */
+ tL2CAP_CFG_INFO l2cap_int_cfg; /* Configuration data for interrupt channel */
+ BOOLEAN reg_flag;
+ UINT8 trace_level;
+} tHIDDEV_CB;
+
+typedef struct snd_data_params
+{
+ BOOLEAN ctrl_ch; /* TRUE if control channel, FALSE if interrupt */
+ UINT8 trans_type; /* Transaction type */
+ UINT8 param; /* Second byte after trans type */
+ BT_HDR *buf ; /* Data that comes after param */
+} tHID_SND_DATA_PARAMS; /* Is defined for hidd_conn_snd_data */
+
+/* HID management function prototype
+*/
+typedef tHID_STATUS (tHIDD_MGMT_EVT_HDLR) (UINT8, void *);
+
+/* HID Globals
+*/
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/******************************************************************************
+** Main Control Block
+*******************************************************************************/
+#if HID_DYNAMIC_MEMORY == FALSE
+HID_API extern tHIDDEV_CB hd_cb;
+#else
+HID_API extern tHIDDEV_CB *hidd_cb_ptr;
+#define hd_cb (*hidd_cb_ptr)
+#endif
+
+extern tHID_STATUS hidd_conn_reg (void);
+extern void hidd_conn_dereg( void );
+extern tHID_STATUS hidd_conn_initiate (void);
+extern void hidd_conn_disconnect (void);
+extern tHID_STATUS hidd_conn_snd_data (tHID_SND_DATA_PARAMS *p_data);
+
+extern tHID_STATUS hidd_mgmt_process_evt( UINT8 event, void *data );
+extern void hidd_proc_repage_timeout (TIMER_LIST_ENT *p_tle);
+
+#if HID_DEV_PM_INCLUDED == TRUE
+extern tHID_STATUS hidd_pm_start( void ) ;
+extern tHID_STATUS hidd_pm_stop( void );
+extern tHID_STATUS hidd_pm_activity_evt( void );
+extern tHID_STATUS hidd_pm_suspend_evt( void );
+extern tHID_STATUS hidd_pm_unsuspend_evt( void );
+extern void hidd_pm_init( void );
+extern BOOLEAN hidd_pm_set_power_mode( tHID_DEV_PM_PWR_MD *pm) ;
+
+extern void hidd_pm_proc_mode_change( UINT8 hci_status, UINT8 mode, UINT16 interval );
+#endif /* HID_DEV_PM_INCLUDED == TRUE */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif