Список разделов › foobar2000 › Плагины
Можно попробовать поменять строку 175:SergPuh.68:TheQwertiest, при выполнении команды: File->Open... происходит crash скрипта Album Art,в чём может быть причина?
if (result.image) {
if (result.image && panel.metadb) {
Удалить foo_chronflow и понаблюдать.SergPuh.68:Можно как то это проверить?
Не, ну не знаю... Как ладу не дал? Там всё готово, да и ручка один в один как на второй картинке. Я не проверял на SMP, может работает со старта? Сейчас не могу посмотреть, на работе, мой ноут поломался, а на рабочем нет нечего для работы. Это единственный вариант скрипта, другого нет, только подставляй свою картинку и вперёд.SergPuh.68:готовые заготовки есть,
var configPath = fb.FoobarPath + "themes\\DarkOne4Mod\\";
var imgPath = configPath + "Images\\";
var btn_font = gdi.Font("Arial Black", 7, 0);
var ui_type = window.InstanceType;
window.MinWidth = window.MaxWidth = 58;
window.MinHeight = window.MaxHeight = 90;
var v_change = false;
var g_angle = 270;
var g_R = 20;
// ----- GET UI COLOURS -----
function get_colors() {
ui_backcol = ui_type == 0 ? window.GetColourCUI(3) : window.GetColourDUI(1);
ui_textcol = ui_type == 0 ? window.GetColourCUI(0) : window.GetColourDUI(0);
ui_btntxtcol = ui_type == 0 ? window.GetColourCUI(2) : window.GetColourDUI(0);
}
get_colors();
function on_colors_changed() {
get_colors();
window.Repaint();
}
// ----- CREATE THETA -----
function calc_theta(x, y){
x -= 29;
y -= 51;
theta = Math.atan2(y, x) / Math.PI * 180;
if (theta <= 90 && theta > 45) return g_angle;
if (theta > 90 && theta < 135) return 0;
return theta >= 0 ? theta > 90 ? theta - 135 : theta + 225 : theta + 225
}
// ----- DRAW -----
var a_img = gdi.Image(imgPath + "Vol-wheel.png");
var b_img = gdi.Image(imgPath + "Indicator.png");
var c_img = gdi.Image(imgPath + "IndicatorMH.png");
var d_img = gdi.Image(imgPath + "Mute.png");
var g_img;
function on_paint(gr) {
if (!window.IsTransparent) {
gr.FillSolidRect(0, 0, window.Width, window.Height, ui_backcol);
gr.FillGradRect(0, 0, window.Width, 90, 90, RGBA(151, 180, 202, 128), 0);
}
gr.GdiDrawText("VOLUME", btn_font, ui_btntxtcol, 0, 10, 58, 16, 33);
a_img && gr.DrawImage(a_img, 0, 22, 58, 58, 0, 0, a_img.Width, a_img.Height);
theta = (Math.pow(10, fb.Volume / 50) - 0.001) / 0.999 * g_angle;
posA = (theta - 45) * Math.PI / 180;
cosinusA = Math.cos(posA);
sinusA = Math.sin(posA);
posX = 27 - cosinusA * g_R;
posY = 48 - sinusA * g_R;
g_img = fb.Volume == -100 ? d_img : v_change ? c_img : b_img;
g_img && gr.DrawImage(g_img, posX, posY, 5, 5, 0, 0, g_img.Width, g_img.Height);
}
// ----- MOUSE ACTIONS -----
var g_drag = false;
function on_mouse_move(x, y){
if (g_drag){
d = calc_theta(x, y) / g_angle;
v = 50 * Math.log(0.99 * d + 0.01) / Math.LN10;
if (fb.Volume != v) fb.Volume = v;
}
}
function on_mouse_lbtn_down(x, y){
g_drag = true;
}
function on_mouse_lbtn_up(x, y){
on_mouse_move(x,y);
g_drag = false;
}
function on_mouse_wheel(delta){
delta > 0 ? fb.VolumeUp() : fb.VolumeDown();
}
var v_st = 0;
var g_timer_v;
function on_mouse_mbtn_up(x,y) {
if (g_timer_v != null) return;
if (fb.Volume > -100){
v_st = 1;
state = fb.Volume
} else {
v_st = 2;
}
Vol();
}
function on_mouse_rbtn_up(x, y) {
var m = window.CreatePopupMenu();
var q;
m.AppendMenuItem(fb.Volume == 0 ? 1 : 0, 1, "Up");
m.AppendMenuItem(fb.Volume == -100 ? 1 : 0, 2, "Down");
m.AppendMenuItem(fb.Volume == -100 ? 8 : 0, 3, "Volume Mute");
m.AppendMenuSeparator();
m.AppendMenuItem(fb.Volume == 0 ? 8 : 0, 4, "Set to -0 db");
m.AppendMenuItem(fb.Volume == -3 ? 8 : 0, 5, "Set to -3 db");
m.AppendMenuItem(fb.Volume == -6 ? 8 : 0, 6, "Set to -6 db");
m.AppendMenuItem(fb.Volume == -9 ? 8 : 0, 7, "Set to -9 db");
m.AppendMenuItem(fb.Volume == -12 ? 8 : 0, 8, "Set to -12 db");
m.AppendMenuItem(fb.Volume == -15 ? 8 : 0, 9, "Set to -15 db");
m.AppendMenuItem(fb.Volume == -18 ? 8 : 0, 10, "Set to -18 db");
m.AppendMenuItem(fb.Volume == -21 ? 8 : 0, 11, "Set to -21 db");
m.AppendMenuSeparator();
m.AppendMenuItem(0, 12, "Configure");
q = m.TrackPopupMenu(x, y);
switch (true) {
case (q == 1):
fb.VolumeUp();
break;
case (q == 2):
fb.VolumeDown();
break;
case (q == 3):
fb.VolumeMute();
break;
case (q == 4):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -0 db");
break;
case (q == 5):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -3 db");
break;
case (q == 6):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -6 db");
break;
case (q == 7):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -9 db");
break;
case (q == 8):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -12 db");
break;
case (q == 9):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -15 db");
break;
case (q == 10):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -18 db");
break;
case (q == 11):
fb.RunMainMenuCommand("Playback" + "/" + "Volume" + "/" + "Set to -21 db");
break;
case (q == 12):
window.ShowConfigure();
break;
}
m;
return true;
}
// ----- EVENTS -----
var v_timer = null;
function on_volume_change(val) {
if (v_timer) {
window.ClearTimeout(v_timer);
v_timer = null;
}
v_timer = window.SetTimeout(
function () {
window.Repaint();
window.ClearTimeout(v_timer);
v_timer = null;
v_change = false;
}, 3000);
v_change = true;
window.Repaint();
}
function Vol() {
g_timer_v = window.SetInterval(function(){
if (v_st == 1) {
fb.Volume--;
if (fb.Volume <= -100 ) {v_st = 0; window.ClearInterval(g_timer_v);g_timer_v = null}
}
if (v_st == 2) {
fb.Volume++;
try {state} catch(e) {state = 0;}
if (fb.Volume >= state) {v_st = 0; window.ClearInterval(g_timer_v);g_timer_v = null}
}
window.Repaint();
},50);
}