123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- /*---------------------------------------------------
- -----------------------------------------------------
- Filename: eq.m
- Version: 2.0
- Type: maki
- Date: 25. Jun. 2007 - 11:30
- Author: Martin Poehlmann aka Deimos
- E-Mail: [email protected]
- 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);
- }
|