]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Changed VID/PID, added commands, refactoring
authorWilba6582 <Jason.S.Wiliams@gmail.com>
Fri, 28 Sep 2018 16:01:00 +0000 (02:01 +1000)
committerJack Humbert <jack.humb@gmail.com>
Fri, 28 Sep 2018 16:36:55 +0000 (12:36 -0400)
keyboards/rama/m60_a/config.h
keyboards/zeal60/zeal60.c
keyboards/zeal60/zeal60_api.h

index 45e7d88963860f218fea9b8b84b90083bd5757ba..03794965fcfc86c2c2cf7c12db4716be86b95666 100644 (file)
@@ -18,8 +18,8 @@
 #include "config_common.h"
 
 // USB Device descriptor parameter
-#define VENDOR_ID       0xFEED // This is same as Zeal60 for now
-#define PRODUCT_ID      0x6060 // This is same as Zeal60 for now
+#define VENDOR_ID       0x5241 // "RW"
+#define PRODUCT_ID      0x060A // 60-A
 #define DEVICE_VER      0x0001
 #define MANUFACTURER    RAMA.WORKS
 #define PRODUCT         RAMA M60-A
index 092235ca61bbd8b8c160a70ed64166bb84c119f2..be54f75f3d10050df8953f0c96faeab91dd920bf 100644 (file)
@@ -38,6 +38,14 @@ void eeprom_set_valid(bool valid)
        eeprom_update_byte(((void*)EEPROM_VERSION_ADDR), valid ? EEPROM_VERSION : 0xFF);
 }
 
+void eeprom_reset(void)
+{
+       // Set the Zeal60 specific EEPROM state as invalid.
+       eeprom_set_valid(false);
+       // Set the TMK/QMK EEPROM state as invalid.
+       eeconfig_disable();
+}
+
 #ifdef RAW_ENABLE
 
 void raw_hid_receive( uint8_t *data, uint8_t length )
@@ -54,7 +62,7 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
                }
                case id_get_keyboard_value:
                {
-                       if ( command_data[0] == 0x01 )
+                       if ( command_data[0] == id_uptime )
                        {
                                uint32_t value = timer_read32();
                                command_data[1] = (value >> 24 ) & 0xFF;
@@ -104,6 +112,21 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
                        break;
                }
 #endif // RGB_BACKLIGHT_ENABLED
+               case id_eeprom_reset:
+               {
+                       eeprom_reset();
+                       break;
+               }
+               case id_bootloader_jump:
+               {
+                       // Need to send data back before the jump
+                       // Informs host that the command is handled
+                       raw_hid_send( data, length );
+                       // Give host time to read it
+                       wait_ms(100);
+                       bootloader_jump();
+                       break;
+               }
                default:
                {
                        // Unhandled message.
@@ -119,74 +142,61 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
 
 #endif
 
-void bootmagic_lite(void)
+void main_init(void)
 {
-       // The lite version of TMK's bootmagic.
-       // 100% less potential for accidentally making the
-       // keyboard do stupid things.
-
-       // We need multiple scans because debouncing can't be turned off.
-       matrix_scan();
-       wait_ms(DEBOUNCING_DELAY);
-       wait_ms(DEBOUNCING_DELAY);
-       matrix_scan();
-
-       // If the Esc and space bar are held down on power up,
-       // reset the EEPROM valid state and jump to bootloader.
-       // Assumes Esc is at [0,0] and spacebar is at [4,7].
-       // This isn't very generalized, but we need something that doesn't
-       // rely on user's keymaps in firmware or EEPROM.
-       if ( ( matrix_get_row(0) & (1<<0) ) &&
-               ( matrix_get_row(4) & (1<<7) ) )
-       {
-               // Set the Zeal60 specific EEPROM state as invalid.
-               eeprom_set_valid(false);
-               // Set the TMK/QMK EEPROM state as invalid.
-               eeconfig_disable();
-               // Jump to bootloader.
-               bootloader_jump();
-       }
-}
-
-void matrix_init_kb(void)
-{
-       bootmagic_lite();
-
        // If the EEPROM has the magic, the data is good.
        // OK to load from EEPROM.
-       if (eeprom_is_valid())
-       {
+       if (eeprom_is_valid()) {
 #if RGB_BACKLIGHT_ENABLED
                backlight_config_load();
 #endif // RGB_BACKLIGHT_ENABLED
-               // TODO: do something to "turn on" keymaps in EEPROM?
-       }
-       else
-       {
+       } else  {
 #if RGB_BACKLIGHT_ENABLED
                // If the EEPROM has not been saved before, or is out of date,
                // save the default values to the EEPROM. Default values
                // come from construction of the zeal_backlight_config instance.
                backlight_config_save();
 #endif // RGB_BACKLIGHT_ENABLED
-
 #ifdef DYNAMIC_KEYMAP_ENABLE
                // This resets the keymaps in EEPROM to what is in flash.
                dynamic_keymap_reset();
 #endif
-
                // Save the magic number last, in case saving was interrupted
                eeprom_set_valid(true);
        }
-
 #if RGB_BACKLIGHT_ENABLED
        // Initialize LED drivers for backlight.
        backlight_init_drivers();
-       
+
        backlight_timer_init();
        backlight_timer_enable();
 #endif // RGB_BACKLIGHT_ENABLED
+}
 
+void bootmagic_lite(void)
+{
+       // The lite version of TMK's bootmagic.
+       // 100% less potential for accidentally making the
+       // keyboard do stupid things.
+
+       // We need multiple scans because debouncing can't be turned off.
+       matrix_scan();
+       wait_ms(DEBOUNCING_DELAY);
+       wait_ms(DEBOUNCING_DELAY);
+       matrix_scan();
+
+       // If the Esc (matrix 0,0) is held down on power up,
+       // reset the EEPROM valid state and jump to bootloader.
+       if ( matrix_get_row(0) & (1<<0) ) {
+               eeprom_reset();
+               bootloader_jump();
+       }
+}
+
+void matrix_init_kb(void)
+{
+       bootmagic_lite();
+       main_init();
        matrix_init_user();
 }
 
@@ -205,29 +215,22 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record)
        process_record_backlight(keycode, record);
 #endif // BACKLIGHT_ENABLED
 
-       switch(keycode)
-       {
+       switch(keycode) {
                case FN_MO13:
-                       if (record->event.pressed)
-                       {
+                       if (record->event.pressed) {
                                layer_on(1);
                                update_tri_layer(1, 2, 3);
-                       }
-                       else
-                       {
+                       } else {
                                layer_off(1);
                                update_tri_layer(1, 2, 3);
                        }
                        return false;
                        break;
                case FN_MO23:
-                       if (record->event.pressed)
-                       {
+                       if (record->event.pressed) {
                                layer_on(2);
                                update_tri_layer(1, 2, 3);
-                       }
-                       else
-                       {
+                       } else {
                                layer_off(2);
                                update_tri_layer(1, 2, 3);
                        }
@@ -247,8 +250,7 @@ uint16_t keymap_function_id_to_action( uint16_t function_id )
        if ( function_id >= 0x0F00 && function_id <= 0x0FFF )
        {
                uint8_t id = function_id & 0xFF;
-               switch ( id )
-               {
+               switch ( id ) {
                        case TRIPLE_TAP_1_3:
                        case TRIPLE_TAP_2_3:
                        {
@@ -293,24 +295,16 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
        {
        case TRIPLE_TAP_1_3:
        case TRIPLE_TAP_2_3:
-               if (record->event.pressed)
-               {
+               if (record->event.pressed) {
                        layer_on( id == TRIPLE_TAP_1_3 ? 1 : 2 );
-
-                       if (record->tap.count && !record->tap.interrupted)
-                       {
-                               if (record->tap.count >= 3)
-                               {
+                       if (record->tap.count && !record->tap.interrupted) {
+                               if (record->tap.count >= 3) {
                                        layer_invert(3);
                                }
-                       }
-                       else
-                       {
+                       } else {
                                record->tap.count = 0;
                        }
-               }
-               else
-               {
+               } else {
                        layer_off( id == TRIPLE_TAP_1_3 ? 1 : 2 );
                }
                break;
index eaac3ad7ce1782fd04a41be6c8f99f1d05ec6324..a65bf2f509f89b62c561a733ae3063d8199ad488 100644 (file)
@@ -28,6 +28,13 @@ enum zeal60_command_id
        id_backlight_config_set_value,
        id_backlight_config_get_value,
        id_backlight_config_save,
-
+       id_eeprom_reset,
+       id_bootloader_jump,
        id_unhandled = 0xFF,
 };
+
+enum zeal60_keyboard_value_id
+{
+       id_uptime = 0x01
+};
+