From 1bda8a8c69e7b1e5e62233d9f5a63d0dca0ef4fb Mon Sep 17 00:00:00 2001
From: tmk <nobody@nowhere>
Date: Fri, 1 Jul 2011 01:10:55 +0900
Subject: [PATCH] Add special keycodes for media control. Fix power down
 command.

---
 command.c      |  6 ++++++
 usb_keycodes.h | 17 +++++++++++++++++
 2 files changed, 23 insertions(+)
 mode change 100644 => 100755 command.c

diff --git a/command.c b/command.c
old mode 100644
new mode 100755
index ca149dbd08..2d065ed281
--- a/command.c
+++ b/command.c
@@ -122,14 +122,20 @@ uint8_t command_proc(void)
 #endif
 #ifdef USB_EXTRA_ENABLE
         case KB_ESC:
+            host_clear_keyboard_report();
+            host_send_keyboard_report();
 #ifdef HOST_PJRC
             if (suspend && remote_wakeup) {
                 usb_remote_wakeup();
             } else {
                 host_system_send(SYSTEM_POWER_DOWN);
+                host_system_send(0);
+                _delay_ms(500);
             }
 #else
             host_system_send(SYSTEM_POWER_DOWN);
+            host_system_send(0);
+            _delay_ms(500);
 #endif
             break;
 #endif
diff --git a/usb_keycodes.h b/usb_keycodes.h
index bdec953910..e39a847bf4 100644
--- a/usb_keycodes.h
+++ b/usb_keycodes.h
@@ -91,9 +91,26 @@
 #define KB_WH_R KB_MS_WH_RIGHT
 /* Sytem Control & Consumer usage */
 #define KB_PWR  KB_SYSTEM_POWER
+#define KB_SLEP KB_SYSTEM_SLEEP
+#define KB_WAKE KB_SYSTEM_WAKE
 #define KB_MUTE KB_AUDIO_MUTE
 #define KB_VOLU KB_AUDIO_VOL_UP
 #define KB_VOLD KB_AUDIO_VOL_DOWN
+#define KB_MNXT KB_MEDIA_NEXT_TRACK
+#define KB_MPRV KB_MEDIA_PREV_TRACK
+#define KB_MSTP KB_MEDIA_STOP
+#define KB_MPLY KB_MEDIA_PLAY_PAUSE
+#define KB_MSEL KB_MEDIA_SELECT
+#define KB_MAIL KB_MAIL
+#define KB_CALC KB_CALCULATOR
+#define KB_MYCM KB_MY_COMPUTER
+#define KB_WSCH KB_WWW_SEARCH
+#define KB_WHOM KB_WWW_HOME
+#define KB_WBAK KB_WWW_BACK
+#define KB_WFWD KB_WWW_FORWARD
+#define KB_WSTP KB_WWW_STOP
+#define KB_WREF KB_WWW_REFRESH
+#define KB_WFAV KB_WWW_FAVORITES
 
 
 /* Special keycode */