forked from PAWPAW-Mirror/lib_xua
Merge pull request #114 from mbanth/feature/hid_new_interface
Feature/hid new interface
This commit is contained in:
@@ -15,6 +15,8 @@ lib_xua Change Log
|
||||
Volume Decrement
|
||||
* CHANGE: UAC1 HID to report function keys f21 through f24 as specified by
|
||||
customer
|
||||
* CHANGE: HID interface for user to set and clear events from global
|
||||
variable to function
|
||||
|
||||
0.2.1
|
||||
-----
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Software Release License Agreement
|
||||
|
||||
Copyright (c) 2017-2019, XMOS, All rights reserved.
|
||||
Copyright (c) 2017-2020, XMOS, All rights reserved.
|
||||
|
||||
BY ACCESSING, USING, INSTALLING OR DOWNLOADING THE XMOS SOFTWARE, YOU AGREE TO BE BOUND BY THE FOLLOWING TERMS. IF YOU DO NOT AGREE TO THESE, DO NOT ATTEMPT TO DOWNLOAD, ACCESS OR USE THE XMOS Software.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2011-2019, XMOS Ltd, All rights reserved
|
||||
// Copyright (c) 2011-2020, XMOS Ltd, All rights reserved
|
||||
#include "xua.h"
|
||||
#if XUA_USB_EN
|
||||
#include <xs1.h>
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#if( 0 < HID_CONTROLS )
|
||||
#include "user_hid.h"
|
||||
unsigned char g_hidData[1] = {0};
|
||||
unsigned char g_hidData[HID_DATA_BYTES] = {0};
|
||||
#endif
|
||||
|
||||
void GetADCCounts(unsigned samFreq, int &min, int &mid, int &max);
|
||||
@@ -880,7 +880,7 @@ void XUA_Buffer_Ep(register chanend c_aud_out,
|
||||
case XUD_SetData_Select(c_hid, ep_hid, result):
|
||||
{
|
||||
g_hidData[0]=0;
|
||||
g_hidData[0]=UserHIDGetData();
|
||||
UserHIDGetData(g_hidData);
|
||||
XUD_SetReady_In(ep_hid, g_hidData, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
// Copyright (c) 2013-2019, XMOS Ltd, All rights reserved
|
||||
// Copyright (c) 2013-2020, XMOS Ltd, All rights reserved
|
||||
|
||||
#ifndef __USER_HID_H__
|
||||
#define __USER_HID_H__
|
||||
|
||||
/* These enumerated constants relate to the HID report desc - do not mod */
|
||||
/**
|
||||
* \brief HID event identifiers
|
||||
*
|
||||
* This enumeration defines a constant value for each HID event.
|
||||
* It defines one value for each of the four GPI pins supported in the standard voice products.
|
||||
* It defines a further 28 values for generic events.
|
||||
*/
|
||||
typedef enum hidEventId_t {
|
||||
HID_EVENT_ID_GPI0 = 0,
|
||||
HID_EVENT_ID_GPI1,
|
||||
@@ -39,13 +45,40 @@ typedef enum hidEventId_t {
|
||||
HID_EVENT_ID_EVT27
|
||||
} hidEventId_t;
|
||||
|
||||
#define HID_DATA_SIZE 1
|
||||
#define HID_DATA_BYTES 4
|
||||
|
||||
#if( 0 < HID_CONTROLS )
|
||||
|
||||
unsigned UserHIDGetData( void );
|
||||
/**
|
||||
* \brief Get the data for the next HID report
|
||||
*
|
||||
* \note This function returns the HID data as a list of unsigned char because the
|
||||
* \c XUD_SetReady_In() accepts data for transmission to the USB Host using
|
||||
* this type.
|
||||
*
|
||||
* \param{out} hidData The HID data
|
||||
*/
|
||||
void UserHIDGetData( unsigned char hidData[ HID_DATA_BYTES ]);
|
||||
|
||||
/**
|
||||
* \brief Initialize HID processing
|
||||
*/
|
||||
void UserHIDInit( void );
|
||||
void UserHIDRegisterEvent( const hidEventId_t hidEventId, const int * hidEventData, const unsigned hidEventDataSize );
|
||||
|
||||
/**
|
||||
* \brief Record that a HID event has occurred
|
||||
*
|
||||
* \param{in} hidEventId The identifier of an event which has occurred
|
||||
* \param{in} hidEventData A list of data associated with the event
|
||||
* \param{in} hidEventDataSize The length of the event data list
|
||||
*
|
||||
* \note At present, this function only takes a single element of event data, i.e.
|
||||
* hidEventDataSize must equal 1.
|
||||
*
|
||||
* \note At present, this function treats the event data as a Boolean flag.
|
||||
* Zero means False; all other values mean True.
|
||||
*/
|
||||
void UserHIDRecordEvent( const hidEventId_t hidEventId, const int * hidEventData, const unsigned hidEventDataSize );
|
||||
|
||||
#endif /* ( 0 < HID_CONTROLS ) */
|
||||
#endif /* __USER_HID_H__ */
|
||||
|
||||
Reference in New Issue
Block a user