aboutsummaryrefslogtreecommitdiff
path: root/Src/resources/skins/Big Bento/scripts/eq.m
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/resources/skins/Big Bento/scripts/eq.m
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/resources/skins/Big Bento/scripts/eq.m')
-rw-r--r--Src/resources/skins/Big Bento/scripts/eq.m247
1 files changed, 247 insertions, 0 deletions
diff --git a/Src/resources/skins/Big Bento/scripts/eq.m b/Src/resources/skins/Big Bento/scripts/eq.m
new file mode 100644
index 00000000..f450ee45
--- /dev/null
+++ b/Src/resources/skins/Big Bento/scripts/eq.m
@@ -0,0 +1,247 @@
+/*---------------------------------------------------
+-----------------------------------------------------
+Filename: eq.m
+Version: 2.0
+
+Type: maki
+Date: 25. Jun. 2007 - 11:30
+Author: Martin Poehlmann aka Deimos
+E-Mail: martin@skinconsortium.com
+Internet: www.skinconsortium.com
+ www.martin.deimos.de.vu
+-----------------------------------------------------
+---------------------------------------------------*/
+
+#include <lib/std.mi>
+#include <lib/winampconfig.mi>
+
+#define CENTER_VAR eqGroup
+#include <lib/com/centerlayer.m>
+
+#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"
+
+Class Button Eqbutton;
+Member int EqButton.setTo;
+
+Global Group frameGroup, buttongroup;
+Global Slider slidercb, Balance;
+Global Text fadertext;
+Global Button CFIncrease, CFDecrease, eqon, eqauto;
+Global ToggleButton Crossfade;
+Global GuiObject CrossfadeActive, eqonActive, eqautoActive, SongTicker;
+Global Int CrossfadeActive_Y, eqonActive_Y, eqautoActive_Y;
+Global Eqbutton btnEQp12,btnEQ0,btnEQm12;
+Global layer frequencyLabel;
+
+System.onScriptLoaded()
+{
+ buttongroup = getScriptGroup().findObject("player.cbuttons");
+ 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();
+ _eqGroupInit(frameGroup.findObject("info.component.eq.content"), frameGroup, 1, 0);
+ slidercb = frameGroup.findObject("sCrossfade");
+ fadertext = frameGroup.findObject("CFDisplay");
+ CFIncrease = frameGroup.findObject("CrossfadeIncrease");
+ CFDecrease = frameGroup.findObject("CrossfadeDecrease");
+ Crossfade = frameGroup.findObject("Crossfade");
+ CrossfadeActive = frameGroup.findObject("CrossfadeActive");
+ CrossfadeActive_Y = CrossfadeActive.getGuiY();
+
+ eqon = frameGroup.findObject("eqonoff");
+ eqonActive = frameGroup.findObject("eqonoffActive");
+ eqonActive_Y = eqonActive.getGuiY();
+
+ eqauto = frameGroup.findObject("eqauto");
+ eqautoActive = frameGroup.findObject("eqautoActive");
+ eqautoActive_Y = eqautoActive.getGuiY();
+
+ btnEQp12 = frameGroup.findObject("EQ_p12");
+ btnEQp12.setTo = 127;
+ btnEQ0 = frameGroup.findObject("EQ_0");
+ btnEQ0.setTo = 0;
+ btnEQm12 = frameGroup.findObject("EQ_m12");
+ btnEQm12.setTo = -127;
+
+ Balance = frameGroup.findObject("Balance");
+ SongTicker = buttongroup.getParentLayout().findObject("songticker");
+
+ frequencyLabel = frameGroup.findObject("frequency.labels");
+
+ system.onEqFreqChanged(freqmode);
+
+ slidercb.onSetPosition(slidercb.getPosition());
+
+ Crossfade.onToggle(Crossfade.getActivated());
+}
+
+Balance.onSetPosition(int newpos)
+{
+ string t=translate("Balance")+":";
+ if (newpos==127) t+= " " + translate("Center");
+ if (newpos<127) t += " " + integerToString((100-(newpos/127)*100))+"% "+translate("Left");
+ if (newpos>127) t += " " + integerToString(((newpos-127)/127)*100)+"% "+translate("Right");
+
+ SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
+}
+
+slidercb.onSetPosition(int val)
+{
+ String s = IntegerToString(val);
+ fadertext.setText(s);
+}
+
+CFIncrease.onLeftClick()
+{
+ slidercb.SetPosition(slidercb.getPosition()+1);
+}
+
+CFDecrease.onLeftClick()
+{
+ slidercb.SetPosition(slidercb.getPosition()-1);
+}
+
+Crossfade.onToggle(boolean on)
+{
+ if (!on)
+ {
+ fadertext.setAlpha(150);
+ CFIncrease.setAlpha(150);
+ CFDecrease.setXmlParam("ghost" , "1");
+ CFDecrease.setAlpha(150);
+ CFIncrease.setXmlParam("ghost" , "1");
+ CrossfadeActive.hide();
+ }
+ else
+ {
+ fadertext.setAlpha(255);
+ CFIncrease.setAlpha(255);
+ CFDecrease.setAlpha(255);
+ CFIncrease.setXmlParam("ghost" , "0");
+ CFDecrease.setXmlParam("ghost" , "0");
+ CrossfadeActive.show();
+ }
+}
+
+Global Boolean cfDown, onDown, autoDown, manual_set;
+Crossfade.onLeftButtonDown (int x, int y)
+{
+ cfDown = 1;
+ CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y+1));
+}
+
+Crossfade.onLeftButtonUp (int x, int y)
+{
+ cfDown = 0;
+ CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y));
+}
+
+Crossfade.onleaveArea ()
+{
+ CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y));
+}
+
+Crossfade.onEnterArea ()
+{
+ if (cfDown) CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y+1));
+}
+
+eqon.onEnterArea ()
+{
+ if (onDown) eqonActive.setXmlParam("y", integerToString(eqonActive_Y+1));
+}
+
+eqon.onLeftButtonDown (int x, int y)
+{
+ onDown = 1;
+ eqonActive.setXmlParam("y", integerToString(eqonActive_Y+1));
+}
+
+eqon.onLeftButtonUp (int x, int y)
+{
+ onDown = 0;
+ eqonActive.setXmlParam("y", integerToString(eqonActive_Y));
+}
+
+eqon.onleaveArea ()
+{
+ eqonActive.setXmlParam("y", integerToString(eqonActive_Y));
+}
+
+eqauto.onLeftButtonDown (int x, int y)
+{
+ autoDown = 1;
+ eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y+1));
+}
+
+eqauto.onLeftButtonUp (int x, int y)
+{
+ autoDown = 0;
+ eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y));
+}
+
+eqauto.onleaveArea ()
+{
+ eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y));
+}
+
+eqauto.onEnterArea ()
+{
+ if (autoDown) eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y+1));
+}
+
+
+EqButton.onLeftClick()
+{
+ manual_set = 1;
+ for(int i=0; i<10; i++) setEqBand(i, EqButton.setTo);
+ manual_set = 0;
+}
+
+System.onEqFreqChanged (boolean isoonoff)
+{
+ if (isoonoff == 1)
+ {
+ frequencyLabel.setXmlParam("image", "equalizer.labels.iso");
+ for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(ISOBANDS,",",i));
+ }
+ else
+ {
+ frequencyLabel.setXmlParam("image", "equalizer.labels.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");
+ }
+
+ SongTicker.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 >= 0) t += "+"+floattostring(f, 1) + " "+ translate("dB");
+ else t += floattostring(f, 1) + " "+ translate("dB");
+ SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
+} \ No newline at end of file