diff options
author | tmk <nobody@nowhere> | 2012-06-28 23:05:21 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2012-06-28 23:05:21 +0900 |
commit | cc68adeb5744cba9e8650bab04ff0f0a4033db9f (patch) | |
tree | e853b1e6e48cf61b7763615a7259765a2095b621 /keyboard | |
parent | 3d81d5221eac9ca9620ba9043a250dcb8371b22e (diff) |
Add protocol/lufa. LUFA supported now.
Diffstat (limited to 'keyboard')
-rw-r--r-- | keyboard/hhkb/keymap.c | 2 | ||||
-rw-r--r-- | keyboard/lufa/config.h | 76 | ||||
-rw-r--r-- | keyboard/lufa/descriptor.c | 509 | ||||
-rw-r--r-- | keyboard/lufa/descriptor.h | 98 | ||||
-rw-r--r-- | keyboard/lufa/keymap.c | 195 | ||||
-rw-r--r-- | keyboard/lufa/led.c | 24 | ||||
-rw-r--r-- | keyboard/lufa/lufa.c | 386 | ||||
-rw-r--r-- | keyboard/lufa/lufa.h | 45 | ||||
-rw-r--r-- | keyboard/lufa/matrix.c | 271 | ||||
-rw-r--r-- | keyboard/macway/Makefile | 53 | ||||
-rw-r--r-- | keyboard/macway/Makefile.lufa (renamed from keyboard/lufa/Makefile) | 107 | ||||
-rw-r--r-- | keyboard/macway/Makefile.pjrc | 96 | ||||
-rw-r--r-- | keyboard/macway/config.h | 6 | ||||
-rw-r--r-- | keyboard/macway/keymap.c | 8 |
14 files changed, 133 insertions, 1743 deletions
diff --git a/keyboard/hhkb/keymap.c b/keyboard/hhkb/keymap.c index 85a7c31b7e..88a6737ba2 100644 --- a/keyboard/hhkb/keymap.c +++ b/keyboard/hhkb/keymap.c @@ -110,7 +110,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Gui |Alt |Space |Alt |xxx| * `--------------------------------------------' */ - KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,BRK, UP, NO, BSPC, \ LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,FN1, \ diff --git a/keyboard/lufa/config.h b/keyboard/lufa/config.h deleted file mode 100644 index 5368b38d2e..0000000000 --- a/keyboard/lufa/config.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -/* controller configuration */ -#include "controller_teensy.h" - - -/* USB Device descriptor */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0xBEE6 -#define DEVICE_VER 0x0202 -#define MANUFACTURER t.m.k. -#define PRODUCT Macway mod(LUFA) - - -/* message strings */ -#define DESCRIPTION t.m.k. keyboard firmware for Macway mod(LUFA) - - -/* matrix size */ -#define MATRIX_ROWS 9 -#define MATRIX_COLS 8 -/* define if matrix has ghost */ -#define MATRIX_HAS_GHOST -/* Set 0 if need no debouncing */ -#define DEBOUNCE 5 - - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_LCTRL) | MOD_BIT(KB_LALT) | MOD_BIT(KB_LGUI)) || \ - keyboard_report->mods == (MOD_BIT(KB_LSHIFT) | MOD_BIT(KB_RSHIFT)) \ -) - - -/* layer switching */ -#define LAYER_SWITCH_DELAY 100 -#define LAYER_SEND_FN_TERM 300 - - -/* mouse keys */ -#ifdef MOUSEKEY_ENABLE -# define MOUSEKEY_DELAY_TIME 192 -#endif - - -/* PS/2 mouse */ -#ifdef PS2_MOUSE_ENABLE -# define PS2_CLOCK_PORT PORTF -# define PS2_CLOCK_PIN PINF -# define PS2_CLOCK_DDR DDRF -# define PS2_CLOCK_BIT 0 -# define PS2_DATA_PORT PORTF -# define PS2_DATA_PIN PINF -# define PS2_DATA_DDR DDRF -# define PS2_DATA_BIT 1 -#endif - -#endif diff --git a/keyboard/lufa/descriptor.c b/keyboard/lufa/descriptor.c deleted file mode 100644 index e9925cca29..0000000000 --- a/keyboard/lufa/descriptor.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright 2012 Jun Wako <wakojun@gmail.com> - * This file is based on: - * LUFA-120219/Demos/Device/Lowlevel/KeyboardMouse - * LUFA-120219/Demos/Device/Lowlevel/GenericHID - */ - -/* - LUFA Library - Copyright (C) Dean Camera, 2012. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -#include "util.h" -#include "report.h" -#include "descriptor.h" - - -/******************************************************************************* - * HID Report Descriptors - ******************************************************************************/ -const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = -{ - HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ - HID_RI_USAGE(8, 0x06), /* Keyboard */ - HID_RI_COLLECTION(8, 0x01), /* Application */ - HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ - HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x01), - HID_RI_REPORT_COUNT(8, 0x08), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_INPUT(8, HID_IOF_CONSTANT), - HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ - HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ - HID_RI_REPORT_COUNT(8, 0x05), - HID_RI_REPORT_SIZE(8, 0x01), - HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x03), - HID_RI_OUTPUT(8, HID_IOF_CONSTANT), - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0x65), - HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ - HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ - HID_RI_REPORT_COUNT(8, 0x06), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), - HID_RI_END_COLLECTION(0), -}; - -const USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = -{ - HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ - HID_RI_USAGE(8, 0x02), /* Mouse */ - HID_RI_COLLECTION(8, 0x01), /* Application */ - HID_RI_USAGE(8, 0x01), /* Pointer */ - HID_RI_COLLECTION(8, 0x00), /* Physical */ - - HID_RI_USAGE_PAGE(8, 0x09), /* Button */ - HID_RI_USAGE_MINIMUM(8, 0x01), /* Button 1 */ - HID_RI_USAGE_MAXIMUM(8, 0x05), /* Button 5 */ - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0x01), - HID_RI_REPORT_COUNT(8, 0x05), - HID_RI_REPORT_SIZE(8, 0x01), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x03), - HID_RI_INPUT(8, HID_IOF_CONSTANT), - - HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ - HID_RI_USAGE(8, 0x30), /* Usage X */ - HID_RI_USAGE(8, 0x31), /* Usage Y */ - HID_RI_LOGICAL_MINIMUM(8, -127), - HID_RI_LOGICAL_MAXIMUM(8, 127), - HID_RI_REPORT_COUNT(8, 0x02), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), - - HID_RI_USAGE(8, 0x38), /* Wheel */ - HID_RI_LOGICAL_MINIMUM(8, -127), - HID_RI_LOGICAL_MAXIMUM(8, 127), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), - - HID_RI_USAGE_PAGE(8, 0x0C), /* Consumer */ - HID_RI_USAGE(16, 0x0238), /* AC Pan (Horizontal wheel) */ - HID_RI_LOGICAL_MINIMUM(8, -127), - HID_RI_LOGICAL_MAXIMUM(8, 127), - HID_RI_REPORT_COUNT(8, 0x01), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), - - HID_RI_END_COLLECTION(0), - HID_RI_END_COLLECTION(0), -}; - -const USB_Descriptor_HIDReport_Datatype_t PROGMEM ConsoleReport[] = -{ - HID_RI_USAGE_PAGE(16, 0xFF00), /* Vendor Page 0 */ - HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */ - HID_RI_COLLECTION(8, 0x01), /* Application */ - HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0xFF), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_REPORT_COUNT(8, CONSOLE_EPSIZE), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), - HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */ - HID_RI_LOGICAL_MINIMUM(8, 0x00), - HID_RI_LOGICAL_MAXIMUM(8, 0xFF), - HID_RI_REPORT_SIZE(8, 0x08), - HID_RI_REPORT_COUNT(8, CONSOLE_EPSIZE), - HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_END_COLLECTION(0), -}; - -const USB_Descriptor_HIDReport_Datatype_t PROGMEM ExtraReport[] = -{ - HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ - HID_RI_USAGE(8, 0x80), /* System Control */ - HID_RI_COLLECTION(8, 0x01), /* Application */ - HID_RI_REPORT_ID(8, REPORT_ID_SYSTEM), - HID_RI_LOGICAL_MINIMUM(16, 0x0081), - HID_RI_LOGICAL_MAXIMUM(16, 0x00B7), - HID_RI_USAGE_MINIMUM(16, 0x0081), /* System Power Down */ - HID_RI_USAGE_MAXIMUM(16, 0x00B7), /* System Display LCD Autoscale */ - HID_RI_REPORT_SIZE(8, 16), - HID_RI_REPORT_COUNT(8, 1), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), - HID_RI_END_COLLECTION(0), - - HID_RI_USAGE_PAGE(8, 0x0C), /* Consumer */ - HID_RI_USAGE(8, 0x01), /* Consumer Control */ - HID_RI_COLLECTION(8, 0x01), /* Application */ - HID_RI_REPORT_ID(8, REPORT_ID_CONSUMER), - HID_RI_LOGICAL_MINIMUM(16, 0x0010), - HID_RI_LOGICAL_MAXIMUM(16, 0x029C), - HID_RI_USAGE_MINIMUM(16, 0x0010), /* +10 */ - HID_RI_USAGE_MAXIMUM(16, 0x029C), /* AC Distribute Vertically */ - HID_RI_REPORT_SIZE(8, 16), - HID_RI_REPORT_COUNT(8, 1), - HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), - HID_RI_END_COLLECTION(0), -}; - -/******************************************************************************* - * Device Descriptors - ******************************************************************************/ -const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = -{ - .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - - .USBSpecification = VERSION_BCD(01.10), - .Class = USB_CSCP_NoDeviceClass, - .SubClass = USB_CSCP_NoDeviceSubclass, - .Protocol = USB_CSCP_NoDeviceProtocol, - - .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - - .VendorID = VENDOR_ID, - .ProductID = PRODUCT_ID, - .ReleaseNumber = DEVICE_VER, - - .ManufacturerStrIndex = 0x01, - .ProductStrIndex = 0x02, - .SerialNumStrIndex = NO_DESCRIPTOR, - - .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS -}; - -/******************************************************************************* - * Configuration Descriptors - ******************************************************************************/ -const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = -{ - .Config = - { - .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, - - .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), - .TotalInterfaces = TOTAL_INTERFACES, - - .ConfigurationNumber = 1, - .ConfigurationStrIndex = NO_DESCRIPTOR, - - .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_REMOTEWAKEUP), - - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) - }, - - /* - * Keyboard - */ - .Keyboard_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = KEYBOARD_INTERFACE, - .AlternateSetting = 0x00, - - .TotalEndpoints = 1, - - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_BootSubclass, - .Protocol = HID_CSCP_KeyboardBootProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .Keyboard_HID = - { - .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, - - .HIDSpec = VERSION_BCD(01.11), - .CountryCode = 0x00, - .TotalReportDescriptors = 1, - .HIDReportType = HID_DTYPE_Report, - .HIDReportLength = sizeof(KeyboardReport) - }, - - .Keyboard_INEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_IN | KEYBOARD_IN_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = KEYBOARD_EPSIZE, - .PollingIntervalMS = 0x01 - }, - - /* - * Mouse - */ - .Mouse_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = MOUSE_INTERFACE, - .AlternateSetting = 0x00, - - .TotalEndpoints = 1, - - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_BootSubclass, - .Protocol = HID_CSCP_MouseBootProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .Mouse_HID = - { - .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, - - .HIDSpec = VERSION_BCD(01.11), - .CountryCode = 0x00, - .TotalReportDescriptors = 1, - .HIDReportType = HID_DTYPE_Report, - .HIDReportLength = sizeof(MouseReport) - }, - - .Mouse_INEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_IN | MOUSE_IN_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = MOUSE_EPSIZE, - .PollingIntervalMS = 0x01 - }, - - /* - * Console - */ - .Console_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = CONSOLE_INTERFACE, - .AlternateSetting = 0x00, - - .TotalEndpoints = 2, - - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_NonBootSubclass, - .Protocol = HID_CSCP_NonBootProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .Console_HID = - { - .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, - - .HIDSpec = VERSION_BCD(01.11), - .CountryCode = 0x00, - .TotalReportDescriptors = 1, - .HIDReportType = HID_DTYPE_Report, - .HIDReportLength = sizeof(ConsoleReport) - }, - - .Console_INEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_IN | CONSOLE_IN_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CONSOLE_EPSIZE, - .PollingIntervalMS = 0x01 - }, - - .Console_OUTEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_OUT | CONSOLE_OUT_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CONSOLE_EPSIZE, - .PollingIntervalMS = 0x01 - }, - - /* - * Extra - */ - .Extra_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = EXTRA_INTERFACE, - .AlternateSetting = 0x00, - - .TotalEndpoints = 1, - - .Class = HID_CSCP_HIDClass, - .SubClass = HID_CSCP_NonBootSubclass, - .Protocol = HID_CSCP_NonBootProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .Extra_HID = - { - .Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, - - .HIDSpec = VERSION_BCD(01.11), - .CountryCode = 0x00, - .TotalReportDescriptors = 1, - .HIDReportType = HID_DTYPE_Report, - .HIDReportLength = sizeof(ExtraReport) - }, - - .Extra_INEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = (ENDPOINT_DIR_IN | EXTRA_IN_EPNUM), - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = EXTRA_EPSIZE, - .PollingIntervalMS = 0x01 - }, -}; - - -/******************************************************************************* - * String Descriptors - ******************************************************************************/ -const USB_Descriptor_String_t PROGMEM LanguageString = -{ - .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, - - .UnicodeString = {LANGUAGE_ID_ENG} -}; - -const USB_Descriptor_String_t PROGMEM ManufacturerString = -{ - .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String}, - - .UnicodeString = LSTR(MANUFACTURER) -}; - -const USB_Descriptor_String_t PROGMEM ProductString = -{ - .Header = {.Size = USB_STRING_LEN(28), .Type = DTYPE_String}, - - .UnicodeString = LSTR(PRODUCT) -}; - - -/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" - * documentation) by the application code so that the address and size of a requested descriptor can be given - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the - * USB host. - */ -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) -{ - const uint8_t DescriptorType = (wValue >> 8); - const uint8_t DescriptorIndex = (wValue & 0xFF); - - const void* Address = NULL; - uint16_t Size = NO_DESCRIPTOR; - - switch (DescriptorType) - { - case DTYPE_Device: - Address = &DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - break; - case DTYPE_Configuration: - Address = &ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - break; - case DTYPE_String: - switch (DescriptorIndex ) - { - case 0x00: - Address = &LanguageString; - Size = pgm_read_byte(&LanguageString.Header.Size); - break; - case 0x01: - Address = &ManufacturerString; - Size = pgm_read_byte(&ManufacturerString.Header.Size); - break; - case 0x02: - Address = &ProductString; - Size = pgm_read_byte(&ProductString.Header.Size); - break; - } - break; - case HID_DTYPE_HID: - switch (wIndex) { - case KEYBOARD_INTERFACE: - Address = &ConfigurationDescriptor.Keyboard_HID; - Size = sizeof(USB_HID_Descriptor_HID_t); - break; - case MOUSE_INTERFACE: - Address = &ConfigurationDescriptor.Mouse_HID; - Size = sizeof(USB_HID_Descriptor_HID_t); - break; - case CONSOLE_INTERFACE: - Address = &ConfigurationDescriptor.Console_HID; - Size = sizeof(USB_HID_Descriptor_HID_t); - break; - case EXTRA_INTERFACE: - Address = &ConfigurationDescriptor.Extra_HID; - Size = sizeof(USB_HID_Descriptor_HID_t); - break; - } - break; - case HID_DTYPE_Report: - switch (wIndex) { - case KEYBOARD_INTERFACE: - Address = &KeyboardReport; - Size = sizeof(KeyboardReport); - break; - case MOUSE_INTERFACE: - Address = &MouseReport; - Size = sizeof(MouseReport); - break; - case CONSOLE_INTERFACE: - Address = &ConsoleReport; - Size = sizeof(ConsoleReport); - break; - case EXTRA_INTERFACE: - Address = &ExtraReport; - Size = sizeof(ExtraReport); - break; - } - break; - } - - *DescriptorAddress = Address; - return Size; -} diff --git a/keyboard/lufa/descriptor.h b/keyboard/lufa/descriptor.h deleted file mode 100644 index 6b1b4d4845..0000000000 --- a/keyboard/lufa/descriptor.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2012. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Descriptors.c. - */ - -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ - -#include <LUFA/Drivers/USB/USB.h> -#include <avr/pgmspace.h> - - -typedef struct -{ - USB_Descriptor_Configuration_Header_t Config; - - // Keyboard HID Interface - USB_Descriptor_Interface_t Keyboard_Interface; - USB_HID_Descriptor_HID_t Keyboard_HID; - USB_Descriptor_Endpoint_t Keyboard_INEndpoint; - - // Mouse HID Interface - USB_Descriptor_Interface_t Mouse_Interface; - USB_HID_Descriptor_HID_t Mouse_HID; - USB_Descriptor_Endpoint_t Mouse_INEndpoint; - - // Console HID Interface - USB_Descriptor_Interface_t Console_Interface; - USB_HID_Descriptor_HID_t Console_HID; - USB_Descriptor_Endpoint_t Console_INEndpoint; - USB_Descriptor_Endpoint_t Console_OUTEndpoint; - - // Extra HID Interface - USB_Descriptor_Interface_t Extra_Interface; - USB_HID_Descriptor_HID_t Extra_HID; - USB_Descriptor_Endpoint_t Extra_INEndpoint; -} USB_Descriptor_Configuration_t; - - -/* nubmer of interfaces */ -#define TOTAL_INTERFACES 4 - -/* index of interface */ -#define KEYBOARD_INTERFACE 0 -#define MOUSE_INTERFACE 1 -#define CONSOLE_INTERFACE 2 -#define EXTRA_INTERFACE 3 - -// Endopoint number and size -#define KEYBOARD_IN_EPNUM 1 -#define MOUSE_IN_EPNUM 2 -#define CONSOLE_IN_EPNUM 3 -#define CONSOLE_OUT_EPNUM 4 -#define EXTRA_IN_EPNUM 5 - -#define KEYBOARD_EPSIZE 8 -#define MOUSE_EPSIZE 8 -#define CONSOLE_EPSIZE 8 -#define EXTRA_EPSIZE 8 - - -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) - ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - -#endif diff --git a/keyboard/lufa/keymap.c b/keyboard/lufa/keymap.c deleted file mode 100644 index aa563651ae..0000000000 --- a/keyboard/lufa/keymap.c +++ /dev/null @@ -1,195 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -/* - * Keymap for Macway mod - */ -#include <stdint.h> -#include <stdbool.h> -#include <avr/pgmspace.h> -#include "usb_keycodes.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "keymap.h" - - -// Convert physical keyboard layout to matrix array. -// This is a macro to define keymap easily in keyboard layout form. -#define KEYMAP( \ - K11, K10, K20, K30, K40, K41, K51, K50, K60, K70, K80, K81, K61, K02, \ - K12, K13, K23, K33, K43, K42, K52, K53, K63, K73, K83, K82, K62, K01, \ - K15, K14, K24, K34, K44, K45, K55, K54, K64, K74, K84, K85, K06, \ - K67, K16, K26, K36, K46, K47, K57, K56, K66, K76, K87, K32, K35, \ - K75, K22, K00, K07, K21, K04, K37, K27, K17 \ -) { \ - { KB_##K00, KB_##K01, KB_##K02, KB_NO, KB_##K04, KB_NO, KB_##K06, KB_##K07 }, \ - { KB_##K10, KB_##K11, KB_##K12, KB_##K13, KB_##K14, KB_##K15, KB_##K16, KB_##K17 }, \ - { KB_##K20, KB_##K21, KB_##K22, KB_##K23, KB_##K24, KB_NO, KB_##K26, KB_##K27 }, \ - { KB_##K30, KB_NO, KB_##K32, KB_##K33, KB_##K34, KB_##K35, KB_##K36, KB_##K37 }, \ - { KB_##K40, KB_##K41, KB_##K42, KB_##K43, KB_##K44, KB_##K45, KB_##K46, KB_##K47 }, \ - { KB_##K50, KB_##K51, KB_##K52, KB_##K53, KB_##K54, KB_##K55, KB_##K56, KB_##K57 }, \ - { KB_##K60, KB_##K61, KB_##K62, KB_##K63, KB_##K64, KB_NO, KB_##K66, KB_##K67 }, \ - { KB_##K70, KB_NO, KB_NO, KB_##K73, KB_##K74, KB_##K75, KB_##K76, KB_NO }, \ - { KB_##K80, KB_##K81, KB_##K82, KB_##K83, KB_##K84, KB_##K85, KB_NO, KB_##K87 } \ -} - -#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) - - -// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. -static const uint8_t PROGMEM fn_layer[] = { - 0, // Fn0 - 1, // Fn1 - 2, // Fn2 - 3, // Fn3 - 4, // Fn4 - 0, // Fn5 - 3, // Fn6 - 3 // Fn7 -}; - -// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer. -// See layer.c for details. -static const uint8_t PROGMEM fn_keycode[] = { - KB_NO, // Fn0 - KB_NO, // Fn1 - KB_SLSH, // Fn2 - KB_SCLN, // Fn3 - KB_SPC, // Fn4 - KB_NO, // Fn5 - KB_NO, // Fn6 - KB_NO // Fn7 -}; - -static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Layer 0: Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | - * |-----------------------------------------------------' | - * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn1| - * |-----------------------------------------------------------| - * |Fn7|Gui |Alt |Fn4 |Alt |Gui|Fn6|Fn6|Ctr| - * `-----------------------------------------------------------' - */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \ - FN7, LGUI,LALT,FN4, RALT,BSLS,FN6, FN6, RCTL), - - - /* Layer 1: HHKB mode (HHKB Fn) - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | - * |-----------------------------------------------------' | - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift |xxx| - * |-----------------------------------------------------------| - * | |Gui |Alt | |Alt |Gui| | |Ctr| - * `-----------------------------------------------------------' - */ - KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,BRK, UP, NO, NO, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,FN1, \ - NO, LGUI,LALT,SPC, RALT,NO, NO, NO, RCTL), - - - /* Layer 2: Vi mode (Quote/Rmeta) - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` | - * |-----------------------------------------------------------| - * | \ |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | | - * |-----------------------------------------------------' | - * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | | \ | - * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgU|End|xxx|Shift | | - * |-----------------------------------------------------------| - * | |Gui |Alt |Space |Alt |Gui|Fn6|Fn6|Ctr| - * `-----------------------------------------------------------' - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - BSLS,HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, NO, \ - LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, BSLS, \ - LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,NO, \ - NO, LGUI,LALT,SPC, RALT,RGUI,FN6, FN6, RCTL), - - - /* Layer 3: Mouse mode (Semicolon) - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` | - * |-----------------------------------------------------------| - * | \ |MwL|MwD|McU|MwU|MwR|MwL|MwD|MwU|MwR| | | | | - * |-----------------------------------------------------' | - * |Contro| |McL|McD|McR| |McL|McD|McU|McR|xxx| | \ | - * |-----------------------------------------------------------| - * |Shift | | |Mb1|Mb2|Mb3|Mb2|Mb1| | | |Shift | | - * |