//-------------------------------------------------------------------------- // // This module includes support routines for the three buttons on the mouse, // the bind button and motion sensor. It also provides logic for debouncing // the three mouse buttons. // //-------------------------------------------------------------------------- // $Archive: /WirelessUSB/WUSB Kits/CY4632 LS KBM RDK/DocSrc/CD_Root/Firmware/Source Code/RDK Mouse/buttons.h $ // $Modtime: 6/16/04 4:38p10/01/04 1:18p $ // $Revision: 910 $ //-------------------------------------------------------------------------- // // Copyright 2003-2004, Cypress Semiconductor Corporation. // // This software is owned by Cypress Semiconductor Corporation (Cypress) // and is protected by and subject to worldwide patent protection (United // States and foreign), United States copyright laws and international // treaty provisions. Cypress hereby grants to licensee a personal, // non-exclusive, non-transferable license to copy, use, modify, create // derivative works of, and compile the Cypress Source Code and derivative // works for the sole purpose of creating custom software in support of // licensee product to be used only in conjunction with a Cypress integrated // circuit as specified in the applicable agreement. Any reproduction, // modification, translation, compilation, or representation of this // software except as specified above is prohibited without the express // written permission of Cypress. // // Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, // WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // Cypress reserves the right to make changes without further notice to the // materials described herein. Cypress does not assume any liability arising // out of the application or use of any product or circuit described herein. // Cypress does not authorize its products for use as critical components in // life-support systems where a malfunction or failure may reasonably be // expected to result in significant injury to the user. The inclusion of // Cypress’ product in a life-support systems application implies that the // manufacturer assumes all risk of such use and in doing so indemnifies // Cypress against all charges. // // Use may be limited by and subject to the applicable Cypress software // license agreement. // //-------------------------------------------------------------------------- #ifndef BUTTONS_H #define BUTTONS_H //-------------------------------------- // Included files //-------------------------------------- #include "cypdef.h" #include "appconfig.h" #include PLATFORM_H //************************************************************************** // Mouse Buttons - Left, Middle, Right //************************************************************************** //-------------------------------------- // API Definitions and Types //-------------------------------------- #define LEFT_BUTTON_REPORT_BIT 0x20 #define RIGHT_BUTTON_REPORT_BIT 0x40 #define MIDDLE_BUTTON_REPORT_BIT 0x80 #define NUMBER_OF_BUTTONS 3 typedef struct { UINT8 buttons; } BUTTON_REPORT; //-------------------------------------- // API Function Declarations //-------------------------------------- #pragma interrupt_handler buttons_isr extern void buttons_isr(void); extern void buttons_init(void); extern void buttons_power_up(void); extern void buttons_power_down(void); extern BOOL buttons_get_report(BUTTON_REPORT *); extern BOOL buttons_up(void); //************************************************************************** // Bind Button & LED //************************************************************************** //-------------------------------------- // API Definitions and Types //-------------------------------------- //-------------------------------------- // API Function Declarations //-------------------------------------- #pragma interrupt_handler bind_button_isr extern void bind_button_isr(void); extern void bind_button_init(void); extern void bind_button_power_up(void); extern void bind_button_power_down(void); #ifdef MOUSE_MOTION_NOT_TIME_SLEEP //************************************************************************** // Motion Sensor //************************************************************************** //-------------------------------------- // API Definitions and Types //-------------------------------------- //-------------------------------------- // API Function Declarations //-------------------------------------- #pragma interrupt_handler motion_isr extern void motion_isr(void); extern void motion_init(void); extern void motion_power_up(void); extern void motion_power_down(void); #define MOTION_ISR() motion_isr() #define MOTION_INIT() motion_init() #define MOTION_POWER_UP() motion_power_up() #define MOTION_POWER_DOWN() motion_power_down() #else #define MOTION_ISR() #define MOTION_INIT() #define MOTION_POWER_UP() #define MOTION_POWER_DOWN() #endif // MOUSE_MOTION_NOT_TIME_SLEEP //************************************************************************** // Button Debounce //************************************************************************** //-------------------------------------- // API Definitions and Types //-------------------------------------- //-------------------------------------- // API Function Declarations //-------------------------------------- extern void debounce_init(void); #endif // BUTTONS_H