Представлена в виде двух fcl-файлов конфига bento с разными плейлистами: EsPlaylist и ELPlaylist.
- Скачать
- Сборка
Изменения: foobar2000 v1.3.5, кодек qaac, скины без кнопки внизу и немного измененными скриптами
Список разделов › foobar2000 › Сборки › Релизы сборок
Колёсиком мышиным над VU-метром покрутите.bdo64:Не могли бы вы подсказать ка понизить чувствительность VU-метра?
// ==PREPROCESSOR==
// @name "Seekbar"
// @author "Alex Realist"
// ==/PREPROCESSOR==
var g_img1 = gdi.Image(fb.FoobarPath + "skins\\bento\\seek-knob.png");
var g_img2 = gdi.Image(fb.FoobarPath + "skins\\bento\\seek-knob-hot.png");
var g_img_background_file = gdi.Image(fb.FoobarPath + "skins\\bento\\back-seekbar.png");
var g_img_lenght = 29;
var g_over = 0;
var g_drag = 0;
var g_drag_seek = 0;
var g_drag_offset = 0;
var tooltip = window.CreateTooltip();
var old_x = -1;
var g_img_background =null;
set_images();
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);
}
function set_images(){
if(g_img_background) g_img_background.Dispose();
g_img_background = gdi.CreateImage(219, 8);
var gp = g_img_background.GetGraphics();
gp.DrawImage(g_img_background_file, 0, 0, 219, 8, 0, 0, 219, 8);
g_img_background.ReleaseGraphics(gp);
}
function on_paint(gr){
var ww = window.Width-g_img_lenght;
var pos = 0;
var length = Math.floor(fb.PlaybackLength);
if(length>0){
if(g_drag)
pos = Math.round(ww*g_drag_seek)+g_img_lenght;
else{
var percent = fb.PlaybackTime/length;
if(percent>=0.995)
pos = ww+g_img_lenght;
else
pos = Math.round(ww*percent)+g_img_lenght;
}
}
gr.DrawImage(g_img_background, 0, 0, 219, 8, 0, 0, 219, 8);
var line_lenght = pos-g_img_lenght-2;
gr.FillSolidRect(2, 3, line_lenght, 1, RGB(156,169,173));
if((line_lenght)>0) gr.FillSolidRect(2, 3, 1, 1, RGB(109,126,132));
gr.FillSolidRect(2, 4, line_lenght, 1, RGB(88,107,113));
gr.DrawImage((g_over) ? g_img2 : g_img1, pos-g_img_lenght, 0, g_img_lenght, 8, 0, 0, g_img_lenght, 8);
}
function on_mouse_lbtn_down(x,y){
g_drag = 1;
old_x = -1;
var pos = 0;
var length = fb.PlaybackLength;
if(Math.floor(length)>0){
var percent = fb.PlaybackTime/length;
pos = Math.round((window.Width - g_img_lenght)*percent);
g_drag_offset = x - pos;
if (g_drag_offset < 0 || g_drag_offset > g_img_lenght) {
g_drag_offset = g_img_lenght / 2;
}
}
else {
g_drag_offset = 0;
}
}
function on_mouse_lbtn_up(x,y){
if(g_drag){
g_drag = 0;
//g_drag_seek = (x-g_img_lenght/2)/(window.Width-g_img_lenght);
g_drag_seek = (x-g_drag_offset)/(window.Width-g_img_lenght);
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
fb.PlaybackTime = Math.floor(fb.PlaybackLength)*g_drag_seek;
}
}
function on_mouse_move(x,y){
window.SetCursor(32649);
g_over = 1;
if(g_drag){
//g_drag_seek = (x-g_img_lenght/2)/(window.Width-g_img_lenght);
g_drag_seek = (x-g_drag_offset)/(window.Width-g_img_lenght);
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
}
window.Repaint();
if(x!=old_x){
old_x=x;
if(fb.PlaybackLength>0){
//var seek_me = (x-g_img_lenght/2)/(window.Width-g_img_lenght);
var seek_me = (x-g_drag_offset)/(window.Width-g_img_lenght);
seek_me = (seek_me<0) ? 0 : (seek_me<1) ? seek_me : 1;
tooltip.Text = TimeFmt(fb.PlaybackLength*seek_me);
tooltip.Activate();
}
}
}
function on_mouse_leave(){
g_over = 0;
window.Repaint();
tooltip.Deactivate();
old_x = -1;
}
function on_playback_new_track(info){
window.Repaint();
tooltip.Deactivate();
}
function on_playback_stop(){
window.Repaint();
tooltip.Deactivate();
}
function on_playback_seek(time){
window.Repaint();
}
function on_playback_time(time){
window.Repaint();
}
//EOF
У macarych'а vu-метр работает четко.
А какое значение будет правильным? Казалось бы при нуле должен быть правильный уровень, но он явно недостаточен, равно как и установленное по умолчанию в сборке +20 db избыточно.vladj:меняй значение preamp(Db) в меньшую сторону.