mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-17 13:48:32 +03:00
Renamed main folder to firmware
This commit is contained in:
216
firmware/atmel_softpack_libraries/usb/include/HIDDKeyboard.h
Normal file
216
firmware/atmel_softpack_libraries/usb/include/HIDDKeyboard.h
Normal file
@@ -0,0 +1,216 @@
|
||||
/* ----------------------------------------------------------------------------
|
||||
* ATMEL Microcontroller Software Support
|
||||
* ----------------------------------------------------------------------------
|
||||
* Copyright (c) 2008, Atmel Corporation
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the disclaimer below.
|
||||
*
|
||||
* Atmel's name may not be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Definition of methods for using a HID keyboard function.
|
||||
*/
|
||||
|
||||
#ifndef HIDDKEYBOARD_H
|
||||
#define HIDDKEYBOARD_H
|
||||
|
||||
/** \addtogroup usbd_hid_key
|
||||
*@{
|
||||
*/
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Headers
|
||||
*------------------------------------------------------------------------------*/
|
||||
|
||||
#include "board.h"
|
||||
|
||||
#include "USBDescriptors.h"
|
||||
#include "USBRequests.h"
|
||||
|
||||
#include "HIDDescriptors.h"
|
||||
#include "USBDDriver.h"
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Definitions
|
||||
*------------------------------------------------------------------------------*/
|
||||
|
||||
/** \addtogroup usbd_hid_kbd_desc HIDD Keyboard Driver Definitions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** Maximum number of simultaneous key presses. */
|
||||
#define HIDDKeyboardInputReport_MAXKEYPRESSES 3
|
||||
|
||||
/** \addtogroup usbd_hid_kbd_keys HID Keypad keys
|
||||
* @{
|
||||
* This page lists definition for HID keypad keys.
|
||||
*
|
||||
* \section Keys
|
||||
* - HIDDKeyboardDescriptors_FIRSTMODIFIERKEY
|
||||
* - HIDDKeyboardDescriptors_LASTMODIFIERKEY
|
||||
* - HIDDKeyboardDescriptors_FIRSTSTANDARDKEY
|
||||
* - HIDDKeyboardDescriptors_LASTSTANDARDKEY
|
||||
*/
|
||||
/** Key code of the first accepted modifier key */
|
||||
#define HIDDKeyboardDescriptors_FIRSTMODIFIERKEY HIDKeypad_LEFTCONTROL
|
||||
/** Key code of the last accepted modifier key */
|
||||
#define HIDDKeyboardDescriptors_LASTMODIFIERKEY HIDKeypad_RIGHTGUI
|
||||
/** Key code of the first accepted standard key */
|
||||
#define HIDDKeyboardDescriptors_FIRSTSTANDARDKEY 0
|
||||
/** Key code of the last accepted standard key */
|
||||
#define HIDDKeyboardDescriptors_LASTSTANDARDKEY HIDKeypad_NUMLOCK
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usbd_hid_kbd_polling HID Keyboard Default Polling Rates
|
||||
* @{
|
||||
*/
|
||||
/** Default HID interrupt IN endpoint polling rate FS (16ms). */
|
||||
#define HIDDKeyboardDescriptors_INTERRUPTIN_POLLING_FS 16
|
||||
/** Default HID interrupt IN endpoint polling rate HS (16ms). */
|
||||
#define HIDDKeyboardDescriptors_INTERRUPTIN_POLLING_HS 8
|
||||
/** Default interrupt OUT endpoint polling rate FS (16ms). */
|
||||
#define HIDDKeyboardDescriptors_INTERRUPTOUT_POLLING_FS 16
|
||||
/** Default interrupt OUT endpoint polling rate HS (16ms). */
|
||||
#define HIDDKeyboardDescriptors_INTERRUPTOUT_POLLING_HS 8
|
||||
/** @}*/
|
||||
|
||||
/** Size of the report descriptor in bytes */
|
||||
#define HIDDKeyboard_REPORTDESCRIPTORSIZE 61
|
||||
|
||||
/** @}*/
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Types
|
||||
*------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef __ICCARM__ /* IAR */
|
||||
#pragma pack(1) /* IAR */
|
||||
#define __attribute__(...) /* IAR */
|
||||
#endif /* IAR */
|
||||
|
||||
/**
|
||||
* \typedef HIDDKeyboardOutputReport
|
||||
* \brief HID output report structure used by the host to control the state of
|
||||
* the keyboard LEDs.
|
||||
*
|
||||
* Only the first three bits are relevant, the other 5 are used as
|
||||
* padding bits.
|
||||
*/
|
||||
typedef struct _HIDDKeyboardOutputReport {
|
||||
|
||||
uint8_t numLockStatus:1, /** State of the num. lock LED. */
|
||||
capsLockStatus:1, /** State of the caps lock LED. */
|
||||
scrollLockStatus:1, /** State of the scroll lock LED. */
|
||||
padding:5; /** Padding bits. */
|
||||
|
||||
} __attribute__ ((packed)) HIDDKeyboardOutputReport; /* GCC */
|
||||
|
||||
/**
|
||||
* \typedef HIDDKeyboardInputReport
|
||||
* \brief HID input report structure used by the keyboard driver to notify the
|
||||
* host of pressed keys.
|
||||
*
|
||||
* The first byte is used to report the state of modifier keys. The
|
||||
* other three contains the keycodes of the currently pressed keys.
|
||||
*/
|
||||
typedef struct _HIDDKeyboardInputReport {
|
||||
|
||||
/** State of modifier keys. */
|
||||
uint8_t bmModifierKeys:8;
|
||||
/** Key codes of pressed keys. */
|
||||
uint8_t pressedKeys[HIDDKeyboardInputReport_MAXKEYPRESSES];
|
||||
} __attribute__ ((packed)) HIDDKeyboardInputReport; /* GCC */
|
||||
|
||||
|
||||
/**
|
||||
* \typedef HIDDKeyboardDriverConfigurationDescriptors
|
||||
* \brief List of descriptors that make up the configuration descriptors of a
|
||||
* device using the HID keyboard driver.
|
||||
*/
|
||||
typedef struct _HIDDKeyboardDriverConfigurationDescriptors {
|
||||
|
||||
/** Configuration descriptor. */
|
||||
USBConfigurationDescriptor configuration;
|
||||
/** Interface descriptor. */
|
||||
USBInterfaceDescriptor interface;
|
||||
/** HID descriptor. */
|
||||
HIDDescriptor1 hid;
|
||||
/** Interrupt IN endpoint descriptor. */
|
||||
USBEndpointDescriptor interruptIn;
|
||||
/** Interrupt OUT endpoint descriptor. */
|
||||
USBEndpointDescriptor interruptOut;
|
||||
|
||||
} __attribute__ ((packed)) HIDDKeyboardDriverConfigurationDescriptors;
|
||||
|
||||
#ifdef __ICCARM__ /* IAR */
|
||||
#pragma pack() /* IAR */
|
||||
#endif /* IAR */
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Exported functions
|
||||
*------------------------------------------------------------------------------*/
|
||||
|
||||
extern void HIDDKeyboard_Initialize(USBDDriver * pUsbd,uint8_t bInterfaceNb);
|
||||
|
||||
extern void HIDDKeyboard_ConfigureFunction( USBGenericDescriptor * pDescriptors, uint16_t wLength);
|
||||
|
||||
extern uint32_t HIDDKeyboard_RequestHandler( const USBGenericRequest *request);
|
||||
|
||||
extern uint32_t HIDDKeyboard_ChangeKeys(
|
||||
uint8_t *pressedKeys,
|
||||
uint8_t pressedKeysSize,
|
||||
uint8_t *releasedKeys,
|
||||
uint8_t releasedKeysSize);
|
||||
|
||||
extern void HIDDKeyboard_RemoteWakeUp(void);
|
||||
|
||||
extern void HIDDKeyboardCallbacks_LedsChanged(
|
||||
uint8_t numLockStatus,
|
||||
uint8_t capsLockStatus,
|
||||
uint8_t scrollLockStatus);
|
||||
|
||||
|
||||
extern void HIDDKeyboardInputReport_Initialize(HIDDKeyboardInputReport *report);
|
||||
|
||||
extern void HIDDKeyboardInputReport_PressStandardKey( HIDDKeyboardInputReport *report, uint8_t key ) ;
|
||||
|
||||
extern void HIDDKeyboardInputReport_ReleaseStandardKey( HIDDKeyboardInputReport *report, uint8_t key ) ;
|
||||
|
||||
extern void HIDDKeyboardInputReport_PressModifierKey( HIDDKeyboardInputReport *report, uint8_t key);
|
||||
|
||||
extern void HIDDKeyboardInputReport_ReleaseModifierKey( HIDDKeyboardInputReport *report, uint8_t key);
|
||||
|
||||
|
||||
extern void HIDDKeyboardOutputReport_Initialize( HIDDKeyboardOutputReport *report);
|
||||
|
||||
extern uint8_t HIDDKeyboardOutputReport_GetNumLockStatus( const HIDDKeyboardOutputReport *report);
|
||||
|
||||
extern uint8_t HIDDKeyboardOutputReport_GetCapsLockStatus( const HIDDKeyboardOutputReport *report);
|
||||
|
||||
extern uint8_t HIDDKeyboardOutputReport_GetScrollLockStatus( const HIDDKeyboardOutputReport *report);
|
||||
|
||||
/**@}*/
|
||||
|
||||
#endif /*#ifndef HIDDKEYBOARD_H*/
|
||||
|
||||
Reference in New Issue
Block a user