Guest User

Fcl may03

a guest
May 3rd, 2013
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.04 KB | None | 0 0
  1. óߪŸå‹J´£Ò £j³  ‰ì2EgÅgB³: Ko Panel Stack SplitterB¶§ulx$O›R×7Þ š
  2. WSH Panel ModNÞêÉc[³A²U^<<X BiographyÌá^HŠf÷C€IO[xl4 Lyric Show 3fæ 邨 C˜¶±,Q{
  3. ELPlaylist%”ÏÂ@yE«?âf=› Playlist switcherЩ–‘¿ÒA”H€g@ž‚ Quick Search Toolbar<ÆPó|ˆI„К,P¸ð Channel spectrum panel 8ÏàŽ^œC¸™™u¬
  4.  Colours   ç{)
  5. CÞÚIŽÈ؈Ï
  6. Misc fonts Í©¨AÚC€^þN³HÉ  Fonts (unified) È ˆ      \ õÿÿÿ  1P r o g g y T i n y S Z  ˆ      \ õÿÿÿ  M o n t e C a r l o     $  sÂ¥p«g¶K¶÷—Zhqý  $  ³àø"èO² Ô¦~Hrù  $  LÖû01 O©7òq¢á•  $  úû5rEœK–¥ÅÕ7  $  êÕ¹'X¾@¨–0*q¼ªœ   $  ¤6,”(NêL–Dò#ɨ8ì   $  l·ÓÀM2ÓF»<è};Ë…  $  ym‚¼iA@Ž*ã´@k¶ü  $  +u¨üdÀÄA›ãá%ÇÇü4  $  ó?ÙîJ2Fµ¿ ÎÇmí  $  púówœãøFŽŠnÌdÝâ4  $  hò{ÌNN£áEÚ–’¥  $  ¦–Z¯í–F‹¡Â%3Å4‘  $  =»_uÔ¨óF°º [
  7.    $  Ä o†?ÅO€ê÷ªM•Qæ   $  Æ.R|êòI®^p+ŒkK$   $  W7 JHXC¤ï¿üê§  $  ;${E-fJy‡Wƒ‡7  $  6þ’öËЩ@¥>’Öï¬e  $  7Rä%ûû´Kº×uá'g  $  ½-Ëhnò
  8. BFcæZ  ‹¢öšÿ>M­úYñÖl Titles Q  2 //This is the default script for the content of the main status bar pane during playback.
  9.  
  10. $rgb(73,141,229)$if(%ispaused%,'[PAUSED]','[PLAYING]')
  11. $rgb(70,70,70) |
  12. $rgb(143,99,153)%codec%
  13. $rgb(70,70,70) |
  14. $rgb(143,99,153)%bitrate% kbps
  15. $rgb(70,70,70) |
  16. $rgb(73,141,229)
  17. %playback_time%/%length%] ‘ //This is the default script for the content of the notification area icon tooltip during playback.
  18.  
  19. [%title%]$crlf()[%artist%][$crlf()%album%] v //titleformat
  20. fb2k · $if(%ispaused%,'[Paused]' ,)[%artist%][ · %title%][ '['%source%']'][ | %album%][ '('%date%')']çFYea€F Ž„µv„Xè Colours (unified)  u       ÀÀÀ   S©ÿ   vwq     ™™“   iii   „ u  —©8ë_;&A‡F&*©ÁùK     ddd   ÀÀÀ   ÀÀÀ             ¬Ó‚ÈÀßDœ~-­óvE      ~~~   ~~~   ~~~              u  ©Ë-ã¿¢I«C"†(     777   ððð      õõõ   Ÿ °   êêê  -  `ò bUO¦á¼JæW   u  ¯tgM’¬DŠ;Uܽô     777   ððð      õõõ   Ÿ °   êêê  u  íÎ NöBCG޳aTE~     777   ððð         Ÿ °   êêê  -  7Š/†àtJ²~+sÛV}   u  ƒÞxL¸…ÇG ŠÏîÅ’     ddd   ÿÿÿ   ddd      $$$     u  ;${E-fJy‡Wƒ‡7     ddd   ÿÿÿ   ÒÒÒ      $$$     -  gßÎtŽJäé!®ë   -  \:ãy÷H‚ïžÄšœ£   -  #îsRÖ?®H©MeIðV”   c&€/Ñ =M®~c zœ+ Toolbars  ”ˆªx,K}G²3ç§§f=$ Misc layout     çª$^ØJ”âs
  21. !9ï Columns j  ë
  22. Playing/Pause c $if(%isplaying%,
  23. $rgb(219,149,229),
  24. $rgb(143,99,153))
  25. $if(%ispaused%,||,
  26. $if(%isplaying%,>>))
  27.           
  28.  '    Í  # F $if(%isplaying%,
  29. $rgb(219,149,229),
  30. $rgb(143,99,153))
  31. %tracknumber% TRACKNUMBER          
  32.  '    ½  Title = $if(%isplaying%,
  33. $rgb(9,226,229),
  34. $rgb(6,152,154))
  35. %title%          
  36.  @B   , Ð  Rating O $if(%isplaying%,
  37. $rgb(9,226,229),
  38. $rgb(6,152,154))
  39. $ifequal(%rating%,5,♪,)           
  40.      û
  41. Play Count v $if(%isplaying%,
  42. $rgb(219,149,229),
  43. $rgb(143,99,153))
  44. $if(%http_check%,,
  45. $ifgreater(%play_count%,0,%play_count%,))          
  46.     ö  Length \ $if(%isplaying%,
  47. $rgb(73,141,229)
  48. %playback_time% / %length%,
  49. $rgb(52,101,164)
  50. %length%)   $num(%_length_seconds%,6)          
  51.     I eð,×òxNŸÊÁÕn'Ø Layout                   «Â  ‰ì2EgÅgB³: Ko Default€Â (     ¡ $set_ps_global(SKIN.PATH,%ps_foobar2000_path%/skins/masood_)
  52. //-------------- colors for top panel, except the volume.
  53. //-- PINK
  54. $set_ps_global(LIGHT.COLOR.1,100-80-151)
  55. $set_ps_global(DARK.COLOR.1,164-11-176)
  56. //-- WHITE
  57. $set_ps_global(LIGHT.COLOR.2,248-148-191)
  58. $set_ps_global(DARK.COLOR.2,248-148-191)
  59. //-- BLUE
  60. $set_ps_global(LIGHT.COLOR.3,50-22-181)
  61. $set_ps_global(DARK.COLOR.3,80-44-160)
  62. //-- BLACK/GRAY
  63. $set_ps_global(LINE.COLOR.1,21-21-21)
  64. $set_ps_global(LINE.COLOR.2,51-51-51-75)
  65. //-- BACKGROUND
  66. $set_ps_global(BG.COLOR,27-27-27)
  67.  
  68. //----------------Font for gettextwidth
  69. $set_ps_global(FONT,MonteCarlo)
  70.  
  71. //--------------media player / love track
  72. $if(%rating%,$textbutton($sub(%_width%,88),15,25,13,'[-l]','[-l]',
  73. CONTEXT:'Playback Statistics/Rating/<not set>';REFRESH,
  74. fontcolor:%DARK.COLOR.1% left,fontcolor:%LIGHT.COLOR.1% left)
  75. ,
  76. $textbutton($sub(%_width%,88),15,25,13,'[+l]','[+l]',
  77. CONTEXT:'Playback Statistics/Rating/5';REFRESH,
  78. fontcolor:%DARK.COLOR.1% left,fontcolor:%LIGHT.COLOR.1% left)
  79. )
  80.  
  81. $if(%media player%,$textbutton($sub(%_width%,63),15,30,13,'[-m]','[-m]',
  82. CONTEXT:'Tagging/Quick Tagger/Set <Media Player> to/[Remove Field]';REFRESH,
  83. fontcolor:%DARK.COLOR.1% left,fontcolor:%LIGHT.COLOR.1% left)
  84. ,
  85. $textbutton($sub(%_width%,63),15,30,13,'[+m]','[+m]',
  86. CONTEXT:'Tagging/Quick Tagger/Set <Media Player> to/true';REFRESH,
  87. fontcolor:%DARK.COLOR.1% left,fontcolor:%LIGHT.COLOR.1% left)
  88. )
  89.  
  90. //------------Tabs
  91. $textbutton(0,0,35,14,'[bio]','[bio]',
  92. PANELSHOW:Playlist:0;PANELSHOW:Playlists:0;PANELSHOW:Search:0;PANELSHOW:Bio:1;PANELSHOW:Lyrics:0;PANELSHOW:Visuals:0;
  93. REFRESH
  94. ,
  95. $if($isvisible_c(Bio),fontcolor:%DARK.COLOR.2% left,fontcolor:%DARK.COLOR.1% left),$if($isvisible_c(Bio),fontcolor:%LIGHT.COLOR.2% left,fontcolor:%LIGHT.COLOR.1% left))
  96.  
  97. $textbutton(30,0,35,14,'[lyr]','[lyr]',
  98. PANELSHOW:Playlist:0;PANELSHOW:Playlists:0;PANELSHOW:Search:0;PANELSHOW:Bio:0;PANELSHOW:Lyrics:1;PANELSHOW:Visuals:0;
  99. REFRESH
  100. ,
  101. $if($isvisible_c(Lyrics),fontcolor:%DARK.COLOR.2% left,fontcolor:%DARK.COLOR.1% left),$if($isvisible_c(Lrics),fontcolor:%LIGHT.COLOR.2% left,fontcolor:%LIGHT.COLOR.1% left))
  102.  
  103. $textbutton(60,0,35,14,'[vis]','[vis]',
  104. PANELSHOW:Playlist:0;PANELSHOW:Playlists:0;PANELSHOW:Search:0;PANELSHOW:Bio:0;PANELSHOW:Lyrics:0;PANELSHOW:Visuals:1;
  105. REFRESH
  106. ,
  107. $if($isvisible_c(Visuals),fontcolor:%DARK.COLOR.2% left,fontcolor:%DARK.COLOR.1% left),$if($isvisible_c(Visuals),fontcolor:%LIGHT.COLOR.2% left,fontcolor:%LIGHT.COLOR.1% left))
  108.  
  109. $textbutton(0,15,55,13,
  110. $if(%ispaused%,'[paused]',$if(%isplaying%,'[playing]','[stopped]')),
  111. $if(%ispaused%,'[paused]',$if(%isplaying%,'[playing]','[stopped]')),
  112. $if($isvisible_c(Playlist),
  113. $if($isvisible_c(Playlists),
  114. $movepanel_c(Playlist,150,32,$sub(%_width%,150),$sub(%_height%,42))
  115. PANELSHOW:Playlist:1;PANELSHOW:Playlists:0;PANELSHOW:Search:0;PANELSHOW:Bio:0;PANELSHOW:Lyrics:0;PANELSHOW:Visuals:0;
  116. REFRESH,
  117. $movepanel_c(Playlist,0,32,%_width%,$sub(%_height%,42))
  118. PANELSHOW:Playlist:1;PANELSHOW:Playlists:1;PANELSHOW:Search:1;PANELSHOW:Bio:0;PANELSHOW:Lyrics:0;PANELSHOW:Visuals:0;
  119. REFRESH
  120. ),
  121. PANELSHOW:Playlist:1;PANELSHOW:Playlists:0;PANELSHOW:Search:0;PANELSHOW:Bio:0;PANELSHOW:Lyrics:0;PANELSHOW:Visuals:0;
  122. REFRESH
  123. ),
  124. $if($isvisible_c(Playlist),fontcolor:%DARK.COLOR.2% left,fontcolor:%DARK.COLOR.1% left),$if($isvisible_c(Playlist),fontcolor:%LIGHT.COLOR.2% left,fontcolor:%LIGHT.COLOR.1% left))
  125. $if(%ispaused%,,$drawtextex( %codec%,55,16,35,13,%LIGHT.COLOR.1%,))
  126.  
  127. //------------Playback Order
  128. $if($stricmp($left(%ps_playback_order%,7),'default'),
  129. $textbutton($sub(%_width%,37),15,35,13,'[----]','[----]',
  130. COMMAND:'Playback/Order/Repeat (playlist)';
  131. REFRESH,
  132. fontcolor:%DARK.COLOR.2% right,fontcolor:%LIGHT.COLOR.2% right),
  133.  
  134. $if($stricmp($left(%ps_playback_order%,9),'repeat (p'),
  135. $textbutton($sub(%_width%,37) right,15,35,13,'[r---]','[r---]',
  136. COMMAND:'Playback/Order/Repeat (track)';
  137. REFRESH,
  138. fontcolor:%DARK.COLOR.2% right,fontcolor:%LIGHT.COLOR.2% right),
  139.  
  140. $if($stricmp($left(%ps_playback_order%,9),'repeat (t'),
  141. $textbutton($sub(%_width%,37),15,35,13,'[r-s-]','[r-s-]',
  142. COMMAND:'Playback/Order/Shuffle (tracks)';
  143. REFRESH,
  144. fontcolor:%DARK.COLOR.2% right,fontcolor:%LIGHT.COLOR.2% right),
  145.  
  146. $textbutton($sub(%_width%,37),15,35,13,'[-z--]','[-z--]',
  147. COMMAND:'Playback/Order/Default';
  148. REFRESH,
  149. fontcolor:%DARK.COLOR.2% right,fontcolor:%LIGHT.COLOR.2% right)
  150. )
  151. )
  152. )
  153.  
  154. //title / feat. artist
  155. $puts(t_y,$if($or(%album%,%artist%),13,26))
  156. $puts(a_format,[ $trim($replace(%track artist%,%album artist%,))])
  157. $puts(full_w,$div($gettextwidth([%title%]$get(a_format),%FONT%),2))
  158. $puts(title_w,$div($gettextwidth([%title%],%FONT%),2))
  159. $puts(artist_w,$div($gettextwidth($get(a_format),%FONT%),2))
  160. $drawtextex([%title%],-$get(artist_w),1,%_width%,$get(t_y),%LIGHT.COLOR.2%,hcenter vcenter)
  161. $drawtextex($get(a_format),$get(title_w),1,%_width%,$get(t_y),%LIGHT.COLOR.3%,hcenter vcenter end_ellipsis)
  162.  
  163. //album artist / album
  164. $puts(aartist_map,$if(%album artist%,%album artist%$if($strcmp($right($lower(%album artist%),1),s),'',''s),))
  165. $drawtextex($get(aartist_map)[ %album%],0,15,%_width%,13,%LIGHT.COLOR.1%,hcenter vcenter end_ellipsis)
  166.  
  167. $if(%title%,
  168. $font(Arial,7,)
  169. $drawstring(───,-$get(full_w),-1,$sub(%_width%,35),$get(t_y),%LINE.COLOR.1%,hcenter vcenter)
  170. $drawstring(───,-$get(full_w),0,$sub(%_width%,35),$get(t_y),%LINE.COLOR.2%,hcenter vcenter)
  171. $drawstring(───,$get(full_w),-1,$add(%_width%,30),$get(t_y),%LINE.COLOR.1%,hcenter vcenter)
  172. $drawstring(───,$get(full_w),0,$add(%_width%,30),$get(t_y),%LINE.COLOR.2%,hcenter vcenter)
  173. ,)
  174.  
  175. $drawrect($sub(%_width%,90),0,90,31,%BG.COLOR%,,)
  176. $drawrect(1,31,$sub(%_width%,2),1,%LINE.COLOR.2%,,)
  177. $drawrect(1,30,$sub(%_width%,2),1,%LINE.COLOR.1%,,)ó $if(%playback_time_remaining%,$drawtextex(%playback_time_remaining%r @,$sub(%_width%,112),2,70,15,%DARK.COLOR.3%,right),)
  178. $if($strcmp($left(%path%,7),'http://'),$drawtextex(%playback_time%e @,$sub(%_width%,111),2,70,15,%DARK.COLOR.3%,right),)  õÿÿÿ  1P r o g g y T i n y S Z  ‰ì2EgÅgB³: Ko Volumey   ø 
  179. Y@ $sub(%_width%,42)  38 13 (
  180. ”    õÿÿÿ   c u r e . s e  B¶§ulx$O›R×7Þ š Volumed  &
  181. Y@  { t„“LÕ·ªA½hd~Ú$¡¾ ,  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæ É    JScript® function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }
  182.  
  183. var font = gdi.Font("ProggyTinyTTSZ", 16, 0);
  184. var g_drag = 0;
  185. var ww = 38;
  186. var wh = 14;
  187. //var color = RGB(52, 101, 164); // DARK.COLOR.3
  188. var color = RGB(42,127,160);
  189. var frameColor = RGB(27,27,27);
  190.  
  191. function StringFormat()
  192. {
  193. var h_align = 0,
  194. v_align = 0,
  195. trimming = 0,
  196. flags = 0;
  197.  
  198. switch (arguments.length)
  199. {
  200. case 4:
  201. flags = arguments[3];
  202. case 3:
  203. trimming = arguments[2];
  204. case 2:
  205. v_align = arguments[1];
  206. case 1:
  207. h_align = arguments[0];
  208. break;
  209. default:
  210. return 0;
  211. }
  212.  
  213. return ((h_align << 28) | (v_align << 24) | (trimming << 20) | flags);
  214. }
  215.  
  216. var StringAlignment =
  217. {
  218. Near: 0,
  219. Center: 1,
  220. Far: 2
  221. };
  222.  
  223. function on_paint(e)
  224. {
  225. e.SetTextRenderingHint(5);
  226. var vol = Math.ceil(Math.pow((100 + fb.Volume) / 100, 2) * 100);
  227. var volume = -Math.ceil(fb.Volume);
  228. if (volume == 0 )
  229. //var txt = ("maxed");
  230. var txt = ("00" + volume + "dB");
  231. else if (volume < 10)
  232. var txt = ("-0" + volume + "dB");
  233. else if (volume == 100)
  234. var txt = ("muted");
  235. else
  236. var txt = ("-" + volume + "dB");
  237. // Draw frame background
  238. e.FillSolidRect(0, 0, ww, wh, frameColor);
  239.  
  240. //e.DrawString(vol + "%", font, color, 0, 0, ww, wh, StringFormat(StringAlignment.Far, StringAlignment.Center));
  241. e.DrawString(txt, font, color, 0, 0, ww, wh, StringFormat(StringAlignment.Far, StringAlignment.Center));
  242. }
  243. function on_mouse_lbtn_down(x, y)
  244. {
  245. g_drag = 1;
  246. }
  247.  
  248. function on_mouse_lbtn_up(x, y)
  249. {
  250. on_mouse_move(x, y);
  251. g_drag = 0;
  252. }
  253. function on_mouse_move(x, y)
  254. {
  255. if (g_drag)
  256. {
  257. var v = x / ww;
  258. v = v < 0 ? 0 : (v < 1 ? v : 1);
  259. v = 100 * (Math.pow(v, 1 / 2) - 1);
  260. fb.Volume = v;
  261. }
  262. }
  263. function on_mouse_wheel(delta)
  264. {
  265. if (delta > 0)
  266. fb.VolumeUp();
  267. else
  268. fb.VolumeDown();
  269. }
  270. function on_mouse_mbtn_down(x, y) {
  271. fb.VolumeMute();
  272. }
  273. function on_volume_change(val)
  274. {
  275. window.Repaint();
  276. }B¶§ulx$O›R×7Þ š Seekbar   æ " ò  0 $sub(%_height%,12) %_width% 12 
  277. { / 4õDPE¯å yoê´G ,  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ 7 ´ ‚  JScript¬ function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }
  278.  
  279. var font = gdi.Font("ProggyTinyTTSZ", 16, 0);
  280. var g_drag = 0;
  281.  
  282. var color =
  283. {
  284. background: RGB(34, 34, 34),
  285. frame: RGB(27, 27, 27),
  286. //progress: RGB(143, 99, 153), // DARK.COLOR.1
  287. progress: RGB(42, 127, 160),
  288. //proghead: RGB(9, 226, 229) // LIGHT.COLOR.2
  289. proghead: RGB(221, 221, 221)
  290. };
  291.  
  292. var barChar =
  293. {
  294. back: "â–“",
  295. body: "â–ˆ",
  296. head: "▌"
  297. };
  298.  
  299. function on_paint(e)
  300. {
  301. e.SetTextRenderingHint(1);
  302.  
  303. var ww = window.Width,
  304. wh = window.Height,
  305. pos = ww * fb.PlaybackTime / (fb.PlaybackLength == 0 ? 1 : fb.PlaybackLength),
  306. background = barChar.back,
  307. progress = barChar.body,
  308. bgWidth = e.MeasureString(barChar.back, font, 0, 0, ww, wh).Width,
  309. bodyWidth = e.MeasureString(barChar.body, font, 0, 0, ww, wh).Width;
  310. headWidth = e.MeasureString(barChar.head, font, 0, 0, ww, wh).Width;
  311.  
  312. // generate background string
  313. for (var i = 0, MAX = Math.ceil(ww / bgWidth); i < MAX; i++)
  314. background += barChar.back;
  315.  
  316. // generate progress string
  317. if (pos > 10)
  318. for (var i = 0, MAX = Math.floor((pos - headWidth) / bodyWidth); i < MAX; i++)
  319. progress += barChar.body;
  320. else
  321. progress = "";
  322.  
  323. // Draw frame background
  324. e.FillSolidRect(0, 0, ww, wh, color.frame);
  325.  
  326. // Draw the background
  327. e.DrawString(background, font, color.background, 0, 2, ww+10, wh);
  328.  
  329. // Draw the progress head
  330. if (pos > 0)
  331. e.DrawString(barChar.head, font, color.proghead,Math.floor((pos - headWidth) / bodyWidth) * bodyWidth + (headWidth - 4), 2, ww, wh);
  332.  
  333. // Draw the progress
  334. e.DrawString(progress, font, color.progress, 0, 2, ww, wh);
  335. }
  336.  
  337. function on_mouse_lbtn_down(x, y)
  338. {
  339. g_drag = 1;
  340. }
  341.  
  342. function on_mouse_lbtn_up(x, y)
  343. {
  344. on_mouse_move(x,y);
  345. g_drag = 0;
  346. }
  347.  
  348. function on_mouse_move(x, y)
  349. {
  350. if (g_drag)
  351. fb.PlaybackTime = x / window.Width * fb.PlaybackLength;
  352. }
  353.  
  354. function on_mouse_wheel(delta)
  355. {
  356. fb.PlaybackTime += delta;
  357. }
  358.  
  359. function on_mouse_mbtn_down(x, y) {
  360. fb.PlayOrPause();
  361. }
  362.  
  363. function on_playback_seek()
  364. {
  365. window.Repaint();
  366. }
  367.  
  368. function on_playback_time()
  369. {
  370. window.Repaint();
  371. }
  372.  
  373. function on_playback_stop()
  374. {
  375. window.Repaint();
  376. } NÞêÉc[³A²U^<<X Bio€   " î  32 %_width% $sub(%_height%,36)      õÿÿÿ ” 1P r o g g y T i n y S Z    ÀÀÀ ÀÀÀ ÿÿÔ   ( ÿ   ÿ       Ìá^HŠf÷C€IO[xl4 Lyrics€   " æ  32 %_width% $sub(%_height%,44)  † 0    *  –––  õÿÿÿ ” 1P r o g g y T i n y S Z [ Artist: %artist%$crlf()Title: %title%$crlf()Album: %album%$crlf()%playback_time% / %length%õÿÿÿ  M S S h e l l D l g    €@ ) y¤Î„ǐèøq[‰‹¢‘´@ðö  ‰ì2EgÅgB³: Ko PlaylistÔ   î # $if($isvisible_c(Playlists),150),0) 329 $if($isvisible_c(Playlists),$sub(%_width%,150)),%_width%) $sub(%_height%,36) J ”       õÿÿÿ    C a l i b r i  fæ 邨 C˜¶±,Q{
  377. ELPlaylistd  " È Y@ ßH 
  378.  p
  379. $puts(COLOR1,$if($or(%el_isplaying%,%el_selected%),
  380. %LIGHT.COLOR.1%,
  381. %DARK.COLOR.1%
  382. ))
  383. $puts(COLOR2,$if($or(%el_isplaying%,%el_selected%),
  384. %LIGHT.COLOR.2%,
  385. %DARK.COLOR.2%
  386. ))
  387. $puts(COLOR3,$if($or(%el_isplaying%,%el_selected%),
  388. %LIGHT.COLOR.3%,
  389. %DARK.COLOR.3%
  390. ))
  391.  
  392. //-------------- selected bg
  393. $if(%el_selected%,
  394. $drawrect($sub(%TRACK.MARGIN%,$div(%ART.MARGIN%,2),1),0,%el_width%,%el_height%,%LINE.COLOR.1%-100,,)
  395. ,)
  396.  
  397. //--------------track ind
  398. $drawtext($if(%ispaused%,||,$if(%isplaying%,>>,$if2(+%queue_index%,$if2($ifgreater(%discnumber%,1,[%discnumber%.],)[%tracknumber%],$add(%el_item_index%,1))))),$add(%TRACK.MARGIN%,4),0,24,%el_height%,$get(COLOR1),right vcenter mempos)
  399.  
  400. //-------------- track information
  401. $drawtextex(%title%,$add(%TRACK.MARGIN%,38),0,
  402. $sub(%el_width%,$add(%TRACK.MARGIN%,114)),%el_height%,$get(COLOR2),vcenter end_ellipsis)
  403.  
  404. //Non Grouped Views
  405. $if($strstr(%el_preset_name%,'/')
  406. ,,
  407. $drawtextex(%album_format%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]%feat_format%),38),0,
  408. $sub(%el_width%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]%feat_format%),114)),%el_height%,$get(COLOR1),vcenter end_ellipsis)
  409. )
  410.  
  411. //Title + feat artist
  412. $drawtextex(%feat_format%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]),38),0,
  413. $sub(%el_width%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]),114)),%el_height%,$get(COLOR3),vcenter end_ellipsis)
  414.  
  415. //-------------- play count
  416. $if(%HTTP.CHECK%,,
  417. $ifgreater(%LASTFM_PLAYCOUNT_DB%,0,
  418. $drawtext(%LASTFM_PLAYCOUNT_DB%,-45,0,,%el_height%,$get(COLOR1),vcenter right)
  419. ,)
  420. )
  421.  
  422. //-------------- track length
  423. $if(%HTTP.CHECK%,,
  424. $if(%el_isplaying%,,$drawtext(%length%,0,0,,%el_height%,$get(COLOR3),vcenter right))
  425. )
  426.  
  427. $font(ProfontWindows,7,)
  428. //-------------- rating
  429. $ifequal(%rating%,5,
  430. $drawtextex(♪,-65,0,,%el_height%,$get(COLOR2),vcenter right)
  431. ,)
  432.  
  433. //$imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\disc.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%),)
  434. //-------------- album art
  435. $if($strstr(%el_preset_name%,'/'),
  436. $ifequal(%ALBUM.ART%,0,,
  437. $enabledraw(1)
  438. $setworldtransform(2)
  439.  
  440. $if(%HTTP.CHECK%,$imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\radio.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),,%ART.OPACITY%),)
  441. $if(%LASTFM.CHECK%,$imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\lfm_nocover.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),,%ART.OPACITY%),)
  442. $imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%el_group_first_path%,artreader $ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),,%ART.OPACITY%)
  443.  
  444. $ifequal(%ART.REFLECTION%,0,,
  445. $if(%HTTP.CHECK%,$imageabs(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\radio.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%),)
  446. $if(%LASTFM.CHECK%,$imageabs(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\lfm_nocover.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%),)
  447. $imageabs(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,%ART.SIZE%,%el_group_first_path%,artreader $ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%)
  448. $gradientrect(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,$div(%ART.SIZE%,2),27-27-27-144,27-27-27)
  449. $drawrect(%ART.MARGIN%,$add(%ART.SIZE%,$div(%ART.SIZE%,2)),%ART.SIZE%,$div(%ART.SIZE%,2),27-27-27,,)
  450. )
  451. ))  $ifequal(%el_group_depth%,0
  452. ,
  453. $if($strstr(%el_preset_name%,'/Artist'),
  454. $drawtextex([%album artist%],%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  455. $puts(x_rect,$add($gettextwidth([%album artist% ]),%HEADER.MARGIN%))
  456. )
  457. $if($strstr(%el_preset_name%,'/Genre'),
  458. $drawtextex($if2(%genre%,Unkown Genre),%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  459. $puts(x_rect,$add($gettextwidth($if2(%genre%,Unkown Genre) ),%HEADER.MARGIN%))
  460. )
  461. $if($strstr(%el_preset_name%,'/Source'),
  462. $drawtextex($if2(%source%,Unkown Source),%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  463. $puts(x_rect,$add($gettextwidth($if2(%source%,Unkown Source) ),%HEADER.MARGIN%))
  464. )
  465. $if($strstr(%el_preset_name%,'//'),
  466. //-------------- group duration
  467. $drawtextex(%el_sum_length%,0,0,,%el_height%,%DARK.COLOR.2%,right vcenter)
  468. //-------------- draw line
  469. $puts(w_rect,$sub(%el_width%,$add($get(x_rect),$gettextwidth( %el_sum_length%))))
  470. $drawrect($get(x_rect),6,$get(w_rect),1,%LINE.COLOR.2%,,)
  471. $drawrect($get(x_rect),5,$get(w_rect),1,%LINE.COLOR.1%,,)
  472. )
  473. ,
  474. //-------------- codec && album length
  475. $drawtextex(%el_sum_length%,0,0,,%el_height%,%DARK.COLOR.2%,right vcenter)
  476.  
  477. $if([%source% ][%genre% ],
  478. $drawtextex(|,-$gettextwidth(%el_sum_length%),1,,%el_height%,%LINE.COLOR.2%,right vcenter)
  479. $drawtextex(|,-$gettextwidth(%el_sum_length%),0,,%el_height%,%LINE.COLOR.1%,right vcenter)
  480. ,)
  481.  
  482. $drawtextex([%source% ][%genre% ],-$gettextwidth(%el_sum_length%),0,,%el_height%,%DARK.COLOR.2%,right vcenter end_ellipsis)
  483.  
  484. //-------------- album
  485. $puts(album,$if2(%album%,$if(%HTTP.CHECK%,Streaming~,Single)))
  486. $puts(a_cutoff,$sub(%el_width%,%HEADER.MARGIN%,$gettextwidth( [%source% ][%genre% ]%el_sum_length%)))
  487. $drawtextex([$get(album)],%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.3%,vcenter end_ellipsis)
  488.  
  489. //-------------- album artist
  490. $puts(aa_cutoff,$sub(%el_width%,%HEADER.MARGIN%,$gettextwidth( [%album%] -[%source% ][%genre% ]%el_sum_length%)))
  491. $if(%album artist%,
  492. $drawtextex(-,$add($gettextwidth([%album% ]),%HEADER.MARGIN%),1,$get(aa_cutoff),%el_height%,%LINE.COLOR.2%,vcenter)
  493. $drawtextex(-,$add($gettextwidth([%album% ]),%HEADER.MARGIN%),0,$get(aa_cutoff),%el_height%,%LINE.COLOR.1%,vcenter)
  494. $drawtextex( %album artist%,$add($gettextwidth([%album% ]-),%HEADER.MARGIN%),0,$get(aa_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  495. ,)
  496.  
  497. //-------------- date
  498. $puts(d_cutoff,$sub(%el_width%,%HEADER.MARGIN%,$gettextwidth( [%album%] - [%album artist%][%source% ][%genre% ]%el_sum_length%)))
  499. $if(%date%,
  500. $ifgreater(%el_width%,$get(n_r),
  501. $drawtextex( '('%date%')',$add($gettextwidth([%album% ]- [%album artist%]),%HEADER.MARGIN%),0,$get(d_cutoff),%el_height%,%LIGHT.COLOR.2%,vcenter end_ellipsis)
  502. ,)
  503. ,)
  504.  
  505. //-------------- draw line
  506. $puts(x_rect,$add($gettextwidth([$get(album)] [- %album artist% ]['('%date%')' ]),%HEADER.MARGIN%))
  507. $puts(w_rect,$sub(%el_width%,$add($get(x_rect),$gettextwidth( %el_sum_length%[%source% ][%genre% ]))))
  508. $drawrect($get(x_rect),14,$get(w_rect),1,%LINE.COLOR.2%,,)
  509. $drawrect($get(x_rect),13,$get(w_rect),1,%LINE.COLOR.1%,,)
  510. )
  511. |||%album%   H //-------------- track progress bar
  512. $ifgreater(%TRACK.PROGRESSBAR%,0,
  513. $puts(p_width,$sub(%el_width%,$sub(%TRACK.MARGIN%,$div(%ART.MARGIN%,2))))
  514. $puts(p_width,$div($mul($div($mul($get(p_width),100000),%length_seconds%),%playback_time_seconds%),100000))
  515. $drawblurrect($sub(%TRACK.MARGIN%,$div(%ART.MARGIN%,2)),$sub($div(%el_height%,2),$div(%el_height%,4)),$get(p_width),$div(%el_height%,2),%TRACK.PROGRESSBAR.COLOR%,2)
  516. ,)
  517.  
  518. //-------------- track length
  519. $if(%HTTP.CHECK%,,
  520. $drawtextex(%playback_time_remaining%,0,0,,%el_height%,%LIGHT.COLOR.3%,vcenter right)
  521. )            " $ifgreater(%el_group_depth%,0,2,0)  – $ifequal(%ALBUM.ART%,0,0,$div($add(%ART.SIZE%,$ifequal(%ART.REFLECTION%,0,%el_row_height%,$add($div(%ART.SIZE%,2),%el_row_height%))),%el_row_height%))A %album artist% - %album% - %discnumber% - %tracknumber% - %title% ðÿÿÿ  M o n t e C a r l o  1  /Album
  522. |||%album%A %album artist% - %album% - %discnumber% - %tracknumber% - %title%" $ifgreater(%el_group_depth%,0,2,0)– $ifequal(%ALBUM.ART%,0,0,$div($add(%ART.SIZE%,$ifequal(%ART.REFLECTION%,0,%el_row_height%,$add($div(%ART.SIZE%,2),%el_row_height%))),%el_row_height%))
  523. I  //Artist/Album %album artist% ||| %album%A %album artist% - %album% - %discnumber% - %tracknumber% - %title%" $ifgreater(%el_group_depth%,0,2,1)– $ifequal(%ALBUM.ART%,0,0,$div($add(%ART.SIZE%,$ifequal(%ART.REFLECTION%,0,%el_row_height%,$add($div(%ART.SIZE%,2),%el_row_height%))),%el_row_height%))
  524. K
  525. //Genre/Album %genre% ||| %album%K %genre% - %album artist% - %album% - %discnumber% - %tracknumber% - %title%" $ifgreater(%el_group_depth%,0,2,1)– $ifequal(%ALBUM.ART%,0,0,$div($add(%ART.SIZE%,$ifequal(%ART.REFLECTION%,0,%el_row_height%,$add($div(%ART.SIZE%,2),%el_row_height%))),%el_row_height%))
  526. N  //Source/Album %source% ||| %album%L %source% - %album artist% - %album% - %discnumber% - %tracknumber% - %title%" $ifgreater(%el_group_depth%,0,2,1)– $ifequal(%ALBUM.ART%,0,0,$div($add(%ART.SIZE%,$ifequal(%ART.REFLECTION%,0,%el_row_height%,$add($div(%ART.SIZE%,2),%el_row_height%))),%el_row_height%))
  527. R Playcount ! $sub(99999,%LASTFM_PLAYCOUNT_DB%)
  528. 9
  529. Date Added  %added%
  530. B First Played  %first_played%
  531. @ Last Played
  532. %last_played%
  533. 2  Path  %path%
  534.       ALBUM.ART 1  ART.SIZE 220  ART.KEEPASPECTRATIO 1
  535. ART.MARGIN 1 ART.OPACITY 255  ART.REFLECTION 0
  536. HEADER.MARGIN 4  TRACK.PROGRESSBAR 0,  TRACK.PROGRESSBAR.COLOR
  537. 52-101-164-75
  538. LIGHT.COLOR.1
  539. 239-61-141
  540. LIGHT.COLOR.2 248-248-248
  541. LIGHT.COLOR.3 168-10-80 DARK.COLOR.1
  542. 164-11-106 DARK.COLOR.2 221-221-221 DARK.COLOR.3 142-107-160 LINE.COLOR.1 21-21-21 LINE.COLOR.2 51-51-41-75\ TRACK.MARGINH $if($strstr(%el_preset_name%,'/'),$add(%ART.SIZE%,$mul(%ART.MARGIN%,2)))4
  543. HTTP.CHECK" $strcmp($left(%path%,7),'http://')C LASTFM.CHECK/ $strcmp($left(%path%,19),'FOO_LASTFM_RADIO://') SKIN.PATH skins\masood_\r
  544. artist_format] $if($strstr(%artist%,' ft. '),$substr(%artist%,1,$sub($strstr(%artist%,' ft. '),1)),%artist%)E feat_format2 [ $trim($replace(%track artist%,%album artist%,))]f album_formatR [ %album artist%$if($strcmp($right($lower(%album artist%),1),s),'',''s) ][%album%]   defaultp
  545. $puts(COLOR1,$if($or(%el_isplaying%,%el_selected%),
  546. %LIGHT.COLOR.1%,
  547. %DARK.COLOR.1%
  548. ))
  549. $puts(COLOR2,$if($or(%el_isplaying%,%el_selected%),
  550. %LIGHT.COLOR.2%,
  551. %DARK.COLOR.2%
  552. ))
  553. $puts(COLOR3,$if($or(%el_isplaying%,%el_selected%),
  554. %LIGHT.COLOR.3%,
  555. %DARK.COLOR.3%
  556. ))
  557.  
  558. //-------------- selected bg
  559. $if(%el_selected%,
  560. $drawrect($sub(%TRACK.MARGIN%,$div(%ART.MARGIN%,2),1),0,%el_width%,%el_height%,%LINE.COLOR.1%-100,,)
  561. ,)
  562.  
  563. //--------------track ind
  564. $drawtext($if(%ispaused%,||,$if(%isplaying%,>>,$if2(+%queue_index%,$if2($ifgreater(%discnumber%,1,[%discnumber%.],)[%tracknumber%],$add(%el_item_index%,1))))),$add(%TRACK.MARGIN%,4),0,24,%el_height%,$get(COLOR1),right vcenter mempos)
  565.  
  566. //-------------- track information
  567. $drawtextex(%title%,$add(%TRACK.MARGIN%,38),0,
  568. $sub(%el_width%,$add(%TRACK.MARGIN%,114)),%el_height%,$get(COLOR2),vcenter end_ellipsis)
  569.  
  570. //Non Grouped Views
  571. $if($strstr(%el_preset_name%,'/')
  572. ,,
  573. $drawtextex(%album_format%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]%feat_format%),38),0,
  574. $sub(%el_width%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]%feat_format%),114)),%el_height%,$get(COLOR1),vcenter end_ellipsis)
  575. )
  576.  
  577. //Title + feat artist
  578. $drawtextex(%feat_format%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]),38),0,
  579. $sub(%el_width%,$add(%TRACK.MARGIN%,$gettextwidth([%title%]),114)),%el_height%,$get(COLOR3),vcenter end_ellipsis)
  580.  
  581. //-------------- play count
  582. $if(%HTTP.CHECK%,,
  583. $ifgreater(%LASTFM_PLAYCOUNT_DB%,0,
  584. $drawtext(%LASTFM_PLAYCOUNT_DB%,-45,0,,%el_height%,$get(COLOR1),vcenter right)
  585. ,)
  586. )
  587.  
  588. //-------------- track length
  589. $if(%HTTP.CHECK%,,
  590. $if(%el_isplaying%,,$drawtext(%length%,0,0,,%el_height%,$get(COLOR3),vcenter right))
  591. )
  592.  
  593. $font(ProfontWindows,7,)
  594. //-------------- rating
  595. $ifequal(%rating%,5,
  596. $drawtextex(♪,-65,0,,%el_height%,$get(COLOR2),vcenter right)
  597. ,)
  598.  
  599. //$imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\disc.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%),)
  600. //-------------- album art
  601. $if($strstr(%el_preset_name%,'/'),
  602. $ifequal(%ALBUM.ART%,0,,
  603. $enabledraw(1)
  604. $setworldtransform(2)
  605.  
  606. $if(%HTTP.CHECK%,$imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\radio.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),,%ART.OPACITY%),)
  607. $if(%LASTFM.CHECK%,$imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\lfm_nocover.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),,%ART.OPACITY%),)
  608. $imageabs(%ART.MARGIN%,0,%ART.SIZE%,%ART.SIZE%,%el_group_first_path%,artreader $ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),,%ART.OPACITY%)
  609.  
  610. $ifequal(%ART.REFLECTION%,0,,
  611. $if(%HTTP.CHECK%,$imageabs(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\radio.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%),)
  612. $if(%LASTFM.CHECK%,$imageabs(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,%ART.SIZE%,%SKIN.PATH%cover\lfm_nocover.png,$ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%),)
  613. $imageabs(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,%ART.SIZE%,%el_group_first_path%,artreader $ifgreater(%ART.KEEPASPECTRATIO%,0,,nokeepaspect),6,%ART.OPACITY%)
  614. $gradientrect(%ART.MARGIN%,%ART.SIZE%,%ART.SIZE%,$div(%ART.SIZE%,2),27-27-27-144,27-27-27)
  615. $drawrect(%ART.MARGIN%,$add(%ART.SIZE%,$div(%ART.SIZE%,2)),%ART.SIZE%,$div(%ART.SIZE%,2),27-27-27,,)
  616. )
  617. ))  $ifequal(%el_group_depth%,0
  618. ,
  619. $if($strstr(%el_preset_name%,'/Artist'),
  620. $drawtextex([%album artist%],%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  621. $puts(x_rect,$add($gettextwidth([%album artist% ]),%HEADER.MARGIN%))
  622. )
  623. $if($strstr(%el_preset_name%,'/Genre'),
  624. $drawtextex($if2(%genre%,Unkown Genre),%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  625. $puts(x_rect,$add($gettextwidth($if2(%genre%,Unkown Genre) ),%HEADER.MARGIN%))
  626. )
  627. $if($strstr(%el_preset_name%,'/Source'),
  628. $drawtextex($if2(%source%,Unkown Source),%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  629. $puts(x_rect,$add($gettextwidth($if2(%source%,Unkown Source) ),%HEADER.MARGIN%))
  630. )
  631. $if($strstr(%el_preset_name%,'//'),
  632. //-------------- group duration
  633. $drawtextex(%el_sum_length%,0,0,,%el_height%,%DARK.COLOR.2%,right vcenter)
  634. //-------------- draw line
  635. $puts(w_rect,$sub(%el_width%,$add($get(x_rect),$gettextwidth( %el_sum_length%))))
  636. $drawrect($get(x_rect),6,$get(w_rect),1,%LINE.COLOR.2%,,)
  637. $drawrect($get(x_rect),5,$get(w_rect),1,%LINE.COLOR.1%,,)
  638. )
  639. ,
  640. //-------------- codec && album length
  641. $drawtextex(%el_sum_length%,0,0,,%el_height%,%DARK.COLOR.2%,right vcenter)
  642.  
  643. $if([%source% ][%genre% ],
  644. $drawtextex(|,-$gettextwidth(%el_sum_length%),1,,%el_height%,%LINE.COLOR.2%,right vcenter)
  645. $drawtextex(|,-$gettextwidth(%el_sum_length%),0,,%el_height%,%LINE.COLOR.1%,right vcenter)
  646. ,)
  647.  
  648. $drawtextex([%source% ][%genre% ],-$gettextwidth(%el_sum_length%),0,,%el_height%,%DARK.COLOR.2%,right vcenter end_ellipsis)
  649.  
  650. //-------------- album
  651. $puts(album,$if2(%album%,$if(%HTTP.CHECK%,Streaming~,Single)))
  652. $puts(a_cutoff,$sub(%el_width%,%HEADER.MARGIN%,$gettextwidth( [%source% ][%genre% ]%el_sum_length%)))
  653. $drawtextex([$get(album)],%HEADER.MARGIN%,0,$get(a_cutoff),%el_height%,%LIGHT.COLOR.3%,vcenter end_ellipsis)
  654.  
  655. //-------------- album artist
  656. $puts(aa_cutoff,$sub(%el_width%,%HEADER.MARGIN%,$gettextwidth( [%album%] -[%source% ][%genre% ]%el_sum_length%)))
  657. $if(%album artist%,
  658. $drawtextex(-,$add($gettextwidth([%album% ]),%HEADER.MARGIN%),1,$get(aa_cutoff),%el_height%,%LINE.COLOR.2%,vcenter)
  659. $drawtextex(-,$add($gettextwidth([%album% ]),%HEADER.MARGIN%),0,$get(aa_cutoff),%el_height%,%LINE.COLOR.1%,vcenter)
  660. $drawtextex( %album artist%,$add($gettextwidth([%album% ]-),%HEADER.MARGIN%),0,$get(aa_cutoff),%el_height%,%LIGHT.COLOR.1%,vcenter end_ellipsis)
  661. ,)
  662.  
  663. //-------------- date
  664. $puts(d_cutoff,$sub(%el_width%,%HEADER.MARGIN%,$gettextwidth( [%album%] - [%album artist%][%source% ][%genre% ]%el_sum_length%)))
  665. $if(%date%,
  666. $ifgreater(%el_width%,$get(n_r),
  667. $drawtextex( '('%date%')',$add($gettextwidth([%album% ]- [%album artist%]),%HEADER.MARGIN%),0,$get(d_cutoff),%el_height%,%LIGHT.COLOR.2%,vcenter end_ellipsis)
  668. ,)
  669. ,)
  670.  
  671. //-------------- draw line
  672. $puts(x_rect,$add($gettextwidth([$get(album)] [- %album artist% ]['('%date%')' ]),%HEADER.MARGIN%))
  673. $puts(w_rect,$sub(%el_width%,$add($get(x_rect),$gettextwidth( %el_sum_length%[%source% ][%genre% ]))))
  674. $drawrect($get(x_rect),14,$get(w_rect),1,%LINE.COLOR.2%,,)
  675. $drawrect($get(x_rect),13,$get(w_rect),1,%LINE.COLOR.1%,,)
  676. )H //-------------- track progress bar
  677. $ifgreater(%TRACK.PROGRESSBAR%,0,
  678. $puts(p_width,$sub(%el_width%,$sub(%TRACK.MARGIN%,$div(%ART.MARGIN%,2))))
  679. $puts(p_width,$div($mul($div($mul($get(p_width),100000),%length_seconds%),%playback_time_seconds%),100000))
  680. $drawblurrect($sub(%TRACK.MARGIN%,$div(%ART.MARGIN%,2)),$sub($div(%el_height%,2),$div(%el_height%,4)),$get(p_width),$div(%el_height%,2),%TRACK.PROGRESSBAR.COLOR%,2)
  681. ,)
  682.  
  683. //-------------- track length
  684. $if(%HTTP.CHECK%,,
  685. $drawtextex(%playback_time_remaining%,0,0,,%el_height%,%LIGHT.COLOR.3%,vcenter right)
  686. ) ð x À ( (  ð ,         $$$ D^× $$$ ›    Untitled   2L J  ´ÿÿÿ  1µ ±    3     Untitledt h  øÿÿÿ %”ÏÂ@yE«?âf=› Playlists|  6 – æ  0 54 150 $sub(%_height%,66)  Щ–‘¿ÒA”H€g@ž‚ Searchl   – *     Y@ 0 32 150 10  Ò   t-ara ÿÿÿÿA %artist% %album% %title% %source% %genre% %path% %date% %comment% Extended  t-ara: C:\Apps\foobar2000\skins\masood_\butns\search-bri_dark.bmp ååå  Ì@  B¶§ulx$O›R×7Þ š Playcount Sync{   ®  Æ      Y@ $sub(%_width%,116) 2 24 24  ; { K{öàÛÇH­0zl
  687. yñX  auto_correct auto_menu ÿÿ mode f  panel_id  selection_mode  ,  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ¥ e  JScriptd: // ==PREPROCESSOR==
  688. // @import "%fb2k_path%scripts\masood_\common.js"
  689. // @import "%fb2k_path%scripts\masood_\tooltip_buttons.js"
  690. // @name "Playcount Sync"
  691. // @author "marc2003"
  692. // ==/PREPROCESSOR==
  693.  
  694. var bw = 24;
  695. var bh = 24;
  696. var top_margin = 0;
  697. var left_margin = 0;
  698.  
  699. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  700. window.SetProperty("selection_mode", 1);
  701. var selection_mode = window.GetProperty("selection_mode");
  702. var panel_id = window.GetProperty("panel_id", window.id);
  703. var custom_background_file = settings_path + panel_id + "buttons_background";
  704. var custom_background = read(custom_background_file);
  705. var username_file = settings_path + "username";
  706. var username = read(username_file);
  707. var api_key_file = settings_path + "api_key";
  708. var api_key = read(api_key_file);
  709. var autolove_file = settings_path + "autolove";
  710. var autolove = read(autolove_file);
  711. var sql_file = data_folder + "test.sql";
  712. var loved_working = null;
  713. var playcount_working = null;
  714. var page = 0;
  715. var last_page = 0;
  716. var g_timer = window.CreateTimerInterval(15000);
  717.  
  718. window.GetProperty("auto_menu", false);
  719. window.GetProperty("auto_correct", true);
  720.  
  721. if(!g_metadb) Buttons = { but: new Button(left_margin, top_margin, bw, bh, {normal: images_path + "exclamation.png"}, null, "No selection") };
  722. on_item_focus_change();
  723. if(fb.IsPlaying) on_playback_new_track();
  724.  
  725. function on_metadb_changed() {
  726. if(!g_metadb) return;
  727. //artist = fb.TitleFormat("%artist%").EvalWithMetadb(g_metadb);
  728. artist = fb.TitleFormat("$if($strstr(%artist%,' ft. '),$substr(%artist%,1,$sub($strstr(%artist%,' ft. '),1)),%artist%)").EvalWithMetadb(g_metadb);
  729. track = fb.TitleFormat("%title%").EvalWithMetadb(g_metadb);
  730. old_userloved = fb.TitleFormat("%LASTFM_LOVED_DB%").EvalWithMetadb(g_metadb) == 1 ? 1 : 0;
  731. old_userplaycount = fb.TitleFormat("%LASTFM_PLAYCOUNT_DB%").EvalWithMetadb(g_metadb);
  732. command = "Last.fm " + (old_userloved == 1 ? "Unlove" : "Love") + " Track '" + track + "' by '"+ artist + "'";
  733. //crc32 = fb.TitleFormat("$crc32($lower(%artist%%title%))").EvalWithMetadb(g_metadb);
  734. crc32 = fb.TitleFormat("$crc32($lower($if($strstr(%artist%,' ft. '),$substr(%artist%,1,$sub($strstr(%artist%,' ft. '),1)),%artist%)%title%))").EvalWithMetadb(g_metadb);
  735. switch(true) {
  736. case (username.length == 0):
  737. case (api_key.length != 32):
  738. n = "exclamation.png";
  739. h = "exclamation.png";
  740. tooltip = "Please use the context menu to set your Last.fm username and API KEY.";
  741. func = null;
  742. break;
  743. case (!utils.CheckComponent("foo_customdb", true)):
  744. n = "exclamation.png";
  745. h = "exclamation.png";
  746. tooltip = "The foo_customdb component is not installed. Please refer to the readme.";
  747. func = null;
  748. break;
  749. case (!utils.CheckComponent("foo_softplaylists", true)):
  750. n = "exclamation.png";
  751. h = "exclamation.png";
  752. tooltip = "The foo_softplaylists component is required to love tracks.";
  753. func = null;
  754. break;
  755. default:
  756. n = old_userloved == 1 ? "love_h.png" : "love.png";
  757. h = old_userloved == 1 ? "love.png" : "love_h.png";
  758. tooltip = command;
  759. func = function() {lfm_track();}
  760. break;
  761. }
  762. Buttons = {
  763. but: new Button(left_margin, top_margin, bw, bh, {normal: images_path + n, hover: images_path + h}, func, tooltip)
  764. };
  765. window.Repaint();
  766. }
  767.  
  768. function on_timer(id) {
  769. var temp = page > 1 ? page - 1 : 1;
  770. if(loved_working && page == last_page) {
  771. xmlhttp.abort();
  772. sync_library_loved(temp);
  773. } else if(playcount_working && page == last_page) {
  774. xmlhttp.abort();
  775. sync_library_playcount(temp);
  776. } else {
  777. last_page = page;
  778. }
  779. }
  780.  
  781. function on_notify_data(name, data) {
  782. if(name == "lastfm_update" && data == 1) {
  783. username = read(username_file);
  784. api_key = read(api_key_file);
  785. on_metadb_changed();
  786. loved_working = null;
  787. playcount_working = null;
  788. }
  789. }
  790.  
  791. function on_playback_new_track() {
  792. time_elapsed = 0;
  793. switch(true) {
  794. case (fb.PlaybackLength == 0):
  795. target_time = 240;
  796. break;
  797. case (fb.PlaybackLength >= 30):
  798. target_time = Math.min(Math.floor(fb.PlaybackLength / 2),240);
  799. break;
  800. default:
  801. target_time = 5;
  802. break;
  803. }
  804. on_item_focus_change();
  805. }
  806.  
  807. function on_playback_time(time) {
  808. time_elapsed++;
  809. if(time_elapsed == 3 && window.GetProperty("auto_menu") && fb.TitleFormat(autolove).Eval() == 1 && old_userloved == 0) {
  810. fb.trace("Playcount sync: Automatically loving this track....");
  811. lfm_track();
  812. }
  813. if(time_elapsed == target_time) sync();
  814. }
  815.  
  816. function lfm_track() {
  817. fb.RunContextCommandWithMetadb(command, g_metadb);
  818. sync();
  819. }
  820.  
  821. function sync() {
  822. if(username.length == 0 || api_key.length != 32) return(fb.trace("Playcount sync: Can't contact Last.fm. Check your username / API KEY settings."));
  823. if(loved_working || playcount_working) return;
  824. fb.trace("Playcount sync: Contacting Last.fm....");
  825. lastfm("&method=track.getinfo&artist=" + encodeURIComponent(artist) + "&track=" + encodeURIComponent(track) + "&autocorrect=" + (window.GetProperty("auto_correct") ? 1 : 0), "foo_playcount_sync", function() {process();});
  826. }
  827.  
  828. function process() {
  829. parsed_data = JSON.parse(xmlhttp.responsetext);
  830. if(parsed_data.error > 0) {
  831. if(parsed_data.error == 6) fb.trace("Playcount sync: artist / track not found.");
  832. else fb.trace("Playcount sync: " + xmlhttp.responsetext);
  833. return;
  834. }
  835. fb.trace("Playcount sync: Last.fm responded 'OK'");
  836. userplaycount = parsed_data.track.userplaycount > 0 ? ++parsed_data.track.userplaycount : 1;
  837. userloved = parsed_data.track.userloved == 1 ? 1 : 0;
  838. if(fb.IsPlaying && time_elapsed >= target_time && fb.PlaybackLength > 29 && fb.PlaybackLength < 10800) {
  839. switch(true) {
  840. case (userplaycount < old_userplaycount):
  841. fb.trace("Playcount sync: Playcount returned from Last.fm is lower than current value. Not updating.");
  842. break;
  843. case (old_userplaycount != userplaycount):
  844. fb.RunContextCommandWithMetadb("Customdb Delete Playcount", g_metadb);
  845. if(old_userloved == 1) fb.RunContextCommandWithMetadb("Customdb Love 0", g_metadb);
  846. var attempt = 0;
  847. while(fb.TitleFormat("%LASTFM_PLAYCOUNT_DB%").EvalWithMetadb(g_metadb) != userplaycount && attempt <=3) {
  848. var query1 = '\"INSERT INTO quicktag(url,subsong,fieldname,value) VALUES(\\"' + crc32 + '\\",\\"-1\\",\\"LASTFM_PLAYCOUNT_DB\\",\\"' + userplaycount + '\\")\";';
  849. WshShell.Run(fso.GetFile(script_path + "sqlite3.exe").ShortPath + " " + fso.GetFile(fb.ProfilePath + "customdb_sqlite.db").ShortPath + " " + query1, 0, true);
  850. attempt++;
  851. }
  852. fb.RunContextCommandWithMetadb("Customdb Refresh", g_metadb);
  853. break;
  854. default:
  855. fb.trace("Playcount sync: No changes found. Not updating.");
  856. }
  857. }
  858. if(old_userloved != userloved) fb.RunContextCommandWithMetadb("Customdb Love " + userloved, g_metadb);
  859. }
  860.  
  861. function sync_library_loved(p) {
  862. if(loved_working == null) return(fb.trace("Playcount sync: Import aborted."));
  863. page = p;
  864. lastfm("&method=user.getlovedtracks&limit=200&user=" + username + "&page=" + page, "foo_playcount_sync", function() {process_library_loved();});
  865. }
  866.  
  867. function process_library_loved() {
  868. parsed_data = JSON.parse(xmlhttp.responsetext);
  869. if(parsed_data.error > 0) {
  870. loved_working = null;
  871. fb.ShowPopupMessage("There is a problem with the Last.fm web services. Please try again later.\n\n" + xmlhttp.responsetext, "Playcount sync");
  872. return;
  873. }
  874. if(page == 1) { try { pages = parsed_data.lovedtracks["@attr"].totalPages; } catch(e) {} }
  875. if(pages > 0) {
  876. for(i = 0; i < parsed_data.lovedtracks.track.length; i++) {
  877. var data = [];
  878. data[0] = parsed_data.lovedtracks.track[i].artist.name;
  879. data[1] = parsed_data.lovedtracks.track[i].name;
  880. data[2] = 1;
  881. if(data.length == 3) {
  882. fb.trace(r + ": " + data[0] + " - " + data[1]);
  883. url = fb.TitleFormat("$crc32($lower(" + tf(data[0]) + tf(data[1]) + "))").EvalWithMetadb(g_metadb);
  884. sql += 'INSERT OR REPLACE INTO quicktag(url,subsong,fieldname,value) VALUES("' + url + '","-1","LASTFM_LOVED_DB","' + data[2] + '");' + "\n";
  885. r++;
  886. }
  887. }
  888. fb.trace("Completed page " + page + " of " + pages + " (loved tracks)");
  889. }
  890. if(page < pages) {
  891. page++;
  892. sync_library_loved(page);
  893. } else {
  894. loved_working = null;
  895. playcount_working = true;
  896. pages = 0;
  897. r = 1;
  898. sync_library_playcount(1);
  899. }
  900. }
  901.  
  902. function sync_library_playcount(p) {
  903. if(playcount_working == null) return(fb.trace("Playcount sync: Import aborted."));
  904. page = p;
  905. lastfm("&method=library.gettracks&limit=100&user=" + username + "&page=" + page, "foo_playcount_sync", function() {process_library_playcount();});
  906. }
  907.  
  908. function process_library_playcount() {
  909. parsed_data = JSON.parse(xmlhttp.responsetext);
  910. if(parsed_data.error > 0) {
  911. playcount_working = null;
  912. fb.ShowPopupMessage("There is a problem with the Last.fm web services. Please try again later.\n\n" + xmlhttp.responsetext, "Playcount sync");
  913. return;
  914. }
  915. if(page == 1) { try { pages = parsed_data.tracks["@attr"].totalPages; } catch(e) {} }
  916. if(pages > 0) {
  917. for(i = 0; i < parsed_data.tracks.track.length; i++) {
  918. var data = [];
  919. data[0] = parsed_data.tracks.track[i].artist.name;
  920. data[1] = parsed_data.tracks.track[i].name;
  921. data[2] = parsed_data.tracks.track[i].playcount;
  922. if(data.length == 3) {
  923. fb.trace(r + ": " + data[0] + " - " + data[1] + " " + data[2]);
  924. url = fb.TitleFormat("$crc32($lower(" + tf(data[0]) + tf(data[1]) + "))").EvalWithMetadb(g_metadb);
  925. sql += 'INSERT OR REPLACE INTO quicktag(url,subsong,fieldname,value) VALUES("' + url + '","-1","LASTFM_PLAYCOUNT_DB","' + data[2] + '");' + "\n";
  926. r++;
  927. }
  928. }
  929. fb.trace("Completed page " + page + " of " + pages + " (playcount)");
  930. }
  931. if(page < pages) {
  932. page++;
  933. sync_library_playcount(page);
  934. } else {
  935. try {
  936. sql += "COMMIT;"
  937. ts = fso.OpenTextFile(sql_file, 2, true, 0);
  938. ts.WriteLine(sql);
  939. ts.close();
  940. import_sql();
  941. playcount_working = null;
  942. } catch(e) {
  943. }
  944. }
  945. }
  946.  
  947. function import_sql() {
  948. try {
  949. cmd_file = fso.GetFile(script_path + "lastfm_sql.cmd").ShortPath;
  950. db_file = fso.GetFile(fb.ProfilePath + "customdb_sqlite.db").ShortPath;
  951. WshShell.Run(cmd_file + " " + fso.GetFile(script_path + "sqlite3.exe").ShortPath + " " + db_file + " " + fso.GetFile(sql_file).ShortPath);
  952. } catch(e) {
  953. }
  954. }
  955.  
  956. function on_size() {
  957. ww = window.Width;
  958. wh = window.Height;
  959. }
  960.  
  961. function on_mouse_rbtn_up(x, y) {
  962. var _menu = window.CreatePopupMenu();
  963. var _li = window.CreatePopupMenu();
  964. var _au = window.CreatePopupMenu();
  965. var _child = window.CreatePopupMenu();
  966. var _auto = window.CreatePopupMenu();
  967. var idx;
  968. _li.AppendMenuItem(utils.CheckComponent("foo_customdb", true) && !loved_working && !playcount_working && g_metadb && username.length > 0 && api_key.length == 32 ? MF_STRING : MF_GRAYED, 4, "Create and import SQL file");
  969. _li.AppendMenuItem(utils.CheckComponent("foo_customdb", true) && fso.FileExists(sql_file) ? MF_STRING : MF_GRAYED, 5, "Import SQL file");
  970. _menu.AppendMenuItem(MF_STRING | MF_POPUP, _li.ID, "Library import");
  971. _au.AppendMenuItem(MF_STRING, 6, "Use spelling correction");
  972. _au.CheckMenuItem(6, window.GetProperty("auto_correct"));
  973. _menu.AppendMenuItem(MF_STRING | MF_POPUP, _au.ID, "Auto-updates");
  974. _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  975. _auto.AppendMenuItem(MF_STRING, 200, "Off");
  976. _auto.AppendMenuItem(MF_STRING, 201, "On");
  977. _auto.AppendMenuItem(MF_SEPARATOR, 0, 0);
  978. _auto.AppendMenuItem(window.GetProperty("auto_menu") ? MF_STRING : MF_GRAYED, 202, "Condition");
  979. _auto.CheckMenuRadioItem(200, 201, window.GetProperty("auto_menu") ? 201 : 200);
  980. _menu.AppendMenuItem(MF_STRING | MF_POPUP, _auto.ID, "Automatically love tracks");
  981. _child.AppendMenuItem(MF_STRING, 101, "None");
  982. _child.AppendMenuItem(MF_STRING, 102, (dui ? "Default UI " : "Columns UI ") + "default");
  983. _child.AppendMenuItem(MF_STRING, 103, "Splitter");
  984. _child.AppendMenuItem(MF_STRING, 104, "Custom ");
  985. _child.AppendMenuItem(MF_SEPARATOR, 0, 0);
  986. _child.AppendMenuItem(window.GetProperty("mode") == 104 ? MF_STRING : MF_GRAYED, 105, "Set custom colour...");
  987. _child.CheckMenuRadioItem(101, 104, window.GetProperty("mode", 101));
  988. _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  989. _menu.AppendMenuItem(MF_STRING | MF_POPUP, _child.ID, "Background");
  990. _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  991. _menu.AppendMenuItem(username.length > 0 ? MF_STRING : MF_GRAYED, 1, "Visit your Last.fm user profile page");
  992. _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  993. _menu.AppendMenuItem(!loved_working && !playcount_working ? MF_STRING : MF_GRAYED, 2, "Set your Last.fm username...");
  994. _menu.AppendMenuItem(!loved_working && !playcount_working ? MF_STRING : MF_GRAYED, 3, "Set your API KEY...");
  995. _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  996. if(utils.IsKeyPressed(0x10)) _menu.AppendMenuItem(MF_STRING, 9, "Properties");
  997. _menu.AppendMenuItem(MF_STRING, 10, "Configure...");
  998. idx = _menu.TrackPopupMenu(x, y);
  999. switch(idx) {
  1000. case 1:
  1001. try {
  1002. WshShell.run("http://www.last.fm/user/" + encodeURIComponent(username));
  1003. } catch(e) {
  1004. fb.ShowPopupMessage("Unable to launch your default browser.", "Playcount sync");
  1005. }
  1006. break;
  1007. case 2:
  1008. username = text_input_box("Playcount sync", "Please enter your Last.fm username", username_file);
  1009. on_metadb_changed();
  1010. window.NotifyOthers("lastfm_update", 1);
  1011. break;
  1012. case 3:
  1013. api_key = text_input_box("Playcount sync", "Please enter your Last.fm API KEY\n\nhttp://www.last.fm/api/account", api_key_file);
  1014. on_metadb_changed();
  1015. window.NotifyOthers("lastfm_update", 1);
  1016. break;
  1017. case 4:
  1018. pages = 0;
  1019. r = 1;
  1020. sql = "BEGIN TRANSACTION;\n";
  1021. loved_working = true;
  1022. sync_library_loved(1);
  1023. break;
  1024. case 5:
  1025. import_sql();
  1026. break;
  1027. case 6:
  1028. window.SetProperty("auto_correct", !window.GetProperty("auto_correct"));
  1029. break;
  1030. case 101:
  1031. case 102:
  1032. case 103:
  1033. case 104:
  1034. window.SetProperty("mode", idx);
  1035. window.Repaint();
  1036. break;
  1037. case 105:
  1038. custom_background = text_input_box("Playcount sync", "Enter a custom colour for the background. Uses RGB. Example usage:\n\n234-211-74", custom_background_file);
  1039. window.Repaint();
  1040. break;
  1041. case 200:
  1042. case 201:
  1043. window.SetProperty("auto_menu", idx == 200 ? false : true);
  1044. break;
  1045. case 202:
  1046. autolove = text_input_box("Playcount sync", "The result of the title formatting set here must equal 1 for a track to be automatically loved.\n\nExample:\n\n$ifequal(%rating%,5,1,0)", autolove_file);
  1047. break;
  1048. case 9:
  1049. window.ShowProperties();
  1050. break;
  1051. case 10:
  1052. window.ShowConfigure();
  1053. break;
  1054. }
  1055. _menu.Dispose();
  1056. _auto.Dispose();
  1057. _li.Dispose();
  1058. _au.Dispose();
  1059. _child.Dispose();
  1060. return true;
  1061. }
  1062.  
  1063. function on_paint(gr) {
  1064. buttons_background(gr);
  1065. buttonsDraw(gr);
  1066. } ‰ì2EgÅgB³: Ko Visuals€   " æ     Y@  32 %_width% $sub(%_height%,44)  ¯ ’    þ //Stream check
  1067. $puts(HTTP.CHECK,$strcmp($left(%path%,7),'http://'))
  1068. $puts(LASTFM.CHECK,$strcmp($left(%path%,19),'FOO_LASTFM_RADIO://'))
  1069.  
  1070. //Aspect ratio
  1071. $puts(cover_size,10)
  1072. $puts(cover_y,10)
  1073. $puts(h_resize,$sub($muldiv(%_height%,6,7),$get(cover_size)))
  1074.  
  1075. $puts(w_resize,$sub(%_width%,20))
  1076. $puts(aspect,$min(700,$get(h_resize),$get(w_resize)))
  1077. $puts(cover_x,$sub($div(%_width%,2),$div($get(aspect),2)))
  1078.  
  1079. $drawrect($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),0-0-0,0-0-0,)
  1080.  
  1081. //Cover
  1082. $if($or(%ps_isplaying%,%ps_ispause%),
  1083. $ifgreater($get(aspect),2,
  1084. $if($get(HTTP.CHECK),
  1085. $imageabs($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),$get_ps_global(SKIN.PATH)\cover\radio.png,),
  1086. $if($get(LASTFM.CHECK),
  1087. $if2($imageabs($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),%path%,artreader),
  1088. $imageabs($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),$get_ps_global(SKIN.PATH)\cover\lfm_nocover.png,)
  1089. ),
  1090. //try not to use embedded
  1091. $if3($drawimage($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),$directory_path(%path%)'\cover.jpg'),
  1092. $drawimage($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),%path%,artreader),
  1093. $drawimage($get(cover_x),$get(cover_y),$get(aspect),$get(aspect),$get_ps_global(SKIN.PATH)\cover\disc.png)
  1094. )))
  1095.  
  1096. ,),)   õÿÿÿ    C a l i b r i  <ÆPó|ˆI„К,P¸ð Channel spectrum panel“   … " Å     Y@  $muldiv(%_height%,6,7) %_width% $div(%_height%,7) P *   ½+ƒ  
  1097. 
  1098. Z Hš‰fC¡ÿQaüw Colours |  0 $if(%_is_group%,$set_style(text,$rgb(21,21,21)))            ±‘R-9iD¹‘ +€ë{ Colours
  1099.  
Advertisement
Add Comment
Please, Sign In to add comment