Skip to content

Commit 01f4172

Browse files
committed
Adding full support for media keys
1 parent d339d2a commit 01f4172

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

VisFramework.c

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
See the GNU General Public License for more details.
1414
*/
1515
#include "VisFramework.h"
16-
#include "demo.h"
1716
#include "include\SwitchBlade.h"
1817

1918
void visConfig(struct winampVisModule *this_mod)
@@ -53,6 +52,11 @@ static int colormode = 0;
5352
HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTATETYPE keystate)
5453
{
5554
INPUT keyCode;
55+
HWND winamp;
56+
int cmdCode = 0;
57+
bool sendCmd = false;
58+
//windowCommand wc;
59+
5660
static int lastinput = 0;
5761

5862
// more at http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
@@ -80,30 +84,30 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
8084
// poor man's debounce
8185
if (keystate != RZSBSDK_KEYSTATE_UP){
8286
// Back
83-
keybd_event(VK_MEDIA_PREV_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
8487
LoadKeyImageToRazer(".\\imagedata\\rewind-color.png",RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP);
8588
} else {
86-
keybd_event(VK_MEDIA_PREV_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
89+
sendCmd = true;
90+
cmdCode = WINAMP_BUTTON1;
8791
LoadKeyImageToRazer(".\\imagedata\\rewind.png",RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP);
8892
}
8993
break;
9094
case RZSBSDK_DK_7:
9195
if (keystate != RZSBSDK_KEYSTATE_UP){
92-
// Play / Pause
93-
keybd_event(VK_MEDIA_PLAY_PAUSE, 0x45, KEYEVENTF_KEYUP, 0);
96+
// Play / Pause
97+
sendCmd = true;
98+
cmdCode = WINAMP_BUTTON3;
9499
LoadKeyImageToRazer(".\\imagedata\\play-color.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
95100
} else {
96-
keybd_event(VK_MEDIA_PLAY_PAUSE, 0x45, 0, 0);
97101
LoadKeyImageToRazer(".\\imagedata\\play.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
98102
}
99103
break;
100104
case RZSBSDK_DK_8:
101105
// Fast FW
102106
if (keystate != RZSBSDK_KEYSTATE_UP){
103-
keybd_event(VK_MEDIA_NEXT_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
107+
sendCmd = true;
108+
cmdCode = WINAMP_BUTTON5;
104109
LoadKeyImageToRazer(".\\imagedata\\fforward-color.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
105110
} else {
106-
keybd_event(VK_MEDIA_NEXT_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
107111
LoadKeyImageToRazer(".\\imagedata\\fforward.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
108112
}
109113
break;
@@ -131,6 +135,16 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
131135
default:
132136
break;
133137
}
138+
139+
if (sendCmd) {
140+
winamp = FindWindow("Winamp v1.x", NULL);
141+
if (!winamp){
142+
MessageBox(parent, "Whoopsie", "Could not find winamp window", MB_OK);
143+
return;
144+
}
145+
//TODO(gguuss): What is the secret of 273?
146+
SendMessage(winamp, 273, cmdCode, 0);
147+
}
134148

135149
lastinput = 0;
136150
return S_OK;

common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@
4141

4242
// Winamp SDK
4343
#include "winamp\wa_ipc.h"
44+
#include "winamp\IN2.H"
4445

4546
#endif /* !__common_h__ */

0 commit comments

Comments
 (0)