Advertisement
Guest User

Untitled

a guest
Apr 26th, 2010
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==PREPROCESSOR==
  2. // @import "%fb2k_path%scripts\marc2003\v2\common.js"
  3. // ==/PREPROCESSOR==
  4.  
  5. var stopped_text = "foobar2000";
  6. var title_tf =  fb.TitleFormat("%title%");
  7. var album_tf = fb.TitleFormat("[%album%]");
  8. var artist_tf = fb.TitleFormat("%artist%");
  9. var title_font = gdi.Font("Segoe UI", 30, 1);
  10. var album_font = gdi.Font("Segoe UI", 22, 1);
  11. var artist_font = gdi.Font("Segoe UI", 22, 1);
  12. var title_colour = RGB(240, 240, 240);
  13. var album_colour = RGB(210, 210, 210);
  14. var artist_colour = RGB(180, 180, 180);
  15. var top_c = RGB(255,0,0);
  16. var mid_c = RGB(0,255,0);
  17. var bot_c = RGB(0,0,255);
  18.  
  19. var album_img = null;
  20. var artist_img = null;
  21.  
  22. var album_img_size = window.GetProperty("album_img_size", 510) - 400;
  23.  
  24. if(fb.IsPlaying) on_playback_new_track();
  25.  
  26. function on_playback_stop(reason) {
  27.     if(album_img) album_img.Dispose();
  28.     if(artist_img) artist_img.Dispose();
  29.     g_metadb = album_img = artist_img = arr = null;
  30.     if(reason != 2) window.Repaint();
  31. }
  32.  
  33. function on_playback_new_track() {
  34.     g_metadb = fb.GetNowPlaying();
  35.     artist = artist_tf.EvalWithMetadb(g_metadb);
  36.     title = title_tf.EvalWithMetadb(g_metadb);
  37.     album = album_tf.EvalWithMetadb(g_metadb);
  38.     if(album_img) album_img.Dispose();
  39.     album_img = utils.GetAlbumArtEmbedded(g_metadb.rawpath, 0);
  40.     if(!album_img) utils.GetAlbumArtAsync(window.ID, g_metadb, 0);
  41.     if(artist_img) artist_img.Dispose();
  42.     artist_img = utils.GetAlbumArtEmbedded(g_metadb.rawpath, 4);
  43.     if(!artist_img) utils.GetAlbumArtAsync(window.ID, g_metadb, 4);
  44.     window.Repaint();
  45. }
  46.  
  47. function on_get_album_art_done(metadb, art_id, im, ip) {
  48.     if(art_id == 0) album_img = im;
  49.     if(art_id == 4) artist_img = im;
  50.     window.Repaint();
  51. }
  52.  
  53. function on_size() {
  54.     ww = window.width;
  55.     wh = window.height;
  56. }
  57.  
  58. function on_paint(gr) {
  59.     if(artist_img) {
  60.         scale(gr, artist_img, 0, 0, ww, wh, "max");
  61.     } else {
  62.         gr.FillGradRect(0, 0, ww, wh * 0.5, 90,top_c, mid_c);
  63.         gr.FillGradRect(0, wh * 0.5, ww, wh * 0.5, 90,mid_c, bot_c);
  64.     }
  65.     gr.FillSolidRect(0,wh-130,ww,110,RGBA(0,0,0,156));
  66.     if(album_img) {
  67.         text_x = album_img_size + 10;
  68.         scale(gr, album_img, 0, wh-20-album_img_size, album_img_size, album_img_size, "min");
  69.     } else {
  70.         text_x = 10;
  71.     }
  72.     if(fb.IsPlaying) {
  73.         gr.GdiDrawText(title, title_font, title_colour, text_x, wh -127, ww-text_x-10, wh,DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  74.         gr.GdiDrawText(album, album_font, album_colour, text_x, wh - 80, ww-text_x-10, wh,DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  75.         gr.GdiDrawText(artist, artist_font, artist_colour, text_x, wh - 55, ww-text_x-10, wh,DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  76.     } else {
  77.         scale(gr, gdi.Image(images_path + "foobar.png"), 0, 0, ww, wh - 130, "min");
  78.         gr.GdiDrawText(stopped_text, title_font, title_colour, 0, wh - 130, ww, 110,DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  79.     }
  80. }
  81.  
  82. function on_mouse_rbtn_up(x, y) {
  83.     var _menu = window.CreatePopupMenu();
  84.     var _album = window.CreatePopupMenu();
  85.     var idx;
  86.     _album.AppendMenuItem(MF_STRING, 510, "Small");
  87.     _album.AppendMenuItem(MF_STRING, 620, "Large");
  88.     _album.CheckMenuRadioItem(510, 620, window.GetProperty("album_img_size"));
  89.     _menu.AppendMenuItem(MF_STRING | MF_POPUP, _album.ID, "Cover image size");
  90.     _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  91.     //_menu.AppendMenuItem(MF_STRING, 99, "Properties");
  92.     _menu.AppendMenuItem(MF_STRING, 100, "Configure...");
  93.     idx = _menu.TrackPopupMenu(x, y);
  94.     switch(idx) {
  95.         case 510:
  96.         case 620:
  97.             window.SetProperty("album_img_size", idx);
  98.             album_img_size = idx - 400;
  99.             window.Repaint();
  100.             break;
  101.         case 99:
  102.             window.ShowProperties();
  103.             break;
  104.         case 100:
  105.             window.ShowConfigure();
  106.             break;
  107.     }
  108.     _menu.Dispose();
  109.     _album.Dispose();
  110.     return true;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement