Advertisement
Guest User

Decalicatan Decalicatan

a guest
Jan 20th, 2011
218
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. // @name "Stop After Album v.1.0"
  4. // @author "Decalicatan Decalicatan"
  5. // ==/PREPROCESSOR==
  6.  
  7.  
  8. // width: 126
  9. // height: 20
  10.  
  11. var tracknumber_tf = fb.TitleFormat("%tracknumber%");
  12. var totaltracks_tf = fb.TitleFormat("[%totaltracks%]");
  13. var totaltracks, tracknumber;
  14.  
  15.  
  16. var SAA = "Stop after album";
  17. var SAA_state = 0;
  18. var font = gdi.Font("Calibri", 16, 1);
  19. var hover = 0;
  20.  
  21.  
  22.  
  23.  
  24.  
  25. function on_mouse_mbtn_down(x, y) {
  26.     window.ShowConfigure();
  27. }
  28.  
  29.  
  30. function on_mouse_move() {
  31.     if (fb.IsPlaying) {
  32.         g_metadb = fb.GetNowPlaying();
  33.         totaltracks = totaltracks_tf.EvalWithMetadb(g_metadb);
  34.         if (totaltracks == 0) {
  35.             hover = 0;
  36.         } else {
  37.             hover = 1;
  38.             window.Repaint();
  39.         }
  40.     } else hover = 1;
  41. }
  42.  
  43.  
  44. function on_mouse_leave() {
  45.     hover = 0;
  46.     window.Repaint();
  47. }
  48.  
  49.  
  50. function StringFormat(alignH, alignV, trim, flag) {
  51.     return ((alignH << 28) | (alignV << 24) | (trim << 20) | flag);
  52. }
  53.  
  54. function RGB(r, g, b) {
  55.     return (0xff000000 | (r << 16) | (g << 8) | (b));
  56. }
  57.  
  58.  
  59. function on_playlist_stop_after_current_changed(new_order_index) {
  60.     window.Repaint();
  61. }
  62.  
  63. function on_playback_stop(reason) {
  64.     g_metadb = null;
  65.     SAA_state = 0;
  66.     if (reason != 2) window.Repaint();
  67. }
  68.  
  69.  
  70.  
  71.  
  72. function on_mouse_lbtn_down(x, y) {
  73.     g_metadb = fb.GetNowPlaying();
  74.     tracknumber = tracknumber_tf.EvalWithMetadb(g_metadb);
  75.     if (fb.StopAfterCurrent) fb.StopAfterCurrent = 0;
  76.     if (SAA_state !== 0) {
  77.         SAA_state = 0;
  78.     } else {
  79.         SAA_state = totaltracks_tf.EvalWithMetadb(g_metadb);
  80.         if (tracknumber == SAA_state) fb.StopAfterCurrent = 1;
  81.     }
  82. }
  83.  
  84.  
  85.  
  86. function on_playback_new_track() {
  87.     if (SAA_state !== 0) {
  88.         g_metadb = fb.GetNowPlaying();
  89.         tracknumber = tracknumber_tf.EvalWithMetadb(g_metadb);
  90.         if (tracknumber == SAA_state) fb.StopAfterCurrent = 1;
  91.     }
  92. }
  93.  
  94.  
  95.  
  96.  
  97. function on_paint(gr) {
  98.     var ww = window.Width;
  99.     var wh = window.Height;
  100.     totaltracks = fb.TitleFormat("[%totaltracks%]").Eval();
  101.     tracknumber = fb.TitleFormat("[%tracknumber%]").Eval();
  102.     if (((fb.StopAfterCurrent) && (SAA_state != tracknumber)) || ((!fb.StopAfterCurrent) && (SAA_state == tracknumber))) SAA_state = 0;
  103.     if (hover == 0) {
  104.         gr.FillSolidRect(0, 0, ww, wh, RGB(255, 255, 255));
  105.         if (totaltracks == 0) {
  106.             gr.GdiDrawText(SAA, font, RGB(205, 205, 205), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  107.         } else {
  108.  
  109.             if (SAA_state) {
  110.                 gr.GdiDrawText(SAA, font, RGB(0, 128, 192), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  111.             } else {
  112.                 gr.GdiDrawText(SAA, font, RGB(105, 105, 105), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  113.             }
  114.         }
  115.     } else {
  116.         gr.FillSolidRect(0, 0, ww, wh, RGB(0, 128, 192));
  117.         gr.GdiDrawText(SAA, font, RGB(255, 255, 255), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
  118.     }
  119.  
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement