Список разделов › 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);
}










