Код:
function StringFormat() {
var h_align = 0, v_align = 0, trimming = 0, flags = 0;
switch (arguments.length)
{
// fall-thru
case 4:
flags = arguments[3];
case 3:
trimming = arguments[2];
case 2:
v_align = arguments[1];
case 1:
h_align = arguments[0];
break;
default:
return 0;
}
return ((h_align << 28) | (v_align << 24) | (trimming << 20) | flags);
}
StringAlignment = {
Near: 0,
Center: 1,
Far: 2
};
StringTrimming = {
None: 0,
Character: 1,
Word: 2,
EllipsisCharacter: 3,
EllipsisWord: 4,
EllipsisPath: 5
};
StringFormatFlags = {
DirectionRightToLeft: 0x00000001,
DirectionVertical: 0x00000002,
NoFitBlackBox: 0x00000004,
DisplayFormatControl: 0x00000020,
NoFontFallback: 0x00000400,
MeasureTrailingSpaces: 0x00000800,
NoWrap: 0x00001000,
LineLimit: 0x00002000,
NoClip: 0x00004000
};
function RGB(r, g, b) {
return (0xff000000 | (r << 16) | (g << 8) | (b));
}
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
g_font = gdi.Font("Tahoma", 18, 0);
g_titlefmt = fb.TitleFormat("$if(%ispaused%,Пауза '//' ,)[%album artist%[ / %track artist%] - ]%title% %playback_time%[ - %length%]");
g_tfo = fb.TitleFormat("$if(%ispaused%,ПРИОСТАНОВЛЕНО,%playback_time% / %length%)' ' %codec% %bitrate% Кбит/с %samplerate% Гц");
g_stringformat = StringFormat(StringAlignment.Center, StringAlignment.Center);
var g_drag = 0;
// Key point
function on_playback_stop(){
window.Repaint();
}
function on_playback_seek(time){
window.Repaint();
}
function on_playback_time(time){
window.Repaint();
}
function on_playback_pause(state){
window.Repaint();
}
var g_titlefmt = fb.TitleFormat("$if(%ispaused%,Пауза '//' ,)[%album artist%[ / %track artist%] - ]%title% %playback_time%[ - %length%]");
var stxt;
function on_paint(gr) {
gr.SetTextRenderingHint(5);
var ww = window.Width;
var wh = window.Height;
var pos = 0
var length = fb.PlaybackLength;
var txt;
if(length > 0){
if(g_drag){
pos = window.Width * g_drag_seek;
txt = "Seek " + TimeFmt(g_drag_seek * length) + " / " + TimeFmt(length);
}
else{
pos = window.Width * (fb.PlaybackTime / length);
//проигрываемая композиция
txt = g_tfo.Eval();
//следящий за фокусом курсора
//txt = g_tfo.EvalWithMetadb(g_focus_metadb);
//время, прогрессgr.FillSolidRect(pos-8, 3, 4, wh-6, color1);
//txt += " " + TimeFmt(fb.PlaybackTime) + " / " + TimeFmt(length - fb.PlaybackTime) + " [" +TimeFmt(length) + "]";
//txt += " " + Math.floor(fb.PlaybackTime / length * 100).toString() + "%";
}
} else if (fb.PlaybackTime) {
stxt = g_titlefmt.Eval();
txt = "Радио... " + g_titlefmt.Eval();
}
//if(fb.IsPaused) { txt += " [Paused]" }
gr.FillSolidRect(0, 0, ww, wh, RGB(0,0,0));
gr.FillSolidRect(0, 3, pos, wh-6, RGB(40,40,40));
gr.DrawRect(0, 3, pos-1, wh-6, 1, RGB(200,200,200));
//gr.FillSolidRect(0, 0, 4, wh, RGB(0,0,0));
// Draw info
gr.DrawString(txt, g_font, RGB(200,200,200), 0, 0, window.Width, window.Height, g_stringformat);
//gr.DrawRect(0,0, ww, wh, 2.0, RGB(0,0,0));
}
function on_mouse_lbtn_down(x,y){
g_drag = 1;
on_mouse_move(x,y);
}
function on_mouse_lbtn_up(x,y){
if(g_drag){
g_drag = 0;
g_drag_seek = x / window.Width;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
fb.PlaybackTime = fb.PlaybackLength * g_drag_seek;
g_drag = 0;
}
}
function on_mouse_move(x,y){
if(g_drag){
g_drag_seek = x / window.Width;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
window.Repaint();
}
}
function on_mouse_wheel(delta){
fb.PlaybackTime += delta;
}
// APPLICATION - END
Правой кнопкой мышки на надписи Streaming... => Настройки WSH... Выделить всё и удалить и вставить новый скопированный выше