Commit Graph
38 Commits
Author SHA1 Message Date
Kristian Sloth Lauszus 724378cf6c Make sure we do not try to send another report before the old one has finished sending 2018-06-23 17:33:20 +02:00
Kristian Sloth Lauszus 5e97ad1b3c Just compare the active report with the inactive report stored in each interface driver 2018-06-22 17:55:21 +02:00
Kristian Sloth Lauszus b284e9fa58 Make sure we send out a all zero report once when the a mouse report has been sent 2018-06-07 02:10:27 +02:00
Kristian Sloth Lauszus 1a0da7971a Send out the mouse report continuously if the report is not zeros 2018-06-07 01:56:16 +02:00
Kristian Sloth Lauszus 53a82a5f57 Removed unused variables, as the actions are no longer sent from within the interrupts 2018-06-07 01:50:12 +02:00
Kristian Sloth Lauszus 10985abcdb The UHK now only sends out data when it changes
Fixes #72, fixes #84 and fixes #85
2018-06-07 00:18:40 +02:00
Kristian Sloth Lauszus e12e219b4e Various fixes and improvements (#96)
* Global variables shared between an interrupt and the main code should be volatile

See: https://www.embedded.com/electronics-blogs/beginner-s-corner/4023801/Introduction-to-the-Volatile-Keyword

* There is no reason to change the active report if it has not changed

* Declare local functions and variables static

This both helps the compiler and the programmer
2018-03-11 19:19:15 +01:00
László Monda 0911e67bf6 Fix the coding style of usb_interface_basic_keyboard.c 2018-02-11 22:28:12 +01:00
Kristian Sloth Lauszus 1af28a79db Detect Caps Lock state and set the LED accordingly (#91)
Fixes #65
2018-02-11 12:45:46 +01:00
László Monda a5ce90779c Merge all the substructures of UsbDeviceCompositeConfigList across different files to a single structure. 2017-12-04 20:41:22 +01:00
László Monda 8cb8654459 Merge the substructures of UsbMouseClass into a single structure. 2017-12-04 19:57:43 +01:00
László Monda 745e8e1cf0 Merge the substructures of UsbSystemKeyboardClass into a single structure. 2017-12-04 19:50:39 +01:00
László Monda 5341109845 Merge the substructures of UsbMediaKeyboardClass into a single structure. 2017-12-04 19:41:51 +01:00
László Monda ff0e5b0aa3 Merge the structs of UsbBasicKeyboardClass into a single structure. 2017-12-04 19:33:53 +01:00
László Monda c4e79d8ed2 Merge the all the structures of UsbGenericHidClass into a single structure. 2017-12-04 19:16:04 +01:00
László Monda 6780c8177c Expose per-interface count values for debugging purposes via USB. 2017-12-04 17:38:31 +01:00
László Monda 729e0be0ad Make scrolling utilize mouse_kinetic_state_t, just like mouse movements. Fix scrolling issue by making distance float. Add new debug functions for ints and float. 2017-11-28 02:01:26 +01:00
László Monda d2ef63184b Move updateUsbReports() from main.c to usb_report_updater.c and delete main.h 2017-11-17 01:21:30 +01:00
László Monda f4de0df149 Replace SET_DEBUG_BUFFER_UINT* macros with SetDebugBufferUint* functions for improved type safety and readability. 2017-11-11 03:52:39 +01:00
László Monda 3ac94684e2 Dump mouse related variables via the debug buffer to figure out the cause of occasional mouse freezes. 2017-11-06 18:28:23 +01:00
László Monda 3f52819c0e Move UsbDebugInfo into usb_command_get_debug_info.[ch] and remove external UsbDebugInfo references. 2017-11-05 19:07:12 +01:00
László Monda 00dfd96d55 Instead of scanning the keyboard matrix from the main loop and utilizing busy loops, try to use a PIT interrupt handler to do the same thing, scanning one row per interrupt call without busy loops.
For some reason, this makes the movement of the mouse pointer very slow and makes it jump from time to time, so I ended up adding INTERRUPT_KEY_SCANNER and disabling the timer interrupt.
Also double bufferred the mouse report just like the others. Unfortunately this does not affect this issue.
2017-11-02 01:11:41 +01:00
László Monda 569493cbfa Add UsbDebugInfo to aid future debugging via USB. 2017-10-28 17:12:52 +02:00
László Monda 6bdd320ed8 Reorder USB interfaces all across the codebase in the following order: generic HID, basic keyboard, media keyboard, system keyboard, mouse. 2017-10-26 00:52:20 +02:00
László Monda 4295793fb9 Add ATTR_* macros in the newly created attributes.h and use them wherever possible for improved readability. 2017-10-04 22:26:48 +02:00
László Monda 4666b24c69 Change UsbMouseReport back to extern that I screwed up in ecf1ad2468 2017-09-28 14:13:24 +02:00
László Monda 751810ec4c Explicitly add void to the argument list of zero argument functions. 2017-09-28 03:03:11 +02:00
László Monda ecf1ad2468 Don't use the extern keyword for functions because it's redundant. 2017-09-28 02:37:55 +02:00
László Monda e6b5b3b3a5 Read the hardware configuration area and the user configuration area of the EEPROM into the RAM and try to apply it. 2017-09-14 09:55:29 +02:00
László Monda 237ef3c34a Rename action.h to key_action.h 2017-06-15 19:27:44 +02:00
László Monda cca1e49d18 Rename the misspelled peripherials directory to peripherals. 2017-04-15 01:00:55 +02:00
László Monda 62a3f6b3a4 Add system keyboard interface and add sleep, power and wake keys. 2017-03-06 01:58:02 +01:00
László Monda c7f101b67f Extract USB_*_INTERFACE_COUNT macros to usb_interface_*.h files and make usb_device_config.h use them along with USB_*_ENDPOINT_COUNT macros. 2017-03-05 23:45:41 +01:00
László Monda c887b5e309 Add another HID interface using the consumer HID class for media keys. Resolves #32. 2017-03-03 20:21:05 +01:00
László Monda 8b46810643 Update USB reports from the main loop instead of the callback of the USB keyboard interface. 2017-02-26 11:10:04 +01:00
László Monda 5055fa6e77 Remove the usb_desciptors include path and include the full path of these files. 2017-02-26 03:05:15 +01:00
László Monda 6e415696d7 Move merge_sensor.[ch], reset_button.[ch] and test_led.[ch] into the newly created peripherials directory. 2017-02-26 02:50:21 +01:00
László Monda 6f6d116351 Move usb_interface_*.[ch] files to the newly created usb_interfaces directory. 2017-02-26 02:45:43 +01:00