aboutsummaryrefslogtreecommitdiff
path: root/Src/resources/skins/Winamp Modern/scripts/eq.m
diff options
context:
space:
mode:
Diffstat (limited to 'Src/resources/skins/Winamp Modern/scripts/eq.m')
-rw-r--r--Src/resources/skins/Winamp Modern/scripts/eq.m90
1 files changed, 90 insertions, 0 deletions
diff --git a/Src/resources/skins/Winamp Modern/scripts/eq.m b/Src/resources/skins/Winamp Modern/scripts/eq.m
new file mode 100644
index 00000000..8a062181
--- /dev/null
+++ b/Src/resources/skins/Winamp Modern/scripts/eq.m
@@ -0,0 +1,90 @@
+#include <lib/std.mi>
+#include <lib/winampconfig.mi>
+
+Global Group frameGroup, use;
+Global Button btnEQp12,btnEQ0,btnEQm12;
+Global Layer eqBand;
+Global Boolean manual_set;
+
+Global Layout normal;
+
+#define ISOBANDS "31.5 Hz,63 Hz,125 Hz,250 Hz,500 Hz,1 KHz,2 KHz,4 KHz,8 KHz,16 KHz"
+#define WINAMPBANDS "70 Hz,180 Hz,320 Hz,600 Hz,1 KHz,3 KHz,6 KHz,12 KHz,14 KHz,16 KHz"
+
+System.onScriptLoaded() {
+ WinampConfigGroup eqwcg = WinampConfig.getGroup("{72409F84-BAF1-4448-8211-D84A30A1591A}");
+ int freqmode = eqwcg.getInt("frequencies"); // returns 0 for classical winamp levels, 1 for ISO levels
+
+ frameGroup = getScriptGroup();
+ normal = frameGroup.getParentLayout();
+ btnEQp12 = frameGroup.findObject("EQ_p12");
+ btnEQ0 = frameGroup.findObject("EQ_0");
+ btnEQm12 = frameGroup.findObject("EQ_m12");
+ eqBand = frameGroup.findObject("equalizer.band.label");
+
+ system.onEqFreqChanged(freqmode);
+}
+
+btnEQp12.onLeftClick() {
+ manual_set = 1;
+ for(int i=0; i<10; i++) setEqBand(i, 127);
+ manual_set = 0;
+}
+
+btnEQ0.onLeftClick() {
+ manual_set = 1;
+ for(int i=0; i<10; i++) setEqBand(i, 0);
+ manual_set = 0;
+}
+
+btnEQm12.onLeftClick() {
+ manual_set = 1;
+ for(int i=0; i<10; i++) setEqBand(i, -127);
+ manual_set = 0;
+}
+
+System.onEqFreqChanged (boolean isoonoff)
+{
+ if (isoonoff == 1)
+ {
+ eqBand.setXmlParam("image", "drawer.eq.label.iso");
+ for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(ISOBANDS,",",i));
+ }
+ else
+ {
+ eqBand.setXmlParam("image", "drawer.eq.label.winamp");
+ for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(WINAMPBANDS,",",i));
+ }
+}
+
+system.onEqBandChanged(int band, int value)
+{
+ if (manual_set) return;
+ String t;
+ Float f = value;
+ f = f / 10.5;
+ WinampConfigGroup eqwcg = WinampConfig.getGroup("{72409F84-BAF1-4448-8211-D84A30A1591A}");
+ if (eqwcg.getInt("frequencies") == 1) {
+ if (f >= 0) t = "EQ: " + translate(getToken(ISOBANDS,",",band)) + ": +" + floattostring(f, 1) + " "+ translate("dB");
+ else t = "EQ: " + translate(getToken(ISOBANDS,",",band)) + ": " + floattostring(f, 1) + " "+ translate("dB");
+ }
+ else {
+ if (f >= 0) t = "EQ: " + translate(getToken(WINAMPBANDS,",",band)) + ": +" + floattostring(f, 1) + " "+ translate("dB");
+ else t = "EQ: " + translate(getToken(WINAMPBANDS,",",band)) + ": " + floattostring(f, 1) + " "+ translate("dB");
+ }
+
+ normal.sendAction("showinfo", t, 0,0,0,0);
+}
+
+system.onEqPreampChanged(int value)
+{
+ slider s = getScriptGroup().findObject("preamp");
+ value = s.getPosition(); // Somehow this function returns a range from [-127;125] with hotpos -3, so we take the slider instead
+ String t = "EQ: " + translate("Preamp:") + " ";
+ Float f = value;
+ f = f / 10.5;
+ if (f >= -3) t += "+"+floattostring(f, 1) + " "+ translate("dB");
+ else t += floattostring(f, 1) + " "+ translate("dB");
+
+ normal.sendAction("showinfo", t, 0,0,0,0);
+} \ No newline at end of file