Skip to content

Commit f622d08

Browse files
committed
adding a few unstable features, images on dks that are animated seem unstable, dynamic key themes are awesome though
1 parent 7c1614c commit f622d08

20 files changed

+80
-11
lines changed

VisFramework.c

Lines changed: 80 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,59 @@ void LoadKeyImageToRazer(const char * filename, RZSBSDK_DKTYPE targetKey, RZSBSD
4545
HWND parent = NULL; // our parent window's handle
4646
static int colormode = 0;
4747

48+
void getFileString(char* buffer, char* filename){
49+
char append[64];
50+
append[0] = (char)'\0';
51+
buffer[0] = (char)'\0';
52+
switch(colormode){
53+
case 5:
54+
strcat(append,"-5");
55+
break;
56+
case 6:
57+
strcat(append,"-6");
58+
break;
59+
case 7:
60+
strcat(append,"-7");
61+
break;
62+
default:
63+
break;
64+
}
65+
strcat(append, ".png");
66+
67+
strcat(buffer, filename);
68+
strcat(buffer, append);
69+
}
70+
71+
void resetDKImages(){
72+
char buffer[256];
73+
74+
getFileString(buffer, ".\\imagedata\\rewind");
75+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP);
76+
getFileString(buffer, ".\\imagedata\\play");
77+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
78+
getFileString(buffer, ".\\imagedata\\fforward");
79+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
80+
getFileString(buffer, ".\\imagedata\\volup");
81+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_9, RZSBSDK_KEYSTATE_UP);
82+
getFileString(buffer, ".\\imagedata\\voldown");
83+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_10, RZSBSDK_KEYSTATE_UP);
84+
}
85+
86+
int beatcount = 0;
87+
void setBeatKeep(){
88+
char buffer[256];
89+
getFileString(buffer, ".\\imagedata\\beatkeep");
90+
LoadKeyImageToRazer(beatcount == 0 ? buffer : "", RZSBSDK_DK_1, RZSBSDK_KEYSTATE_UP);
91+
LoadKeyImageToRazer(beatcount == 1 ? buffer : "", RZSBSDK_DK_2, RZSBSDK_KEYSTATE_UP);
92+
LoadKeyImageToRazer(beatcount == 2 ? buffer : "", RZSBSDK_DK_3, RZSBSDK_KEYSTATE_UP);
93+
LoadKeyImageToRazer(beatcount == 3 ? buffer : "", RZSBSDK_DK_4, RZSBSDK_KEYSTATE_UP);
94+
LoadKeyImageToRazer(beatcount == 4 ? buffer : "", RZSBSDK_DK_5, RZSBSDK_KEYSTATE_UP);
95+
beatcount++;
96+
if (beatcount > 4){
97+
beatcount = 0;
98+
}
99+
}
100+
48101
// TODO: Can this be done with a winamp library?
49102
#define EXT_LPARAM 0x800000
50103
HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTATETYPE keystate)
@@ -53,6 +106,7 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
53106
HWND winamp;
54107
int cmdCode = 0;
55108
bool sendCmd = false;
109+
char buffer[256];
56110
//windowCommand wc;
57111

58112
static int lastinput = 0;
@@ -68,6 +122,7 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
68122
} else {
69123
colormode += 5;
70124
}
125+
resetDKImages();
71126
}
72127
break;
73128
case RZSBSDK_DK_2:
@@ -77,6 +132,7 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
77132
} else {
78133
colormode += 5;
79134
}
135+
resetDKImages();
80136
}
81137
break;
82138
case RZSBSDK_DK_3:
@@ -86,6 +142,7 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
86142
} else {
87143
colormode += 5;
88144
}
145+
resetDKImages();
89146
}
90147
break;
91148
case RZSBSDK_DK_4:
@@ -95,6 +152,7 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
95152
} else {
96153
colormode += 5;
97154
}
155+
resetDKImages();
98156
}
99157
break;
100158
case RZSBSDK_DK_5:
@@ -104,6 +162,7 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
104162
} else {
105163
colormode += 5;
106164
}
165+
resetDKImages();
107166
}
108167
break;
109168
case RZSBSDK_DK_6:
@@ -115,17 +174,20 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
115174
} else {
116175
sendCmd = true;
117176
cmdCode = WINAMP_BUTTON1;
118-
LoadKeyImageToRazer(".\\imagedata\\rewind.png",RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP);
177+
getFileString(buffer, ".\\imagedata\\rewind");
178+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP);
119179
}
120180
break;
121181
case RZSBSDK_DK_7:
122182
if (keystate != RZSBSDK_KEYSTATE_UP){
123183
// Play / Pause
124184
sendCmd = true;
125185
cmdCode = WINAMP_BUTTON3;
186+
126187
LoadKeyImageToRazer(".\\imagedata\\play-color.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
127188
} else {
128-
LoadKeyImageToRazer(".\\imagedata\\play.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
189+
getFileString(buffer, ".\\imagedata\\play");
190+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
129191
}
130192
break;
131193
case RZSBSDK_DK_8:
@@ -135,7 +197,8 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
135197
cmdCode = WINAMP_BUTTON5;
136198
LoadKeyImageToRazer(".\\imagedata\\fforward-color.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
137199
} else {
138-
LoadKeyImageToRazer(".\\imagedata\\fforward.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
200+
getFileString(buffer, ".\\imagedata\\fforward");
201+
LoadKeyImageToRazer(buffer,RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
139202
}
140203
break;
141204
case RZSBSDK_DK_9:
@@ -145,7 +208,8 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
145208
LoadKeyImageToRazer(".\\imagedata\\volup-color.png",RZSBSDK_DK_9, RZSBSDK_KEYSTATE_UP);
146209
} else {
147210
keybd_event(VK_VOLUME_UP, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
148-
LoadKeyImageToRazer(".\\imagedata\\volup.png",RZSBSDK_DK_9, RZSBSDK_KEYSTATE_UP);
211+
getFileString(buffer, ".\\imagedata\\volup");
212+
LoadKeyImageToRazer(buffer, RZSBSDK_DK_9, RZSBSDK_KEYSTATE_UP);
149213
}
150214
break;
151215
case RZSBSDK_DK_10:
@@ -156,7 +220,8 @@ HRESULT STDMETHODCALLTYPE OnDkClickedButton(RZSBSDK_DKTYPE type, RZSBSDK_KEYSTAT
156220
LoadKeyImageToRazer(".\\imagedata\\voldown-color.png",RZSBSDK_DK_10, RZSBSDK_KEYSTATE_UP);
157221
} else {
158222
keybd_event(VK_VOLUME_DOWN, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
159-
LoadKeyImageToRazer(".\\imagedata\\voldown.png",RZSBSDK_DK_10, RZSBSDK_KEYSTATE_UP);
223+
getFileString(buffer, ".\\imagedata\\voldown");
224+
LoadKeyImageToRazer(buffer, RZSBSDK_DK_10, RZSBSDK_KEYSTATE_UP);
160225
}
161226
break;
162227
default:
@@ -285,12 +350,8 @@ int visInit(struct winampVisModule *this_mod)
285350
RzSBStart();
286351

287352
// Next time use noun project
288-
// TODO: Are these images correctly getting added as a DLL resource?
289-
LoadKeyImageToRazer(".\\imagedata\\rewind.png",RZSBSDK_DK_6, RZSBSDK_KEYSTATE_UP);
290-
LoadKeyImageToRazer(".\\imagedata\\play.png",RZSBSDK_DK_7, RZSBSDK_KEYSTATE_UP);
291-
LoadKeyImageToRazer(".\\imagedata\\fforward.png",RZSBSDK_DK_8, RZSBSDK_KEYSTATE_UP);
292-
LoadKeyImageToRazer(".\\imagedata\\volup.png",RZSBSDK_DK_9, RZSBSDK_KEYSTATE_UP);
293-
LoadKeyImageToRazer(".\\imagedata\\voldown.png",RZSBSDK_DK_10, RZSBSDK_KEYSTATE_UP);
353+
resetDKImages();
354+
setBeatKeep();
294355
RzSBDynamicKeySetCallback(OnDkClickedButton);
295356

296357
// END UNSTABLE
@@ -539,6 +600,14 @@ int visRender(struct winampVisModule *this_mod)
539600
this_mod->spectrumData[1][divCount] * DIVSCALE) * AMPLITUDE);
540601
}
541602

603+
divCount = 0;
604+
while (this_mod->spectrumData[0][divCount] > 7 && divCount < 30){
605+
divCount++;
606+
if (divCount == 29){
607+
setBeatKeep();
608+
}
609+
}
610+
542611
drawNextPixels = limitBuffer[divCount] > row;
543612

544613
// Traverse the display space and set pixels.

imagedata/beatkeep-5.png

33.2 KB
Loading

imagedata/beatkeep-6.png

41.3 KB
Loading

imagedata/beatkeep-7.png

40.5 KB
Loading

imagedata/beatkeep.png

32.4 KB
Loading

imagedata/fforward-5.png

4.62 KB
Loading

imagedata/fforward-6.png

4.62 KB
Loading

imagedata/fforward-7.png

4.61 KB
Loading

imagedata/play-5.png

25.1 KB
Loading

imagedata/play-6.png

27.2 KB
Loading

0 commit comments

Comments
 (0)