// ==PREPROCESSOR==
// @import "%fb2k_component_path%helpers.txt"
// ==/PREPROCESSOR==
var g_font = CreateFontString("arial",18,700);
var g_font_rating = CreateFontString("Arial Unicode MS",25,400);
var g_fileinfo = null;
var g_drag = 0;
var g_drag_seek = 0;
var ww, wh, area;
//--------
function RGB(r,g,b){
return (0xff000000|(r<<16)|(g<<8)|(b));
}
function RGBA(r,g,b,a){
return ((a<<24)|(r<<16)|(g<<8)|(b));
}
//--------
function Separator(x) {
this.left = x;
this.draw = function (gr) {
FillGradientRectangle(gr, this.left-1,0, 1, wh-1, 0, RGB(133,133,133), RGB(0,0,0));
FillGradientRectangle(gr, this.left,0, 1, wh-1, 0, RGB(163,163,163), RGB(163,163,163));
FillGradientRectangle(gr, this.left+1,0, 1, wh-1, 0, RGB(60,59,59), RGB(0,0,0));
}
}
function separatorsDraw(gr) {
for (i in Separators) {
Separators[i].draw(gr);
}
}
//--------
function TimeFmt(t){
var zpad = function(n){
var str = n.toString();
return (str.length<2) ? "0"+str : str;
}
var h = Math.floor(t/3600); t-=h*3600;
var m = Math.floor(t/60); t-=m*60;
var s = Math.floor(t);
if(h>0) return h.toString()+":"+zpad(m)+":"+zpad(s);
return m.toString()+":"+zpad(s);
}
// --- APPLICATION START
function on_paint(gr){
var pos = 0;
var length = fb.PlaybackLength;
var txt;
if(length > 0){
if(g_drag){
pos = area * g_drag_seek;
txt = "Seek " + TimeFmt(g_drag_seek * length) + " / " + TimeFmt(length);
}
else{
pos = area * (fb.PlaybackTime / length);
var g_titlefmt = fb.TitleFormat("[%album artist% - ][%album% ]['['%date%']' - ]%title% >> $div($mul(100,%playback_time_seconds%),%length_seconds%) '%'");
txt = g_titlefmt.Eval();
}
}
FillGradientRectangle(gr, 4, 0, area, wh/2, 0, RGB(0, 0, 0), RGB(90, 90, 90));
FillGradientRectangle(gr, 4, wh/2, area, wh/2, 0, RGB(90, 90, 90), RGB(0, 0, 0));
FillGradientRectangle(gr, 0, 0, pos, wh/2, 0, RGB(0, 0, 0), RGB(0, 200, 200));
FillGradientRectangle(gr, 0,wh/2, pos, wh/2, 0, RGB(0, 200, 200), RGB(0, 0, 0));
FillGradientRectangle(gr, 2, 0, 1, wh-1, 0, RGB(163, 163, 163), RGB(163, 163, 163));
FillGradientRectangle(gr, 3, 0, 1, wh-1, 0, RGB(60, 59, 59), RGB(0, 0, 0));
separatorsDraw(gr);
FillGradientRectangle(gr, ww-4, 0, 1, wh-1, 1, RGB(133, 133, 133), RGB(0, 0, 0));
FillGradientRectangle(gr, ww-3, 0, 1, wh-1, 1, RGB(163, 163, 163), RGB(163, 163, 163));
gr.DrawRectangle(0, 0, ww, wh, 4.0, RGB(0,0,0));
gr.WriteText(txt, g_font, RGB(255, 255, 255), 0, 0, ww, wh, 2, 2, 0);
var tfo_rating_a = fb.Titleformat("$if(%rating%,$repeat($char(9733),%rating%),)");
var tfo_rating_b = fb.Titleformat("$if(%rating%,$repeat($char(9734),$sub(5,%rating%)),)");
var txt_rating_a = tfo_rating_a.Eval();
var txt_rating_b = tfo_rating_b.Eval();
gr.WriteText(txt_rating_a, g_font_rating, RGB(0,255,0), ww-120, 0, 110, wh, 0, 2, 1);
gr.WriteText(txt_rating_b, g_font_rating, RGB(255,0,0), ww-120, 0, 105, wh, 1, 2, 1);
}
function on_size(){
ww = window.Width;
wh = window.Height;
area = ww - 4;
Separators = {
one: new Separator((ww-4)/10),
two: new Separator((ww-4)/5),
three: new Separator(3*(ww-4)/10),
four: new Separator(2*(ww-4)/5),
five: new Separator(ww/2),
six: new Separator(3*(ww-4)/5),
seven: new Separator(7*(ww-4)/10),
eight: new Separator(4*(ww-4)/5),
nine: new Separator(9*(ww-4)/10)
}
}
function on_mouse_lbtn_down(x,y){
g_drag = 1;
}
function on_mouse_lbtn_up(x,y){
if(g_drag){
g_drag = 0;
g_drag_seek = x / area;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
fb.PlaybackTime = fb.PlaybackLength * g_drag_seek;
}
}
function on_mouse_move(x,y){
if(g_drag){
g_drag_seek = x / area;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
window.Repaint();
}
}
function on_playback_new_track(metadb){
window.Repaint();
}
function on_playback_stop(){
window.Repaint();
}
function on_playback_seek(time){
window.Repaint();
}
function on_playback_time(time){
window.Repaint();
}
// --- APPLICATION END
Zitat von: fooamp in 18. April 2024, 00:09:24"Warum auch immer..."
Nun, mir selbst fehlt die Zeit alles umzustellen, d.h. zu prüfen. Mein setting ist komplex. Also stehe ich auch noch bei 1.6.17. Es gab lange keinen so starken Umbruch im Programm mehr.
Seite erstellt in 0.024 Sekunden mit 16 Abfragen.