home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 September / CHIP_CD_2004-09.iso / service / winamp / skin / MMD3.wal / scripts / songinfo.m < prev    next >
Text File  |  2002-11-15  |  3KB  |  131 lines

  1. #include "../../../lib/std.mi"
  2.  
  3. Function string tokenizeSongInfo(String tkn, String sinfo);
  4.  
  5. Global GuiObject mono, stereo;
  6. Global Text bitrateText, infolineExampleText, FrequencyText, abrText;
  7. Global Layout dummyMain;
  8. Global group Main;
  9. Global Timer songInfoTimer;
  10. Global String SongInfoString;
  11.  
  12. System.onScriptLoaded(){
  13.     dummyMain = getContainer("Main").getLayout("Normal");
  14.     Main = dummyMain.getObject("main.mmd3");
  15.     infolineExampleText = Main.getObject("infolinegrab");
  16.  
  17.     mono = Main.getObject("monodis");
  18.     stereo = Main.getObject("stereodis");
  19.  
  20.     bitrateText = Main.getObject("Bitrate");
  21.     frequencyText = Main.getObject("Frequency");
  22.  
  23.     //abrText = Main.getObject("ABR");
  24.  
  25.     songInfoTimer = new Timer;
  26.     songInfoTimer.setDelay(1000);
  27.     if (getLeftVUMeter()!=null) songInfoTimer.start();
  28.     mono.hide();
  29.     stereo.hide();
  30. }
  31.  
  32. System.onScriptUnloading(){
  33.     delete songInfoTimer;
  34. }
  35.  
  36. System.onPlay(){
  37.     songInfoTimer.start();
  38. }
  39.  
  40. System.onStop(){
  41.     songInfoTimer.stop();
  42.     frequencyText.setText("");
  43.     bitrateText.setText("");
  44.         mono.hide();
  45.         stereo.hide();
  46. }
  47.  
  48. System.onResume(){
  49.     songInfoTimer.start();
  50. }
  51.  
  52. System.onPause(){
  53.     songInfoTimer.stop();
  54. }
  55.  
  56.  
  57. infolineExampleText.onTextChanged(String newtxt) {
  58.   if(newtxt=="-") {
  59.     infolineExampleText.setText("");
  60.     return;
  61.   }
  62.   String tkn, songinfo;
  63.   songinfo = strupper(newtxt);
  64.  
  65.   mono.hide();
  66.   stereo.hide();
  67.   if(strsearch(songinfo, "STEREO") > 0) stereo.show();
  68. }
  69.  
  70. songInfoTimer.onTimer(){
  71. String tkn;
  72.     SongInfoString = infolineExampleText.getText();
  73.  
  74.     tkn = tokenizeSongInfo("Bitrate", SongInfoString);
  75.     if(tkn != "") {bitrateText.setText(tkn);}
  76.  
  77. /*    tkn = tokenizeSongInfo("ABR", SongInfoString);
  78.     if(tkn != "") {abrText.setText(tkn);}
  79. */
  80.     tkn = tokenizeSongInfo("Channels", SongInfoString);
  81.  
  82.     tkn = tokenizeSongInfo("Frequency", SongInfoString);
  83.     if(tkn != "") {frequencyText.setText(tkn);}
  84. }
  85.  
  86. tokenizeSongInfo(String tkn, String sinfo){
  87. int searchResult;
  88. String rtn;
  89. if (tkn=="Bitrate"){
  90.         for (int i = 0; i < 5; i++) {
  91.             rtn = getToken(sinfo, " ", i);
  92.             searchResult = strsearch(rtn, "kbps");
  93.             if (searchResult>0) return Strleft(rtn, 3);
  94.         }
  95.         return "";
  96. }
  97.  
  98. if (tkn=="Channels"){
  99.         for (int i = 0; i < 5; i++) {
  100.             rtn = getToken(sinfo, " ", i);
  101.             searchResult = strsearch(rtn, "tereo");
  102.             stereo.show();
  103.             mono.hide();
  104.             if (searchResult>0) return rtn;
  105.             searchResult = strsearch(rtn, "ono");
  106.             mono.show();
  107.             stereo.hide();
  108.             if (searchResult>0) return rtn;
  109.         }
  110.         return "";
  111. }
  112. if (tkn=="Frequency"){
  113.         for (int i = 0; i < 5; i++) {
  114.             rtn = getToken(sinfo, " ", i);
  115.             searchResult = strsearch(strlower(rtn), "khz");
  116.             if (searchResult>0) return Strleft(rtn, 2);
  117.         }
  118.         return "";
  119. }
  120. if (tkn=="ABR"){
  121.         for (int i = 0; i < 5; i++) {
  122.             rtn = getToken(sinfo, " ", i);
  123.             searchResult = strsearch(rtn, "bps)");
  124.             if (searchResult>0) return rtn;
  125.         }
  126.         return "";
  127. }
  128.  
  129.  
  130. else return "";
  131. }