Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==PREPROCESSOR==
- // @import "%fb2k_path%scripts\marc2003\v2\common.js"
- // @name "Stop After Album v.1.0"
- // @author "Decalicatan Decalicatan"
- // ==/PREPROCESSOR==
- // width: 126
- // height: 20
- var tracknumber_tf = fb.TitleFormat("%tracknumber%");
- var totaltracks_tf = fb.TitleFormat("[%totaltracks%]");
- var totaltracks, tracknumber;
- var SAA = "Stop after album";
- var SAA_state = 0;
- var font = gdi.Font("Calibri", 16, 1);
- var hover = 0;
- function on_mouse_mbtn_down(x, y) {
- window.ShowConfigure();
- }
- function on_mouse_move() {
- if (fb.IsPlaying) {
- g_metadb = fb.GetNowPlaying();
- totaltracks = totaltracks_tf.EvalWithMetadb(g_metadb);
- if (totaltracks == 0) {
- hover = 0;
- } else {
- hover = 1;
- window.Repaint();
- }
- } else hover = 1;
- }
- function on_mouse_leave() {
- hover = 0;
- window.Repaint();
- }
- function StringFormat(alignH, alignV, trim, flag) {
- return ((alignH << 28) | (alignV << 24) | (trim << 20) | flag);
- }
- function RGB(r, g, b) {
- return (0xff000000 | (r << 16) | (g << 8) | (b));
- }
- function on_playlist_stop_after_current_changed(new_order_index) {
- window.Repaint();
- }
- function on_playback_stop(reason) {
- g_metadb = null;
- SAA_state = 0;
- if (reason != 2) window.Repaint();
- }
- function on_mouse_lbtn_down(x, y) {
- g_metadb = fb.GetNowPlaying();
- tracknumber = tracknumber_tf.EvalWithMetadb(g_metadb);
- if (fb.StopAfterCurrent) fb.StopAfterCurrent = 0;
- if (SAA_state !== 0) {
- SAA_state = 0;
- } else {
- SAA_state = totaltracks_tf.EvalWithMetadb(g_metadb);
- if (tracknumber == SAA_state) fb.StopAfterCurrent = 1;
- }
- }
- function on_playback_new_track() {
- if (SAA_state !== 0) {
- g_metadb = fb.GetNowPlaying();
- tracknumber = tracknumber_tf.EvalWithMetadb(g_metadb);
- if (tracknumber == SAA_state) fb.StopAfterCurrent = 1;
- }
- }
- function on_paint(gr) {
- var ww = window.Width;
- var wh = window.Height;
- totaltracks = fb.TitleFormat("[%totaltracks%]").Eval();
- tracknumber = fb.TitleFormat("[%tracknumber%]").Eval();
- if (((fb.StopAfterCurrent) && (SAA_state != tracknumber)) || ((!fb.StopAfterCurrent) && (SAA_state == tracknumber))) SAA_state = 0;
- if (hover == 0) {
- gr.FillSolidRect(0, 0, ww, wh, RGB(255, 255, 255));
- if (totaltracks == 0) {
- gr.GdiDrawText(SAA, font, RGB(205, 205, 205), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
- } else {
- if (SAA_state) {
- gr.GdiDrawText(SAA, font, RGB(0, 128, 192), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
- } else {
- gr.GdiDrawText(SAA, font, RGB(105, 105, 105), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
- }
- }
- } else {
- gr.FillSolidRect(0, 0, ww, wh, RGB(0, 128, 192));
- gr.GdiDrawText(SAA, font, RGB(255, 255, 255), 0, 0, ww, wh, DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement