3d0993998c
Add double tap switch layer timeout.
László Monda
2017-11-26 01:05:36 +01:00
071be7e815
Implement "hold and double tap" layer switch mode and temporarily treat every hold mode keys this way.
László Monda
2017-11-26 00:23:50 +01:00
bb7faaa799
Make non-accelerated movements gradually accelerate from the start. Make all other movements and speed transitions immediate.
László Monda
2017-11-24 22:49:39 +01:00
368c724e6a
Fix the stuck state of the decelerate key that triggered once it was pressed.
László Monda
2017-11-24 17:39:45 +01:00
210ef31f27
Implement mouse movement acceleration and deceleration.
László Monda
2017-11-24 13:00:05 +01:00
0cb3c7e0ad
Implement horizontal scrolling.
László Monda
2017-11-24 00:59:17 +01:00
ab7e25692a
Use hex numbers as the values of UsbCommandId_*
László Monda
2017-11-23 04:18:37 +01:00
b68e8a736e
Make processMouseAction() handle acceleration and deceleration, even though I can't yet trigger these actions for some reason.
László Monda
2017-11-23 01:54:54 +01:00
4d211f0fe1
Reset mouseMoveCurrentSpeed when the mouse movement keys are no longer pressed, even if a mouse button key stays pressed due to drag and drop or selection purposes.
László Monda
2017-11-22 02:34:37 +01:00
8429ee2b71
Implement mouse acceleration.
László Monda
2017-11-21 21:15:12 +01:00
4bbc49f4ca
Clean up processMouseAction() by using floats instead of divisor values. Move MouseSpeed_* into mouse_speed_action_t
László Monda
2017-11-21 19:01:59 +01:00
322ee0b35f
Rename the misnamed MouseButton_t to MouseButton_6
László Monda
2017-11-21 16:42:27 +01:00
8252da86d8
Rename some files and identifiers that are related to USB commands.
László Monda
2017-11-18 03:30:24 +01:00
086ab239b4
Fix the previously introduced EEPROM read bug by making addressBuffer static. Rename EEPROM_ADDRESS_LENGTH to EEPROM_ADDRESS_SIZE.
László Monda
2017-11-18 03:18:37 +01:00
a7ba0add18
Simplify eeprom.c
László Monda
2017-11-18 03:11:17 +01:00
d2ef63184b
Move updateUsbReports() from main.c to usb_report_updater.c and delete main.h
László Monda
2017-11-17 01:21:30 +01:00
6cf47565f9
Bump version to 3.0.0 and update the changelog.
v3.0.0
3.0.0
László Monda
2017-11-15 22:36:51 +01:00
7f6f9e7094
Detect the use of USB interfaces by introducing IsUsb*ReportSent and compute areUsbReportsSent using them.
László Monda
2017-11-15 16:54:34 +01:00
a0afdcf476
Implement key debouncer.
László Monda
2017-11-14 22:54:53 +01:00
9e18caa0ba
Set the left KEY_SCANNER_INTERVAL_USEC to 1000 / KEYBOARD_MATRIX_ROWS_NUM
László Monda
2017-11-14 13:08:01 +01:00
f63f2f9b96
Adding left/key_scanner.[ch] which I totally forgot.
László Monda
2017-11-14 03:43:51 +01:00
4c97238999
Even though the current code seems to be working fine, call KeyMatrix_Init() before InitKeyScanner() just to be sure.
László Monda
2017-11-14 02:40:51 +01:00
5c84620704
Call KeyMatrix_ScanRow() from an LPTMR interrupt for the left half. Remove KeyMatrix_Scan()
László Monda
2017-11-14 02:29:18 +01:00
ae4d60882f
Use interrupt based keyboard matrix scanning for the right keyboard half. Get rid of INTERRUPT_KEY_SCANNER
László Monda
2017-11-13 02:18:55 +01:00
332f2a69fa
Set up the timer properly and introduce CurrentTime.
László Monda
2017-11-12 17:33:23 +01:00
a91f945591
Add timer.[ch]
László Monda
2017-11-12 04:48:06 +01:00
d0c689146e
Remove unused counter variable.
László Monda
2017-11-12 04:17:38 +01:00
27e64adc33
Extract PIT related macros to the newly created peripherals/pit.h
László Monda
2017-11-12 04:06:46 +01:00
5da6510d7c
Use the menu key in the factory keymap.
László Monda
2017-11-12 01:50:01 +01:00
a4ddf1ff2a
Uppercamelcase read*() config parser functions since they're not local.
László Monda
2017-11-11 16:54:40 +01:00
22141ba1e3
Replace {GET,SET}_USB_BUFFER_UINT8 with {Get,Set}UsbRxBufferUint8
László Monda
2017-11-11 16:49:48 +01:00
f4de0df149
Replace SET_DEBUG_BUFFER_UINT* macros with SetDebugBufferUint* functions for improved type safety and readability.
László Monda
2017-11-11 03:52:39 +01:00
5c7a3faa9c
Use buffer functions in eeprom.c for easier readability.
László Monda
2017-11-11 03:41:03 +01:00
80240c8e9b
Add shared/buffer.[ch] for easily dealing with array values.
László Monda
2017-11-11 03:40:06 +01:00
f45ebdde4f
Comment that the EEPROM address has to be big-endian.
László Monda
2017-11-11 01:15:27 +01:00
e3a121f0d8
Make pressing the reset button revert to the factory preset.
László Monda
2017-11-10 23:42:45 +01:00
f927aef7f5
Put function curlies into their own line according to our coding standards all across the codebase.
László Monda
2017-11-10 23:14:44 +01:00
f3682efe53
Revert to the factory default state when the reset button is pressed upon firmware startup. Display FTY on the display in this case.
László Monda
2017-11-10 22:48:21 +01:00
c06b06ed1b
Make the secondary role work properly when a layer is set and when pressing the non-dual role key for long right after keeping the dual role key pressed.
László Monda
2017-11-10 00:41:33 +01:00
402697c0a3
Don't call applyKeyAction() when a secondary role is triggered because it'd output the scancode of the pressed key which is not the right thing when the secondary role is layer switching.
László Monda
2017-11-09 22:26:44 +01:00
b8846cd601
Add LedDisplay_SetCurrentKeymapText() and use it when reinitializaing the LED display upon disconnect. This fixes the bug that shows FTY on the display upon I2C watchdog recoveries.
László Monda
2017-11-09 20:59:51 +01:00
c2efb5e0d0
Rename watchdog related variables to be more intuitively named.
László Monda
2017-11-09 20:41:19 +01:00
4aad86947c
Set the deviceId of uhk60-right to 1.
László Monda
2017-11-09 18:47:21 +01:00
0421c2f339
Swap SlaveCommand_RequestKeyStates and SlaveCommand_JumpToBootloader, thereby making SlaveCommand_JumpToBootloader the lower number because it's more basic and shouldn't change in the future.
László Monda
2017-11-09 01:49:32 +01:00
c83e331c37
Remove the unused PROTOCOL_RESPONSE_{SUCCESS,GENERIC_ERROR} macros.
László Monda
2017-11-09 01:45:55 +01:00
f8ad10b0c1
Make build/uhk60-left_{debug,release}_kboot.launch build the relevant firmware images before running their update script.
László Monda
2017-11-09 01:34:23 +01:00
f1058294a6
Wrap the whole debug_over_spi.[ch] files into #ifdef DEBUG_OVER_SPI to silence compiler warnings when it's not defined.
László Monda
2017-11-09 01:33:23 +01:00
e5865009f5
Remove unused SetError(), SetGenericError, and SetResponseByte() functions.
László Monda
2017-11-09 01:17:50 +01:00
21c1ded972
Slightly tweak USB command names.
László Monda
2017-11-08 23:14:12 +01:00
98b84bc49c
Change nomenclature in the release script and package.json from master and slave to device and module.
László Monda
2017-11-08 22:57:43 +01:00
272ff3ccbe
Tweak firmware updater script paths according to the changes of the Agent repo.
László Monda
2017-11-08 18:33:00 +01:00
b49d5a7f7e
Add launch configurations for the release and debug versions of the left half firmware.
László Monda
2017-11-08 04:09:58 +01:00
49a94d82b0
Move update-{master,slave}-firmware.js and shared.js into the Agent repo and reference those scripts.
László Monda
2017-11-08 01:27:49 +01:00
fb39d700e0
Rename masters[*].moduleId to deviceId
László Monda
2017-11-08 00:37:49 +01:00
4fa2304e4b
Suppress pressed keys upon layer switcher key release.
László Monda
2017-11-07 02:21:36 +01:00
f6beeecec1
Make local variables static.
László Monda
2017-11-07 01:37:46 +01:00
e3d4eb50db
Make secondary role layer switching work.
László Monda
2017-11-07 00:30:40 +01:00
31fa1a0d5e
Don't make secondary role stuck when holding a layer switcher even after releasing the dual role key.
László Monda
2017-11-07 00:00:02 +01:00
3ac94684e2
Dump mouse related variables via the debug buffer to figure out the cause of occasional mouse freezes.
László Monda
2017-11-06 18:28:23 +01:00
693315222f
Handle secondary role modifiers.
László Monda
2017-11-06 18:11:05 +01:00
3533a8f73c
Rename long presss action to secondary role.
László Monda
2017-11-06 01:58:11 +01:00
34b2875861
Kill the magic numbers of UsbCommand_WriteConfig()
László Monda
2017-11-06 00:57:41 +01:00
8c7014cf8c
Clean up the includes under usb_commands and rename led state variable in usb_command_set_test_led.c
László Monda
2017-11-06 00:51:11 +01:00
9910fe536f
Add USB_STATUS_CODE_SIZE and use it to kill the magic numbers of usb_command_read_config()
László Monda
2017-11-06 00:44:32 +01:00
003f313947
Make UsbCommand_JumpToSlaveBootloader expect a slave slot id instead of a uhkModuleDriverId.
László Monda
2017-11-06 00:32:08 +01:00
379fe6a4c7
Rename DebugInfo to DebugBuffer and related files and variables.
László Monda
2017-11-05 23:36:16 +01:00
67794d460e
Add and use SET_DEBUG_BUFFER_UINT*
László Monda
2017-11-05 23:32:58 +01:00
1449f98781
Remove redundant includes.
László Monda
2017-11-05 23:29:34 +01:00
870dec7519
Fix indentation.
László Monda
2017-11-05 23:03:27 +01:00
1c9e350006
Extract updateUsbBuffer() from UsbCommand_ApplyConfig()
László Monda
2017-11-05 22:56:51 +01:00
df0b0c33b5
Add ParsingStage_* enums.
László Monda
2017-11-05 22:51:43 +01:00
97f044d21f
Simplify the control flow of UsbCommand_ApplyConfig() a bit.
László Monda
2017-11-05 22:45:58 +01:00
88514f82f4
Put all macro arguments into parentheses just to be safe.
László Monda
2017-11-05 22:29:47 +01:00
f7e26eef8a
Split usb_status_code_transfer_config_t as usb_status_code_read_config_t and usb_status_code_write_config_t
László Monda
2017-11-05 22:14:49 +01:00
a8bde4e007
Add {GET,SET}_USB_BUFFER_UINT* and use them wherever possible. Get rid of SetUsb*() functions.
László Monda
2017-11-05 22:09:34 +01:00
58778feb5b
Move UsbStatusCode_JumpToSlaveBootloader_InvalidModuleDriverId to usb_command_jump_to_slave_bootloader.h
László Monda
2017-11-05 19:33:08 +01:00
d78ac1bcf0
Start USB command specific status codes from 2 since 0 and 1 are taken.
László Monda
2017-11-05 19:28:40 +01:00
6db3eb3045
Rename UsbResponse_*() to UsbStatusCode_*(), SetUsbError() to SetUsbStatusCode(), and other USB status codes consistently.
László Monda
2017-11-05 19:25:13 +01:00
eb451d6153
Set UsbResponse_InvalidCommand upon encountering with an invalid USB command.
László Monda
2017-11-05 19:12:37 +01:00
3f52819c0e
Move UsbDebugInfo into usb_command_get_debug_info.[ch] and remove external UsbDebugInfo references.
László Monda
2017-11-05 19:07:12 +01:00
ebd06ebbc6
Reorder includes according to USB command ids.
László Monda
2017-11-05 19:02:24 +01:00
8c42ec27dd
Remove the now unused UsbCommandId_WriteLedDriver
László Monda
2017-11-05 18:13:57 +01:00
6dcfcca10f
Remove unneeded includes and comments from usb_protocol_handler.c
László Monda
2017-11-05 18:10:35 +01:00
45420a348b
Extract UsbCommand_SetLedPwmBrightness() into its own file.
László Monda
2017-11-05 18:08:35 +01:00
84ffe50dac
Extract UsbCommand_GetAdcValue() to its own file.
László Monda
2017-11-05 01:35:12 +01:00
68f9aac883
Extract UsbCommand_SetTestLed() into its own file.
László Monda
2017-11-05 01:28:15 +01:00
d547b9b324
Remove UsbCommandId_ReadMergeSensor now that it can be queried via UsbCommandId_GetKeyboardState.
László Monda
2017-11-05 01:21:23 +01:00
e907e65751
Extract UsbCommand_Reenumerate() into its own file.
László Monda
2017-11-05 01:18:37 +01:00
0febc9dd69
Uncomment the exec of user-config-json-to-bin.ts now that it works from outside its own directory. Make make-release.js verbose.
László Monda
2017-11-04 17:57:19 +01:00
fe74ea1578
Extract UsbCommand_GetDebugInfo() into its own file.
László Monda
2017-11-04 10:46:04 +01:00
67e304a787
Extract UsbCommand_GetKeyboardState() into its own file.
László Monda
2017-11-04 10:30:37 +01:00
4de340967c
Extract UsbCommand_LaunchEepromTransferLegacy() into its own file.
László Monda
2017-11-04 10:06:55 +01:00
54496ca210
Extract UsbCommand_WriteConfig()
László Monda
2017-11-04 08:43:27 +01:00
232f595b41
Extract UsbCommand_SendKbootCommand()
László Monda
2017-11-04 08:38:19 +01:00
8a255aaf5f
Extract UsbCommand_JumpToSlaveBootloader()
László Monda
2017-11-04 08:32:54 +01:00
ad4fe1a18d
Extract system properties to usb_command_get_property.c
László Monda
2017-11-04 02:38:00 +01:00
336c2e5368
Extract UsbCommand_ReadConfig() to usb_command_read_config.c. Rename Set{Response,Error}* to SetUsb{Response,Error}
László Monda
2017-11-04 02:11:49 +01:00
c0b41b8e60
Remove the ApplyConfig() prototype because it doesn't exist anymore.
László Monda
2017-11-04 01:36:55 +01:00
457f4802d4
Rename usb_command_t to usb_command_id_t and UsbCommand_* to UsbCommandId_*
László Monda
2017-11-04 01:35:31 +01:00
ae3efce452
Extract the applyConfig USB command into usb_command_apply_config.[ch]
László Monda
2017-11-04 01:32:03 +01:00