Zitat von: mexx in 20. Mai 2024, 13:16:50Ich hatte das gerade selbt probiert und den Wert auf 155 gesetzt. Jetzt funktioniert es. Trotzdem danke für den funktionierenden Tip.
Allerding bleibt es dabei, das bei Rating 5 nur 4 Sterne angezeigt werden. Da hab ich noch keine Lösung gefunden.
// ==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
Seite erstellt in 0.007 Sekunden mit 11 Abfragen.