home *** CD-ROM | disk | FTP | other *** search
/ PCNet 2004 March / PCNET_CD_2004_04_3.iso / skin / winamp / Devay.wal / scripts / mainwindow.m < prev    next >
Encoding:
Text File  |  2003-04-03  |  19.5 KB  |  737 lines

  1. // Devay - normal and shade mode scripts
  2.  
  3. #include "../../../lib/std.mi"
  4. #include "../../../lib/config.mi"
  5. #include "AutoRepeatButton.m"
  6.  
  7. Function setTempText(String txt);
  8. Function ShadesetTempText(String txt);
  9. Function emptyTempText();
  10. Function StartupPlayStatus();
  11.  
  12. Function initSeek();
  13. Function updateSeeker(int x, int y);
  14. Function setSeekerPosition(int p);
  15.  
  16. Function SongtickerMenu();
  17. Function MenuResult(int ticking);
  18.  
  19. Class GuiObject HintObject;
  20. Global HintObject Play, Pause;
  21. Global int playStatus; 
  22.  
  23. Global Text Songticker;
  24. Global Timer Songtickertimer;
  25. Global AutoRepeatButton VolumeUp, VolumeDown;
  26. Global float CurrentVolume; 
  27. Global Slider hidvol; 
  28.  
  29. Class ToggleButton HintToggleButton;
  30. Class ConfigAttribute ToggleConfigAttribute;
  31. Global HintToggleButton ToggleXFade, ToggleShuffle, ToggleRepeat;
  32. Global ToggleConfigAttribute attr_repeat, attr_shuffle, attr_crossfade;
  33. Global HintObject ShadePlay, ShadePause, Play, Stop, Previous, Next, Pause, Thinger, Open, close, layoutswitch, minimize;
  34.  
  35. Global Slider ShadeVolume, Seeker;
  36. Global int Seeking;
  37. Global Text ShadeSongTicker;
  38. Global Timer ShadeTextTimer;
  39. Global button SongInfoEditor;
  40.  
  41. Global HintToggleButton ToggleXbass;
  42. Global int eqStatus, plStatus;
  43. Global button ShadeEq, ShadePl;
  44. Global button Eq, Pl;
  45.  
  46. Global AnimatedLayer Minidisc;
  47. Global int isPaused;
  48.  
  49. Global button thingertoggle;
  50. Global group displaygroup, thingergroup;
  51. Global int thStatus;
  52. Global AnimatedLayer Seek;
  53. Global Map seekMap;
  54. Global Timer SongPlayingTimer;
  55. Global Slider HiddenSeek;
  56. Global int SeekChanging, SeekFrames, LastSeek, TickerExist;
  57.  
  58. Global slider eqPreamp, eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8, eq9, eq10;
  59. Global int FullStatus, PopStatus, RockStatus, SoftStatus, xbassStatus;
  60. Global HintToggleButton Fullpreset, Poppreset, Rockpreset, Softpreset;
  61. Global HintObject FullpresetDummy, PoppresetDummy, RockpresetDummy, SoftpresetDummy, ToggleXbassDummy;
  62.  
  63. Global Popupmenu tickerMenu; 
  64. Global Text PlshadeSongticker;
  65.  
  66. System.onScriptLoaded() {
  67.   AutoRepeat_Load();  
  68.   Layout mainnormal = getContainer("main").getLayout("normal");
  69.   Pause = mainnormal.getObject("Pause");
  70.   Play = mainnormal.getObject("Play");
  71.   VolumeUp = mainnormal.getObject("VolumeUp");
  72.   VolumeDown = mainnormal.getObject("VolumeDown");
  73.   hidvol = mainnormal.getObject("hidvol");
  74.  
  75.   Pause = mainnormal.getObject("Pause");
  76.   Play = mainnormal.getObject("Play");
  77.   Stop = mainnormal.getObject("Stop");
  78.   Next = mainnormal.getObject("Next");
  79.   Previous = mainnormal.getObject("Prev");
  80.   Open = mainnormal.getObject("Eject");
  81.   ToggleXFade = mainnormal.getObject("Crossfade");
  82.   ToggleShuffle = mainnormal.getObject("Shuffle");
  83.   ToggleRepeat = mainnormal.getObject("Repeat");
  84.   ToggleXbass = mainnormal.getObject("Xbass");
  85.   Eq = mainnormal.getObject("Eq");
  86.   Pl = mainnormal.getObject("Pl");
  87.   close = mainnormal.getObject("Close");
  88.   layoutswitch = mainnormal.getObject("winshade");
  89.   minimize = mainnormal.getObject("Minimize");
  90.  
  91.   Group displaygroup = getContainer("main").getLayout("normal").getObject("display-group");
  92.   SongTicker = displaygroup.getObject("Songticker");
  93.   SongInfoEditor = displaygroup.getObject("SongInfoEditor");
  94.   CurrentVolume = System.GetVolume();
  95.   SongTickerTimer = new Timer;
  96.   SongTickerTimer.setDelay(750);
  97.  
  98.   Group thingergroup = getContainer("main").getLayout("normal").getObject("thinger-group");
  99.   thingertoggle = mainnormal.getObject("TH");
  100.   thingergroup.hide();
  101.  
  102.   Seek = displaygroup.getObject("SeekAnim");
  103.   HiddenSeek = displaygroup.findObject("hideseek");
  104.   SongPlayingTimer = new Timer;
  105.   SongPlayingTimer.setDelay(750);
  106.  
  107.   seekMap = new Map;
  108.   seekMap.loadMap("player.seek-map");
  109.  
  110.   LastSeek = 0;
  111.   SeekChanging = 0;
  112.   SeekFrames = Seek.getLength();
  113.   SeekFrames = SeekFrames - 1;
  114.  
  115.   Layout mainslim = getContainer("main").getLayout("slim");
  116.   ShadePause = mainslim.getObject("Pause");
  117.   ShadePlay = mainslim.getObject("Play");
  118.   ShadeSongTicker = mainslim.getObject("Songticker");
  119.   ShadeEq = mainslim.getObject("Eq");
  120.   ShadePl = mainslim.getObject("Pl");
  121.   ShadeVolume = mainslim.getObject("Volume");
  122.   Seeker = mainslim.getObject("Seeker");
  123.   ShadeTextTimer = new Timer;
  124.   ShadeTextTimer.setDelay(750);
  125.  
  126.   Layout eqnorm = System.getContainer("eq").getLayout("normal");
  127.   eqPreamp = eqnorm.getObject("preamp");
  128.   eq1 = eqnorm.getObject("eq1");
  129.   eq2 = eqnorm.getObject("eq2");
  130.   eq3 = eqnorm.getObject("eq3");
  131.   eq4 = eqnorm.getObject("eq4");
  132.   eq5 = eqnorm.getObject("eq5");
  133.   eq6 = eqnorm.getObject("eq6");
  134.   eq7 = eqnorm.getObject("eq7");
  135.   eq8 = eqnorm.getObject("eq8");
  136.   eq9 = eqnorm.getObject("eq9");
  137.   eq10 = eqnorm.getObject("eq10");
  138.   Fullpreset = displaygroup.getObject("Full");
  139.   Poppreset = displaygroup.getObject("Pop");
  140.   Rockpreset = displaygroup.getObject("Rock");
  141.   Softpreset = displaygroup.getObject("Soft");
  142.   
  143.   // these are just for temp text
  144.   ToggleXbassDummy = mainnormal.getObject("Xbass");
  145.   FullpresetDummy = displaygroup.getObject("Full");
  146.   PoppresetDummy = displaygroup.getObject("Pop");
  147.   RockpresetDummy = displaygroup.getObject("Rock");
  148.   SoftpresetDummy = displaygroup.getObject("Soft");
  149.  
  150.   int FullStatus = getPrivateInt("Devay", "Full", 0);
  151.   Fullpreset.setActivated(FullStatus);
  152.  
  153.   int PopStatus = getPrivateInt("Devay", "Pop", 0);
  154.   Poppreset.setActivated(PopStatus);
  155.  
  156.   int RockStatus = getPrivateInt("Devay", "Rock", 0);
  157.   Rockpreset.setActivated(RockStatus);
  158.  
  159.   int SoftStatus = getPrivateInt("Devay", "Soft", 0);
  160.   Softpreset.setActivated(SoftStatus);
  161.  
  162.   int xbassStatus = getPrivateInt("Devay", "Xbass", 0);
  163.   ToggleXbass.setActivated(xbassStatus);
  164.  
  165.   playStatus = System.getStatus(); 
  166.   StartupPlayStatus();
  167.  
  168.   Minidisc = displaygroup.getObject("AnimCD");
  169.  
  170.   if (getLeftVUMeter() != 0) {
  171.      Minidisc.setStartFrame(1);
  172.      Minidisc.setEndFrame(8);
  173.      Minidisc.play();
  174.   }   
  175.  
  176.   Layout plshade = getContainer("Pledit").getLayout("shade");
  177.   PlshadeSongticker = plshade.getObject("Songticker");
  178.  
  179.   int tickerstatus=getPrivateInt("Devay", "scrolling", 1);
  180.     if (tickerstatus==1) {
  181.         SongTicker.setXMLParam("ticker", "1");
  182.         ShadeSongTicker.setXMLParam("ticker", "1");
  183.         PlshadeSongticker.setXMLParam("ticker", "1");
  184.     } else {
  185.         SongTicker.setXMLParam("ticker", "0");
  186.         ShadeSongTicker.setXMLParam("ticker", "0");
  187.         PlshadeSongticker.setXMLParam("ticker", "0");
  188.     }
  189.  
  190.     SongtickerMenu();
  191.     MenuResult( getPrivateInt("Devay", "scrolling", 1) );
  192. }    
  193.  
  194. System.onScriptUnLoading() {
  195.   AutoRepeat_UnLoad();
  196.   delete Songtickertimer;
  197.   delete SongPlayingTimer;
  198.   delete seekMap;
  199. }
  200.  
  201. SongTickerTimer.onTimer() {
  202.   SongTicker.setText("");
  203.   stop();
  204. }  
  205.  
  206. setTempText(String txt) {
  207.   Songtickertimer.stop();
  208.   Songticker.setText(txt);
  209.   Songtickertimer.start();
  210. }
  211.  
  212. emptyTempText() {
  213.   Songticker.setText("");
  214.   Songtickertimer.stop();
  215. }
  216.   
  217. //  Play/Pause and spinning Minidisc
  218.  
  219. System.onPlay()
  220. {
  221.   Play.hide();
  222.   Pause.show();
  223.   ShadePlay.hide();
  224.   ShadePause.show();
  225.  
  226.   Minidisc.setStartFrame(1);
  227.   Minidisc.setEndFrame(8);
  228.   Minidisc.play();
  229. }
  230.  
  231.  
  232. System.onPause()
  233. {
  234.   Play.show();
  235.   Pause.hide();
  236.   ShadePlay.show();
  237.   ShadePause.hide();
  238.  
  239.   Minidisc.pause();
  240. }
  241.  
  242. System.onStop()
  243. {
  244.   Play.show();
  245.   Pause.hide();
  246.   ShadePlay.show();
  247.   ShadePause.hide();
  248.  
  249.   Minidisc.stop();
  250.   Minidisc.gotoFrame(0);
  251. }
  252.  
  253.  
  254. System.onresume()
  255. {
  256.   Play.hide();
  257.   Pause.show();
  258.   ShadePlay.hide();
  259.   ShadePause.show();
  260.  
  261.   Minidisc.setStartFrame(1);
  262.   Minidisc.setEndFrame(8);
  263.   Minidisc.play();
  264. }
  265.  
  266. StartupPlayStatus() {
  267.   if (playStatus != 1) {
  268.     Play.show();
  269.     Pause.hide();
  270.     ShadePlay.show();
  271.     ShadePause.hide();
  272.   }
  273.   else {
  274.     Pause.show();
  275.     Play.hide();
  276.     ShadePause.show();
  277.     ShadePlay.hide();
  278.   } 
  279. }
  280.  
  281. // Thinger toggle
  282. thingertoggle.onActivate(int thStatus) {
  283.  Group displaygroup = getContainer("main").getLayout("normal").getObject("display-group");
  284.  Group thingergroup = getContainer("main").getLayout("normal").getObject("thinger-group");
  285.   if (thStatus == 1) {
  286.  displaygroup.hide();
  287.  thingergroup.show();
  288.   } else {
  289.  thingergroup.hide();
  290.  displaygroup.show();
  291.   }
  292. }
  293.  
  294. // Animated Seek
  295. System.onPlay() {
  296.     SongPlayingTimer.start();
  297. }
  298.  
  299. SongPlayingTimer.onTimer() {
  300.     if (System.getPlayItemLength() > 0) {
  301.         float p = System.getPosition();
  302.         p = p / System.getPlayItemLength();
  303.         p = p * 255;
  304.         setSeekerPosition(p);
  305.     }
  306. }
  307.  
  308. System.onStop() {
  309.     SongPlayingTimer.stop();
  310.     Seek.gotoFrame(0);
  311. }
  312.  
  313.  
  314. Seek.onLeftButtonDown(int x, int y) {
  315.     if (getPlayItemLength() > 0) {
  316.         SongPlayingTimer.stop();
  317.         SeekChanging = 1;
  318.         updateSeeker(x, y);
  319.     }
  320. }
  321.  
  322. Seek.onLeftButtonUp(int x, int y) {
  323.     Float l;
  324.     if (SeekChanging) {
  325.         l = seekMap.getValue(x - Seek.getLeft(), y - Seek.getTop());
  326.         if (l > 0) {
  327.             if (System.getPlayItemLength() >= 0) {
  328.                 l = (l / 255) * System.getPlayItemLength();
  329.                 System.seekTo(l);
  330.             }
  331.         }
  332.         SongPlayingTimer.start();
  333.         SeekChanging = 0;
  334.     }
  335. }
  336.  
  337. Seek.onMouseMove(int x, int y) {
  338.     if (SeekChanging) {
  339.         updateSeeker(x, y);
  340.     }
  341. }
  342.  
  343. updateSeeker(int x, int y) {
  344.     int v = seekMap.getValue(x - Seek.getLeft(), y - Seek.getTop());
  345.     if (v > 0) {
  346.         setSeekerPosition(v);
  347.         if (System.getPlayItemLength() >= 0) {
  348.             float len = System.getPlayItemLength();
  349.             int p = (v * 100) / 255;
  350.             int s = (v * len) / 255;
  351.             Songtickertimer.stop();
  352.             Songtickertimer.start();
  353.             Songticker.setText("Seek " + System.integerToTime(s));
  354.         }
  355.     }
  356. }
  357.  
  358. setSeekerPosition(int p) {
  359.     int f = (p * SeekFrames) / 255;
  360.     if (p > 0) {
  361.         Seek.gotoFrame(f + 1);
  362.     }
  363.     if (p == 0) {
  364.         Seek.gotoFrame(0);
  365.     }
  366. }
  367.  
  368. HiddenSeek.onPostedPosition(int p) {
  369.     if (p != LastSeek && !SeekChanging) {
  370.         setSeekerPosition(p);
  371.         LastSeek = p;
  372.     }
  373. }
  374.  
  375. // Autorepeat volume .... thanks Will :)  
  376. VolumeUp.onLeftClick() { 
  377.   if (AutoRepeat_ClickType != 0) {
  378.     CurrentVolume = CurrentVolume + 2.55; 
  379.     System.SetVolume(system.integer(CurrentVolume));
  380.     SongTickerTimer.stop();
  381.     SongTickerTimer.start();
  382.     SongTicker.SetText("Volume: " + System.IntegertoString(CurrentVolume/2.55) + "'\.");
  383.   }
  384. }
  385.  
  386. VolumeDown.onLeftClick() { 
  387.   if (AutoRepeat_ClickType != 0) { 
  388.     CurrentVolume = CurrentVolume - 2.55;
  389.     System.SetVolume(system.integer(CurrentVolume)); 
  390.      SongTickerTimer.stop();
  391.     SongTickerTimer.start();
  392.     SongTicker.SetText("Volume: " + System.IntegertoString(CurrentVolume/2.55) + "'\.");
  393.   }
  394. }  
  395.  
  396. hidvol.onPostedPosition(int p) {
  397.   Float f;
  398.   f = p;
  399.   f = f / 255 * 100;
  400.   setTempText("Volume: " + System.integerToString(f) + "'\.");
  401. }
  402.  
  403. System.onVolumeChanged(int newvol) {
  404.   if (System.Integer(CurrentVolume) != newvol) {
  405.     CurrentVolume = Newvol;
  406.   }
  407. }
  408.  
  409. //  Regular toggles temp text
  410. HintToggleButton.onLeftButtonDown(int x, int y) {
  411.     if (HintToggleButton == ToggleXFade) setTempText("Crossfade");
  412.     else if (HintToggleButton == ToggleRepeat) setTempText("Repeat");
  413.     else if (HintToggleButton == ToggleShuffle) setTempText("Shuffle");
  414. }
  415.  
  416. HintToggleButton.onToggle(int onoff) {
  417.     String cmd, txt;
  418.     txt="none";
  419.     if (HintToggleButton == ToggleXFade) {
  420.         txt = "Cfd";
  421.     } else if (HintToggleButton == ToggleRepeat) {
  422.         txt = "Rep";
  423.     } else if (HintToggleButton == ToggleShuffle) {
  424.         txt = "Shf";
  425.     }
  426.     if (txt != "none") {
  427.         String s;
  428.         if (onoff) s = "on"; else s = "off";
  429.         setTempText(txt + " now " + s);
  430.     }
  431. }
  432.  
  433. ToggleConfigAttribute.onDataChanged() {
  434.   ToggleButton t = NULL;
  435.   if (ToggleConfigAttribute == attr_crossfade) t = ToggleXFade;
  436.   else if (ToggleConfigAttribute == attr_shuffle) t = ToggleShuffle;
  437.   else if (ToggleConfigAttribute == attr_repeat) t = ToggleRepeat;
  438.   if (t != NULL)
  439.     t.setActivated(StringToInteger(getData()));
  440. }
  441.  
  442. HintObject.onLeftButtonDown(int x, int y) {
  443.   if (HintObject == Play) setTempText("Play");
  444.   else if (HintObject == Stop) setTempText("Stop");
  445.   else if (HintObject == Pause) setTempText("Pause");
  446.   else if (HintObject == Next) setTempText("Next");
  447.   else if (HintObject == Previous) setTempText("Previous");
  448.   else if (HintObject == Open) setTempText("Open");
  449.   else if (HintObject == close) setTempText("Exit Winamp");
  450.   else if (HintObject == layoutswitch) setTempText("Shade Mode");
  451.   else if (HintObject == minimize) setTempText("Minimize");
  452.   else if (HintObject == FullpresetDummy) setTempText("Full Bass Treb.");
  453.   else if (HintObject == PoppresetDummy) setTempText("Pop Music");
  454.   else if (HintObject == RockpresetDummy) setTempText("Rock Music");
  455.   else if (HintObject == SoftpresetDummy) setTempText("Soft Music");
  456.   else if (HintObject == ToggleXbassDummy) setTempText("X-Bass");
  457. }
  458.  
  459. //  Slim-mode Temp text
  460. ShadeTextTimer.onTimer() {
  461.   ShadeSongTicker.setText("");
  462.   stop();
  463. }
  464.  
  465. ShadeVolume.onSetPosition(int p) {
  466.   Float f;
  467.   f = p;
  468.   f = f / 255 * 100;
  469.   ShadesetTempText("Volume: " + System.integerToString(f) + "%");
  470. }
  471.  
  472. ShadeVolume.onPostedPosition(int p) {
  473.   Float f;
  474.   f = p;
  475.   f = f / 255 * 100;
  476.   ShadesetTempText("Volume: " + System.integerToString(f) + "%");
  477. }
  478.  
  479. Seeker.onSetPosition(int p) {
  480.   if (seeking) {
  481.     Float f;
  482.     f = p;
  483.     f = f / 255 * 100;
  484.     Float len = getPlayItemLength();
  485.     if (len != 0) {
  486.       int np = len * f / 100;
  487.       ShadesetTempText("Seek: " + integerToTime(np) + " / " + integerToTime(len));
  488.     }
  489.   }
  490. }
  491.  
  492. Seeker.onPostedPosition(int p) {
  493.   if (seeking) {
  494.     Float f;
  495.     f = p;
  496.     f = f / 255 * 100;
  497.     Float len = getPlayItemLength();
  498.     if (len != 0) {
  499.       int np = len * f / 100;
  500.       ShadesetTempText("Seek: " + integerToTime(np) + " / " + integerToTime(len));
  501.     }
  502.   }
  503. }
  504.  
  505. Seeker.onLeftButtonDown(int x, int y) {
  506.   seeking = 1;
  507. }
  508.  
  509. Seeker.onLeftButtonUp(int x, int y) {
  510.   seeking = 0;
  511. }
  512.  
  513. ShadesetTempText(String txt) {
  514.   ShadeTextTimer.stop();
  515.   ShadeSongTicker.setText(txt);
  516.   ShadeTextTimer.start();
  517. }
  518.  
  519. emptyTempText() {
  520.   ShadeSongTicker.setText("");
  521.   ShadeTextTimer.stop();
  522. }
  523.  
  524. //  Eq/Pl norm/shade temp text
  525. Eq.onActivate(int eqStatus) {
  526.   if (eqStatus == 1) {
  527.     setTempText("Open Eq");
  528.   } else {
  529.     setTempText("Close Eq");
  530.   }
  531. }  
  532.  
  533. Pl.onActivate(int plStatus) {
  534.   if (plStatus == 1) {
  535.     setTempText("Open Pl");
  536.   } else {
  537.     setTempText("Close Pl");
  538.   }
  539.  
  540. ShadeEq.onActivate(int eqStatus) {
  541.   if (eqStatus == 1) {
  542.     ShadesetTempText("Open Equalizer");
  543.   } else {
  544.     ShadesetTempText("Close Equalizer");
  545.   }
  546. }  
  547.  
  548. ShadePl.onActivate(int plStatus) {
  549.   if (plStatus == 1) {
  550.     ShadesetTempText("Open Playlist");
  551.   } else {
  552.     ShadesetTempText("Close Playlist");
  553.   }
  554. }  
  555.  
  556. // Toggle media info editor
  557. Songticker.onLeftButtonDblClk(Int intX, Int intY) {
  558.     SongInfoEditor.leftClick();
  559. }
  560. ShadeSongticker.onLeftButtonDblClk(Int intX, Int intY) {
  561.     SongInfoEditor.leftClick();
  562. }
  563.  
  564. // X-bass button
  565. ToggleXbass.onLeftButtonUp(int x, int y) {
  566.   int xbassStatus = getPrivateInt("Devay", "Xbass", 0);
  567.   if (xbassStatus == 0) {
  568.     eqPreamp.setPosition((eqPreamp.getPosition() + 10));
  569.     eq1.setPosition((eq1.getPosition() + 41));
  570.     eq2.setPosition((eq2.getPosition() + 35));
  571.     eq3.setPosition((eq3.getPosition() + 26));
  572.     setPrivateInt("Devay", "Xbass", 1);
  573.        } else {
  574.     eqPreamp.setPosition((eqPreamp.getPosition() - 10));
  575.     eq1.setPosition((eq1.getPosition() - 41));
  576.     eq2.setPosition((eq2.getPosition() - 35));
  577.     eq3.setPosition((eq3.getPosition() - 26));
  578.     setPrivateInt("Devay", "Xbass", 0);
  579.   }
  580. }
  581.  
  582. // Full Bass & Trebble button
  583. Fullpreset.onActivate(int FullStatus) {
  584.     setPrivateInt("Devay", "Full", FullStatus);
  585.   if (FullStatus == 1) {
  586.     Poppreset.setActivated(0);
  587.     setPrivateInt("Devay", "Pop", 0);
  588.     Rockpreset.setActivated(0);
  589.     setPrivateInt("Devay", "Rock", 0);
  590.     Softpreset.setActivated(0);
  591.     setPrivateInt("Devay", "Soft", 0);
  592.     ToggleXbass.setActivated(0);
  593.     setPrivateInt("Devay", "Xbass", 0);
  594.     eqPreamp.setPosition(127);
  595.     eq1.setPosition(170);
  596.     eq2.setPosition(162);
  597.     eq3.setPosition(127);
  598.     eq4.setPosition(76);
  599.     eq5.setPosition(92);
  600.     eq6.setPosition(134);
  601.     eq7.setPosition(178);
  602.     eq8.setPosition(194);
  603.     eq9.setPosition(202);
  604.     eq10.setPosition(202);
  605.     setPrivateInt("Devay", "Full", 1);
  606.        } else {
  607.     setPrivateInt("Devay", "Full", 0);
  608.   }
  609. }
  610.  
  611. // Pop button
  612. Poppreset.onActivate(int PopStatus) {
  613.     setPrivateInt("Devay", "Pop", PopStatus);
  614.   if (PopStatus == 1) {
  615.     Fullpreset.setActivated(0);
  616.     setPrivateInt("Devay", "Full", 0);
  617.     Rockpreset.setActivated(0);
  618.     setPrivateInt("Devay", "Rock", 0);
  619.     Softpreset.setActivated(0);
  620.     setPrivateInt("Devay", "Soft", 0);
  621.     ToggleXbass.setActivated(0);
  622.     setPrivateInt("Devay", "Xbass", 0);
  623.     eqPreamp.setPosition(127);
  624.     eq1.setPosition(112);
  625.     eq2.setPosition(154);
  626.     eq3.setPosition(170);
  627.     eq4.setPosition(174);
  628.     eq5.setPosition(158);
  629.     eq6.setPosition(116);
  630.     eq7.setPosition(108);
  631.     eq8.setPosition(108);
  632.     eq9.setPosition(112);
  633.     eq10.setPosition(112);
  634.     setPrivateInt("Devay", "Pop", 1);
  635.        } else {
  636.     setPrivateInt("Devay", "Pop", 0);
  637.   }
  638. }
  639.  
  640. // Rock button
  641. Rockpreset.onActivate(int RockStatus) {
  642.     setPrivateInt("Devay", "Rock", RockStatus);
  643.   if (RockStatus == 1) {
  644.     Fullpreset.setActivated(0);
  645.     setPrivateInt("Devay", "Full", 0);
  646.     Poppreset.setActivated(0);
  647.     setPrivateInt("Devay", "Pop", 0);
  648.     Softpreset.setActivated(0);
  649.     setPrivateInt("Devay", "Soft", 0);
  650.     ToggleXbass.setActivated(0);
  651.     setPrivateInt("Devay", "Xbass", 0);
  652.     eqPreamp.setPosition(127);
  653.     eq1.setPosition(174);
  654.     eq2.setPosition(154);
  655.     eq3.setPosition(88);
  656.     eq4.setPosition(72);
  657.     eq5.setPosition(100);
  658.     eq6.setPosition(150);
  659.     eq7.setPosition(182);
  660.     eq8.setPosition(194);
  661.     eq9.setPosition(194);
  662.     eq10.setPosition(194);
  663.     setPrivateInt("Devay", "Rock", 1);
  664.        } else {
  665.     setPrivateInt("Devay", "Rock", 0);
  666.   }
  667. }
  668.  
  669. // Soft button
  670. Softpreset.onActivate(int SoftStatus) {
  671.     setPrivateInt("Devay", "Soft", SoftStatus);
  672.   if (SoftStatus == 1) {
  673.     Fullpreset.setActivated(0);
  674.     setPrivateInt("Devay", "Full", 0);
  675.     Poppreset.setActivated(0);
  676.     setPrivateInt("Devay", "Pop", 0);
  677.     Rockpreset.setActivated(0);
  678.     setPrivateInt("Devay", "Rock", 0);
  679.     ToggleXbass.setActivated(0);
  680.     setPrivateInt("Devay", "Xbass", 0);
  681.     eqPreamp.setPosition(127);
  682.     eq1.setPosition(154);
  683.     eq2.setPosition(134);
  684.     eq3.setPosition(116);
  685.     eq4.setPosition(108);
  686.     eq5.setPosition(116);
  687.     eq6.setPosition(150);
  688.     eq7.setPosition(178);
  689.     eq8.setPosition(186);
  690.     eq9.setPosition(194);
  691.     eq10.setPosition(202);
  692.     setPrivateInt("Devay", "Soft", 1);
  693.        } else {
  694.     setPrivateInt("Devay", "Soft", 0);
  695.   }
  696. }
  697.  
  698. // Songticker Menu
  699. SongtickerMenu() {
  700.     tickerMenu = new PopupMenu;
  701.     tickerMenu.addCommand("Songticker Scrolling (on)", 1, 0, 0);
  702.     tickerMenu.addCommand("Songticker Scrolling (off)", 2, 0, 0);
  703. }
  704.  
  705. Songticker.onRightButtonUp(Int intX, Int intY) {
  706.     MenuResult(tickerMenu.popAtMouse());
  707.     complete;
  708. }
  709.  
  710. ShadeSongticker.onRightButtonUp(Int intX, Int intY) {
  711.     MenuResult(tickerMenu.popAtMouse());
  712.     complete;
  713. }
  714.  
  715. MenuResult(int ticking) {
  716.     if(ticking > 0) {
  717.      if(ticking == 1) {
  718.         Songticker.setXMLParam("ticker", "1");
  719.         ShadeSongTicker.setXMLParam("ticker", "1");
  720.         PlshadeSongticker.setXMLParam("ticker", "1");
  721.         tickerMenu.checkCommand(1, 1);
  722.         tickerMenu.checkCommand(2, 0);
  723.         setPrivateInt("Devay", "scrolling", 1);
  724.     }
  725.  
  726.     if(ticking == 2) {
  727.         Songticker.setXMLParam("ticker", "0");
  728.         ShadeSongTicker.setXMLParam("ticker", "0");
  729.         PlshadeSongticker.setXMLParam("ticker", "0");
  730.         tickerMenu.checkCommand(1, 0);
  731.         tickerMenu.checkCommand(2, 1);
  732.         setPrivateInt("Devay", "scrolling", 0);
  733.     }
  734.   }
  735. }
  736.