From f1d47702e8715cf608eebd2c6f8bff8f0c3489c4 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 6 Nov 2013 20:06:28 +0700 Subject: [PATCH] refractor mouse dev app --- demos/device/device_os_none/main.c | 28 +------- demos/device/device_os_none/moused_app.c | 85 +++++++++++++++++++++++ demos/device/device_os_none/moused_app.h | 74 ++++++++++++++++++++ demos/device/device_os_none/tusb_config.h | 4 +- 4 files changed, 164 insertions(+), 27 deletions(-) create mode 100644 demos/device/device_os_none/moused_app.c create mode 100644 demos/device/device_os_none/moused_app.h diff --git a/demos/device/device_os_none/main.c b/demos/device/device_os_none/main.c index 7b87bd12a..175e9bf7b 100644 --- a/demos/device/device_os_none/main.c +++ b/demos/device/device_os_none/main.c @@ -48,6 +48,7 @@ #include "mscd_app.h" #include "keyboardd_app.h" +#include "moused_app.h" //--------------------------------------------------------------------+ // MACRO CONSTANT TYPEDEF @@ -61,11 +62,6 @@ OSAL_TASK_DEF(led_blinking_task, 128, LED_BLINKING_APP_TASK_PRIO); void print_greeting(void); - -void keyboard_device_app_task(void * p_para); -void mouse_device_app_task(void * p_para); - - #if TUSB_CFG_OS == TUSB_OS_NONE // like a real RTOS, this function is a main loop invoking each task in application and never return void os_none_start_scheduler(void) @@ -80,7 +76,7 @@ void os_none_start_scheduler(void) #endif #if TUSB_CFG_DEVICE_HID_MOUSE - mouse_device_app_task(NULL); + moused_app_task(NULL); #endif } } @@ -98,6 +94,7 @@ int main(void) msc_dev_app_init(); keyboardd_app_init(); + moused_app_init(); //------------- start OS scheduler (never return) -------------// #if TUSB_CFG_OS == TUSB_OS_FREERTOS @@ -151,25 +148,6 @@ int main(void) return 0; } -#if TUSB_CFG_DEVICE_HID_MOUSE -hid_mouse_report_t mouse_report TUSB_CFG_ATTR_USBRAM; -void mouse_device_app_task(void * p_para) -{ - if (tusbd_is_configured(0)) - { - static uint32_t count =0; - if (count++ < 10) - { - if ( !tusbd_hid_mouse_is_busy(0) ) - { - mouse_report.x = mouse_report.y = 20; - tusbd_hid_mouse_send(0, &mouse_report ); - } - } - } -} -#endif - //--------------------------------------------------------------------+ // BLINKING TASK //--------------------------------------------------------------------+ diff --git a/demos/device/device_os_none/moused_app.c b/demos/device/device_os_none/moused_app.c new file mode 100644 index 000000000..cca11b249 --- /dev/null +++ b/demos/device/device_os_none/moused_app.c @@ -0,0 +1,85 @@ +/**************************************************************************/ +/*! + @file moused_app.c + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. + + This file is part of the tinyusb stack. +*/ +/**************************************************************************/ + +#include "moused_app.h" + +#if TUSB_CFG_DEVICE_HID_MOUSE +//--------------------------------------------------------------------+ +// INCLUDE +//--------------------------------------------------------------------+ + +//--------------------------------------------------------------------+ +// MACRO CONSTANT TYPEDEF +//--------------------------------------------------------------------+ + +//--------------------------------------------------------------------+ +// INTERNAL OBJECT & FUNCTION DECLARATION +//--------------------------------------------------------------------+ +hid_mouse_report_t mouse_report TUSB_CFG_ATTR_USBRAM; + +//--------------------------------------------------------------------+ +// IMPLEMENTATION +//--------------------------------------------------------------------+ +void tusbd_hid_mouse_isr(uint8_t coreid, tusb_event_t event, uint32_t xferred_bytes) +{ + +} + +void moused_app_init(void) +{ + +} + +OSAL_TASK_FUNCTION( moused_app_task ) (void* p_task_para) +{ + if (tusbd_is_configured(0)) + { + static uint32_t count =0; + if (count++ < 10) + { + if ( !tusbd_hid_mouse_is_busy(0) ) + { + mouse_report.x = mouse_report.y = 20; + tusbd_hid_mouse_send(0, &mouse_report ); + } + } + } +} + +#endif + diff --git a/demos/device/device_os_none/moused_app.h b/demos/device/device_os_none/moused_app.h new file mode 100644 index 000000000..2b49d4373 --- /dev/null +++ b/demos/device/device_os_none/moused_app.h @@ -0,0 +1,74 @@ +/**************************************************************************/ +/*! + @file moused_app.h + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. + + This file is part of the tinyusb stack. +*/ +/**************************************************************************/ + +/** \ingroup TBD + * \defgroup TBD + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_MOUSED_APP_H_ +#define _TUSB_MOUSED_APP_H_ + +#include "boards/board.h" +#include "tusb.h" + +#ifdef __cplusplus + extern "C" { +#endif + +#if TUSB_CFG_DEVICE_HID_MOUSE + +void moused_app_init(void); +OSAL_TASK_FUNCTION( moused_app_task ) (void* p_task_para); + +#else + +#define moused_app_init() +#define moused_app_task(x) + +#endif + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_MOUSED_APP_H_ */ + +/** @} */ diff --git a/demos/device/device_os_none/tusb_config.h b/demos/device/device_os_none/tusb_config.h index 9f76468b6..6e1cb5f5d 100644 --- a/demos/device/device_os_none/tusb_config.h +++ b/demos/device/device_os_none/tusb_config.h @@ -96,9 +96,9 @@ //------------- CLASS -------------// #define TUSB_CFG_DEVICE_HID_KEYBOARD 1 -#define TUSB_CFG_DEVICE_HID_MOUSE 0 +#define TUSB_CFG_DEVICE_HID_MOUSE 1 #define TUSB_CFG_DEVICE_HID_GENERIC 0 -#define TUSB_CFG_DEVICE_MSC 0 +#define TUSB_CFG_DEVICE_MSC 1 #define TUSB_CFG_DEVICE_CDC 0 //--------------------------------------------------------------------+