|
13 | 13 | See the GNU General Public License for more details. |
14 | 14 | */ |
15 | 15 | #include "VisFramework.h" |
16 | | -#include "demo.h" |
17 | 16 | #include "include\SwitchBlade.h" |
18 | 17 |
|
19 | 18 | void visConfig(struct winampVisModule *this_mod) |
@@ -53,6 +52,11 @@ static int colormode = 0; |
53 | 52 | HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTATETYPE keystate) |
54 | 53 | { |
55 | 54 | INPUT keyCode; |
| 55 | + HWND winamp; |
| 56 | + int cmdCode = 0; |
| 57 | + bool sendCmd = false; |
| 58 | + //windowCommand wc; |
| 59 | + |
56 | 60 | static int lastinput = 0; |
57 | 61 |
|
58 | 62 | // 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 |
80 | 84 | // poor man's debounce |
81 | 85 | if (keystate != RZSBSDK_KEYSTATE_UP){ |
82 | 86 | // Back |
83 | | - keybd_event(VK_MEDIA_PREV_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); |
84 | 87 | LoadKeyImageToRazer(".\\imagedata\\rewind-color.png",RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP); |
85 | 88 | } else { |
86 | | - keybd_event(VK_MEDIA_PREV_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0); |
| 89 | + sendCmd = true; |
| 90 | + cmdCode = WINAMP_BUTTON1; |
87 | 91 | LoadKeyImageToRazer(".\\imagedata\\rewind.png",RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP); |
88 | 92 | } |
89 | 93 | break; |
90 | 94 | case RZSBSDK_DK_7: |
91 | 95 | 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; |
94 | 99 | LoadKeyImageToRazer(".\\imagedata\\play-color.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP); |
95 | 100 | } else { |
96 | | - keybd_event(VK_MEDIA_PLAY_PAUSE, 0x45, 0, 0); |
97 | 101 | LoadKeyImageToRazer(".\\imagedata\\play.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP); |
98 | 102 | } |
99 | 103 | break; |
100 | 104 | case RZSBSDK_DK_8: |
101 | 105 | // Fast FW |
102 | 106 | 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; |
104 | 109 | LoadKeyImageToRazer(".\\imagedata\\fforward-color.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP); |
105 | 110 | } else { |
106 | | - keybd_event(VK_MEDIA_NEXT_TRACK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0); |
107 | 111 | LoadKeyImageToRazer(".\\imagedata\\fforward.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP); |
108 | 112 | } |
109 | 113 | break; |
@@ -131,6 +135,16 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT |
131 | 135 | default: |
132 | 136 | break; |
133 | 137 | } |
| 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 | + } |
134 | 148 |
|
135 | 149 | lastinput = 0; |
136 | 150 | return S_OK; |
|
0 commit comments