Browse Source

Completing Sony OA-S3400 adapter.

- Fixed final bug regarding key release
- Added LED support calls
- Fixed minor keymapping bug for TAB
- Changed default keymap to Colemak
simple
Jacob Alexander 12 years ago
parent
commit
fa68d61792
3 changed files with 33 additions and 6 deletions
  1. 4
    4
      Keymap/sonyoas3400.h
  2. 27
    0
      Scan/SonyOA-S3400/scan_loop.c
  3. 2
    2
      Scan/SonyOA-S3400/setup.cmake

+ 4
- 4
Keymap/sonyoas3400.h View File

@@ -38,7 +38,7 @@ static uint8_t sonyoas3400_DefaultMap[] = {
0, // 0x06
0, // 0x07
KEY_BACKSPACE, // 0x08
0, // 0x09
KEY_TAB, // 0x09
0, // 0x0A
0, // 0x0B
0, // 0x0C
@@ -190,7 +190,7 @@ static uint8_t sonyoas3400_DefaultMap[] = {
0, // 0x9E
0, // 0x9F
0, // 0xA0
KEY_TAB, // 0xA1
0, // 0xA1
0, // 0xA2
0, // 0xA3
0, // 0xA4
@@ -297,7 +297,7 @@ static uint8_t sonyoas3400_ColemakMap[] = {
0, // 0x06
0, // 0x07
KEY_BACKSPACE, // 0x08
0, // 0x09
KEY_TAB, // 0x09
0, // 0x0A
0, // 0x0B
0, // 0x0C
@@ -449,7 +449,7 @@ static uint8_t sonyoas3400_ColemakMap[] = {
0, // 0x9E
0, // 0x9F
0, // 0xA0
KEY_TAB, // 0xA1
0, // 0xA1
0, // 0xA2
0, // 0xA3
0, // 0xA4

+ 27
- 0
Scan/SonyOA-S3400/scan_loop.c View File

@@ -342,6 +342,17 @@ void processKeyValue( uint8_t keyValue )
}
}

// TODO Move to Macro Section
switch ( keyValue )
{
case 0xD3: // F11
scan_sendData( 0x01 );
break;
case 0xD4: // F12
scan_sendData( 0x02 );
break;
}

// Scan code is now finalized, and ready to add to buffer
// Note: Scan codes come from 3 different interrupts and a manual key scan into this function

@@ -390,6 +401,9 @@ void processKeyValue( uint8_t keyValue )
// Decrement Buffer
KeyIndex_BufferUsed--;

// Start at this position again for the next loop
c--;

break;
}
}
@@ -485,8 +499,21 @@ ISR(INT7_vect)

// Send data to keyboard
// Sony OA-S3400 has no serial/parallel dataport to send data too...
// Using this function for LED enable/disable
uint8_t scan_sendData( uint8_t dataPayload )
{
switch ( dataPayload )
{
case 0x01:
LED1_PORT ^= (1 << LED1_POS);
break;
case 0x02:
LED2_PORT ^= (1 << LED2_POS);
break;
default:
erro_print("Invalid data send attempt");
break;
}
return 0;
}


+ 2
- 2
Scan/SonyOA-S3400/setup.cmake View File

@@ -41,7 +41,7 @@ add_definitions( -I${HEAD_DIR}/Keymap )
#| Keymap Settings
add_definitions(
-DMODIFIER_MASK=sonyoas3400_ModifierMask
#-DKEYINDEX_MASK=sonyoas3400_ColemakMap
-DKEYINDEX_MASK=sonyoas3400_DefaultMap
-DKEYINDEX_MASK=sonyoas3400_ColemakMap
#-DKEYINDEX_MASK=sonyoas3400_DefaultMap
)