Винтажные скины для Foobar2000

Список разделов Аудиоплеер foobar2000 Интерфейс

Описание: Все что связанно с настройкой внешнего вида плеера

Сообщение #1 iprad » 29.04.2013, 08:05

Сразу хочу оговориться, что такие скины наверное не совсем удобны...... но красивы. Увидел такой для AIMP, и захотелось....... по ностальгировать.... В общем вот видео (Порт с AIMPа. Автор скина для AIMP-Black_AVP.........) :

Спойлер
phpBB [media]

----------------------------------------------------------------------------------------

Масштабируемый скин Pioneer RT 909 под любое разрешение монитора:

Спойлер
phpBB [media]

----------------------------------------------------------------------------------------

Новая версия Pioneer RT 909 под любое разрешение монитора.

Спойлер
phpBB [media]

Спойлер
Желательно ставить на чистую установку foobar2000
Готовая сборка (foobar2000 v1.3.3 final + скин с разрешением 1008х756) :http://dfiles.ru/files/eb8n7p6z6
Установка:
1. Распаковать содержимое архива в папку с установленным foobar2000
2. Установить 2 шрифта из папки: themes/PioneerRT909/font
3. Запустить foobar2000
4. Выбираем модуль интерфейса Columns UI
5. Добавляем меню для быстрого доступа по щелчку на значке окна : File - Preferences - Display - Main Window - Main menu as system menu (поставить галочку)
6. Изменяем параметры WSH Panel Mod : File - Preferences - Tools - WSH Panel Mod - Safe mode (убрать галочку). Foobar2000 перезагрузится
7. Устанавливаем тему : File - Preferences - Columns UI - Import : themes/PioneerRT909/PioneerRT909.fcl
Перемещение окна с зажатым колёсиком мыши :smile:

----------------------------------------------------------------------------------------

Релиз скина кассетной деки Technics RSBX-828

Спойлер
phpBB [media]

Спойлер
В архиве полностью рабочая самодостаточная сборка со всем необходимым. Ничего дополнительно искать и устанавливать не нужно!
На видео показаны основные возможности и использование элементов управления (к просмотру желательно)

Особенности:
Возможность масштабирования под любое разрешение монитора
Перемещение левой кнопкой мыши по окну (вне зон кнопок)
Поиск по треку длительными нажатиями кнопок в обоих направлениях.Скорость поиска (интервал в секундах) регулируется
регулятором "Level R". Минимальное значение 0,5 секунд с таким-же шагом изменения.
Короткое нажатие - переход на следующий или предыдущий трек

В сборке испозован компонент foo_uie_wsh_panel_mod_plus (модификация foo_uie_wsh_panel_mod с доступом к некоторым функциям WinAPI)
Заметил, что при редактировании скрипта в foo_uie_wsh_panel_mod_plus бывают вылеты foobar'a.
Не забываем для foo_uie_wsh_panel_mod_plus убрать использование "Safe mode"
Конфликта при одновременном присутствии foo_uie_wsh_panel_mod_plus и foo_uie_wsh_panel_mod не заметил

Для отображения обложек трека использован скрипт Cover Panel (01.11.2013) // @author "eXtremeHunter
Отображения обложек плейлиста - скрипт CoverFlow View v1.4 // @author Br3tt aka Falstaff
Плейлист - WSH Playlist Viewer // @version "2.0.1" @author "Br3tt aka Falstaff

За идею с поиском по треку кнопками перемотки спасибо El...Vamp

Тестировал на Windows 7 / Windows 8.

http://dfiles.ru/files/d1r20x4ei

Установка в виде отдельной сборки:

1. Распаковываем архив
2. Устанавливаем шрифты из папки (fooVintage\themes\Vintage\Common\Fonts)
3. Запускаем foobar2000
4. Добавляем своё расположение медиа-библиотек (кнопка "Open/Close").

Для тех, кто хочет внедрить скин в свою сборку (только скин деки, без панели плейлиста):

1. Устанавливаем шрифт digital-7 (italic).ttf из папки fooVintage\themes\Vintage\Common\Fonts
2. Добавляем из архива папки:
fooVintage\themes\Vintage
fooVintage\user-components\foo_dockable_panels
fooVintage\user-components\foo_ui_columns
fooVintage\user-components\foo_ui_hacks
fooVintage\user-components\foo_uie_panel_splitter
fooVintage\user-components\foo_uie_wsh_panel_mod_plus
fooVintage\user-components\foo_vis_vumeter

На видео есть пример создания и использования отдельной панели для деки

Приятного использования!

----------------------------------------------------------------------------------------

Скин легендарной Technics SL-1200

phpBB [media]


http://dfiles.ru/files/27ehrpq7g
Последний раз редактировалось iprad 17.02.2017, 21:48, всего редактировалось 28 раз(а).
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца


Сообщение #161 iprad » 15.09.2014, 11:22

Здесь.
Ноут с 8-ой виндой?
Не отработал скрипт установки размеров окна. В выложенной теме при запуске работает скрипт определения разрешения монитора. Поэтому возможны траблы.
Глюки - Windows 8.x на ноутах с 2-мя видеокартами. Тестить было не на чем. Извиняюсь заранее.
Может выложить готовую сборку 1008x756 без подстройки под монитор?
Вложения
Безымянный.jpg
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #162 Rink » 15.09.2014, 11:56

Винда 7-64, не ноут, консоль пишет:

UI Hacks: DLL-hijacking failed
UI Hacks: hooks status 0x430000
Components loaded in: 0:00.033959
Configuration read in: 0:00.076542
User Interface initialized in: 0:00.068286
Startup time : 0:00.216589
WSH Panel Mod (CoverFlow View v1.4 v1.4.0 by Br3tt aka Falstaff >> http://br3tt.deviantart.com): initialized in 15 ms
WSH Panel Mod (DarkOne Cover Panel v3.0 by tedGo, includes partial code by T.P Wang): initialized in 3 ms
WSH Panel Mod (Reel to Reel Pioneer RT 909 Panel v3.0 by iprad): Parsing file "F:\Интернет\foobar2000\themes\PioneerRT909\Script\Script.js"
Error: WSH Panel Mod (Reel to Reel Pioneer RT 909 Panel v3.0 by iprad): Ошибка выполнения Microsoft JScript:
Несоответствие типа
File: <main>
Ln: 12, Col: 44
<source text only available at compile time>

Добавлено спустя 1 минуту 54 секунды:
Монитор 1920x1200
Rink
Гость

Сообщение #163 iprad » 15.09.2014, 12:09

Скинь скрин настроек Main Window
Вложения
001.jpg
002.jpg
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #164 Rink » 15.09.2014, 12:18

http://fastpic.ru/session/2014/0915/UsF9rpsPT6.html

как сюда выложить, не знаю.

Добавлено спустя 2 минуты 9 секунд:
При установке скина главное окно съёживается в 0.
Rink
Гость

Сообщение #165 iprad » 15.09.2014, 12:21

Не отрабатывает скрипт установки размеров.

Добавлено спустя 2 минуты 49 секунд:
Выставь размеры Minimum Size и Maximum Size по моему скриншоту.
Дальше регулятором Pitch Cont подгонишь под своё разрешение.
Если регулятор не виден: правая кнопка мыши по области скина - Properties. Параметр currentSizeIndex устанавливай в значение 17 (примерно для твоего разрешения).
Конфигурацию компа в студию...
И главное - запуск от имени Администратора или отключить UAC в винде
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #166 Rink » 15.09.2014, 12:37

Выставил, как на вашем скрине, при установке темы всё сбросились на 0, как на предыдущем скриншоте.
Конфигурация компа:
Windows 7 Профессиональная 64-bit SP1
Intel Core i5 2500 @ 3.30GHz
Оперативка 8,00ГБ 2-канальная DDR3 @ 665 МГц
Материнка Gigabyte Technology Co., Ltd. Z68XP-UD3 (Socket 1155)
NVIDIA GeForce GTX 560 Ti (Gigabyte)
ASUS Xonar Essence STX Audio Device
Монитор DELL U2410 (1920x1200@59Hz)

Добавлено спустя 1 минуту 33 секунды:
UAC в винде, как отключить?Извеняюсь за нубство...

Добавлено спустя 2 минуты 49 секунд:
UAC отключён, проверил.
Rink
Гость

Сообщение #167 iprad » 15.09.2014, 12:46

правая кнопка мыши по области скина - Properties. Параметр auto_size устанавливай в False
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #168 Rink » 15.09.2014, 12:58

Сделал, на экране прозрачное окно с индикатором Пионера.Не могли бы вы выложить готовую сборку?
Rink
Гость

Сообщение #169 iprad » 15.09.2014, 13:07

правая кнопка мыши по области скина - Configure - Ok.
В шапке темы выложу готовую сборку минут чрез 10.

Добавлено спустя 30 минут 32 секунды:
Rink писал(а):Сделал, на экране прозрачное окно с индикатором Пионера.Не могли бы вы выложить готовую сборку?

http://dfiles.ru/files/eb8n7p6z6
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #170 Rink » 15.09.2014, 13:46

Спасибо за готовую сборку, я так понял, что масштабировать её не получится?
Rink
Гость

Сообщение #171 iprad » 15.09.2014, 13:55

Rink писал(а):Спасибо за готовую сборку, я так понял, что масштабировать её не получится?
Полный функционал. Масштабирование на регуляторе Pitch Cont. Только стартует в разрешении 1008х756.
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #172 Rink » 15.09.2014, 14:23

При попытке увеличения размера получается это

http://fastpic.ru/session/2014/0915/lV7zqCx8CF.html
Rink
Гость

Сообщение #173 iprad » 15.09.2014, 14:33

правая кнопка мыши по области скина - Configure - Ok.
Что в консоли?
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #174 Rink » 15.09.2014, 14:52

Configure - Ok.- помогло, только при изменении масштаба справа пропадает область плейлиста, и мышкой окно плеера не растягивается никак, и стрелки растяжки на границе окна не появляются. Я наверно вас уже наверно достал))). На сегодня экспериментов хватит. Потом ещё поковыряюсь.
Rink
Гость

Сообщение #175 iprad » 15.09.2014, 15:53

Отображение плейлиста - кнопка Playlist
iprad M
Автор темы, Бывалый
Аватара
Возраст: 40
Репутация: 80
С нами: 4 года 2 месяца

Сообщение #176 macarych » 15.09.2014, 18:55

iprad, Вы все таки сделали это! Уважаю, жму руку!
Спойлер
Я, с коллегами, просто сидели и смотрели, завораживает!
phpBB [media]


macarych M
Гуру
Репутация: 236
С нами: 8 лет 4 месяца

Сообщение #177 LUR » 15.09.2014, 19:25

macarych, согласен, отличная работа!
LUR M
Модератор
Аватара
Возраст: 34
Откуда: Минск
Репутация: 160
С нами: 4 года 6 месяцев

Сообщение #178 macarych » 16.09.2014, 01:35

iprad писал(а):В выложенной теме при запуске работает скрипт определения разрешения монитора. Поэтому возможны траблы.
Как бы не критично, но если днем на работе запустил почти сразу, дома часа два возился, сначала на буке настроил, потом на десктопе запустил.
Спойлер
Изображение

Изображение

Изображение

Изображение

Изображение


Может лучше, для начала, просто фиксированный размер окна а потом руками настраивать?
macarych M
Гуру
Репутация: 236
С нами: 8 лет 4 месяца

Сообщение #179 AHAPXICT » 16.09.2014, 04:51

iprad, добавил в скрипт для Cover Panel функцию для колёсика мыши из DarkOne_v4.0 by tedGo, теперь обложки переключаются и при помощи колесика мыши.
Код: Выделить всё
// ==PREPROCESSOR==
// @name "DarkOne Cover Panel"
// @version "3.0"
// @author "tedGo, includes partial code by T.P Wang"
// ==/PREPROCESSOR==

var configPath = fb.FoobarPath + "themes\\PioneerRT909\\";
var btn_font = gdi.Font("Europe_Ext", 7, 0);
var dsp_font = gdi.Font("Europe_Ext", 15, 0);
var ui_type = window.InstanceType;
var ww = 0; wh = 0;

// ----- CREATE RGB(A) ----------------------------------------------
function RGBA(r, g, b, a) {
   return ((a << 24) | (r << 16) | (g << 8) | (b));
}

// ----- CREATE CUSTOM COLOUR ---------------------------------------
function CustomColour(colour){
   tempc = colour.split("-");
   return ((tempc[3] << 24) | (tempc[0]<<16) | (tempc[1]<<8) | (tempc[2]));
}

// ----- GET UI COLOURS ---------------------------------------------
function get_colors() {
   ui_backcol = ui_type == 0 ? window.GetColorCUI(3) : window.GetColorDUI(1);
   ui_textcol = ui_type == 0 ? window.GetColorCUI(0) : window.GetColorDUI(0);
   ui_btntxtcol = ui_type == 0 ? window.GetColorCUI(2) : window.GetColorDUI(0);
}

get_colors();

function on_colors_changed() {
   get_colors();
   window.Repaint();
}


var g_img = null;
var descr_timer = null;
var cycle_timer = null;
var g_active = false;
var g_fade = 255;
var g_state = 0;
var metadb;

// ----- CREATE OPTIONS --------------------------------------------
var a_arr = new Array("Picture 1", "Picture 2", "Picture 3", "Picture 4", "Picture 5");
var b_arr = new Array("Front Cover", "Back Cover", "Disc", "Icon", "Artist");

function artType() {
   at = window.GetProperty("Enable Custom Pictures", false);
   c_arr = at ? a_arr : b_arr;
}

artType();

function aspectRatio() {
   ar = window.GetProperty("Aspect ratio", 0);
   if (typeof ar < 0 || ar > 2) ar = 0;
   return ar;
}

aspectRatio();

// ----- GET PICTURE -----------------------------------------------
var imgPath = configPath + "StubImage\\";
var a_img = gdi.Image(imgPath + "DarkOne.png");
var b_img = gdi.Image(imgPath + "Radio.png");
var c_img = gdi.Image(imgPath + "AudioCD.png");
var d_img = gdi.Image(imgPath + "NoImage.png");

var e_arr = [];
e_arr[0] = gdi.Image(imgPath + "NoFront.png");
e_arr[1] = gdi.Image(imgPath + "NoBack.png");
e_arr[2] = gdi.Image(imgPath + "NoDisc.png");
e_arr[3] = gdi.Image(imgPath + "NoIcon.png");
e_arr[4] = gdi.Image(imgPath + "NoArtist.png");

var f_arr = [];
f_arr[0] = window.GetProperty(a_arr[0],"");
f_arr[1] = window.GetProperty(a_arr[1],"");
f_arr[2] = window.GetProperty(a_arr[2],"");
f_arr[3] = window.GetProperty(a_arr[3],"");
f_arr[4] = window.GetProperty(a_arr[4],"");

var g_ext = window.GetProperty("File extension order", "jpg|png|gif|bmp|tif");
var g_arr = g_ext.split("|");

var g_art = null;

function getRightImage(switchstate) {
   metadb = fb.GetNowPlaying();

   if (g_art) {
      g_img.Dispose();
      g_art = null;
   }

   if (metadb) {
      var f_img = null;
      if (fb.PlaybackLength <= 0) {
         f_img = b_img;
         g_active = false;
      } else if (metadb.RawPath.indexOf("cdda://") == 0) {
         f_img = c_img;
         g_active = false;
      } else {
         var old_state = g_state;
         do {
            switchstate && switchState();
            if (at) {
               var arr = utils.Glob(fb.TitleFormat(f_arr[g_state]).Eval() + ".*").toArray();
               var g_break = false;
               for (var n = 0; n < g_arr.length && !g_break; n++) {
                  for (var i = 0; i < arr.length; i++) {
                     var re = new RegExp("\." + g_arr[n] + "$", "i");
                     if (arr[i].match(re)) {
                        g_art = gdi.Image(arr[i]);
                        g_break = true;
                        break;
                     }
                  }
               }
               f_img = g_art;
            } else {
               g_art = utils.GetAlbumArtV2(metadb, g_state);
               f_img = g_art;
            }
         }
         while (switchstate && old_state != g_state && !f_img);
         g_active = true;
      }
   } else {
      f_img = a_img;
      g_active = false;
   }

   if (f_img) g_img = f_img;
   else if (!switchstate) g_img = at ? d_img : e_arr[g_state];

   return g_img ? true : false;
}

getRightImage(false);

// ----- CREATE ACTIONS --------------------------------------------
function getTimer() {
   if (descr_timer) {
      descr_timer.Dispose(),
      descr_timer = null;
   }
   descr_timer = window.CreateTimerTimeout(1500);
   window.Repaint();
}

function switchState() {
   if (g_state == 4) g_state = 0;
   else g_state++;
}

function switchType() {
   window.SetProperty("Enable Custom Pictures", at ? false : true);
   artType();
   g_state = 0;
   getRightImage(false);
   if (g_active && !g_art) getRightImage(true);
   getTimer();
}

// ----- CREATE MENU -----------------------------------------------
function CustomMenu(x, y) {
   var a = window.CreatePopupMenu();
   var idx;

   a.AppendMenuItem(0, 1, "Keep aspect ratio");
   a.AppendMenuItem(0, 2, "Noexpansion");
   a.AppendMenuItem(0, 3, "Stretch");
   a.CheckMenuRadioItem(1, 3, ar + 1);
   a.AppendMenuItem(2048, 0, 0);
   a.AppendMenuItem(0, 4, at ? "Album Art" : "Custom Pictures");
   a.AppendMenuItem(2048, 0, 0);

   if (!ac) {
      for (var i = 0; i < c_arr.length; i++) {
         a.AppendMenuItem(0, 5 + i, c_arr[i]);
      }
      a.CheckMenuRadioItem(5, 9, g_state + 5);
      a.AppendMenuItem(2048, 0, 0);
   }

   a.AppendMenuItem(ac ? 8 : 0, 10, "Auto Cycle Image");
   ac && a.AppendMenuItem(ct ? 8 : 0, 11, "Faded Transition");
   a.AppendMenuItem(2048, 0, 0);
   a.AppendMenuItem(0, 12, "Properties");
   a.AppendMenuItem(0, 13, "Configure...");

   idx = a.TrackPopupMenu(x, y);

   switch (true) {
      case (idx >= 1 && idx <= 3):
         window.SetProperty("Aspect ratio", idx - 1);
         aspectRatio();
         window.Repaint();
         break;

      case (idx == 4):
         switchType();
         break;

      case (idx >= 5 && idx <= 9):
         g_state = idx - 5;
         getRightImage(false);
         getTimer();
         break;

      case (idx == 10):
         window.SetProperty("Auto Cycle Image", ac ? false : true);
         ac = window.GetProperty("Auto Cycle Image");
         break;

      case (idx == 11):
         window.SetProperty("Auto Cycle Transition Fader on", ct ? false : true);
         ct = window.GetProperty("Auto Cycle Transition Fader on");
         break;

      case (idx == 12):
         window.ShowProperties();
         break;

      case (idx == 13):
         window.ShowConfigure();
         break;
   }

   a.Dispose();
}

// ----- DRAW ------------------------------------------------------
var overlay_active = window.GetProperty("Back Overlay: Activate", true);
var overlay_colour = window.GetProperty("Back Overlay: Colour", "63-100-127-72");
var g_acol = CustomColour(overlay_colour);

var descr_tcolour = window.GetProperty("Description: Text Colour", "128-192-255-255");
var g_bcol = CustomColour(descr_tcolour);

var descr_bcolour = window.GetProperty("Description: Back Colour", "19-30-38-224");
var g_ccol = CustomColour(descr_bcolour);

function on_paint(gr) {
   if (!window.IsTransparent) gr.FillSolidRect(0, 0, ww, wh, ui_backcol);
   if (fb.IsPlaying && overlay_active) gr.FillSolidRect(0, 0, ww, wh, g_acol);

   if (g_img) {
      var w, h, x, y;
      if (ar == 0 || ar == 1 && (g_img.Width > ww || g_img.Height > wh)) {
         var img_scale = Math.min(ww / g_img.Width, wh / g_img.Height);
         w = g_img.Width * img_scale;
         h = g_img.Height * img_scale;
         x = (ww - w) / 2;
         y = (wh - h) / 2;
      } else if (ar == 1) {
         w = g_img.Width;
         h = g_img.Height;
         x = (ww - w) / 2;
         y = (wh - h) / 2;
      } else {
         w = ww;
         h = wh;
         x = y = 0;
      }
      gr.DrawImage(g_img, x, y, w, h, 0, 0, g_img.Width, g_img.Height, 0, Math.abs(g_fade));
   }

   if (descr_timer) {
      gr.SetSmoothingMode(2);
      gr.FillRoundRect(5, 5, 129, 29, 3, 3, g_ccol);
      gr.GdiDrawText(c_arr[g_state], dsp_font, g_bcol, 10, 10, 125, 30, 33);
   }
}

// ----- MOUSE ACTIONS ---------------------------------------------
function on_mouse_move(x, y) {
   !ac && g_active && window.SetCursor(32649);
}

function on_mouse_lbtn_down(x, y) {
   if (!ac && g_active) {
      getRightImage(true);
      getTimer();
   }
}

function on_mouse_mbtn_down(x, y) {
   g_active && switchType();
}

function on_mouse_rbtn_up(x, y) {
   if (g_active) {
      CustomMenu(x, y);
      return true;
   }
}

function on_mouse_wheel(step) {
   if (!ac && g_active) {
        g_state -= step;
        if (g_state < 0 ) g_state = 4;
        else if (g_state > 4) g_state = 0;
        getRightImage(false);
        getTimer();
    }
}

// ----- EVENTS ----------------------------------------------------
var ac = window.GetProperty("Auto Cycle Image", false);
var ci = window.GetProperty("Auto Cycle Interval in s", 15);
var ct = window.GetProperty("Auto Cycle Transition Fader on", false);

function on_size() {
   ww = window.Width;
   wh = window.Height;
}

function on_timer(id) {
   if (cycle_timer && id == cycle_timer.ID) {
      g_fade -= 51;
      if (g_fade <= -255) {
         g_fade = 255;
         cycle_timer.Dispose();
         cycle_timer = null;
      }
      if (g_fade == 0) getRightImage(true);
      window.Repaint();
   } else if (descr_timer && id == descr_timer.ID) {
      window.RepaintRect(5, 5, 130, 30);
      descr_timer.Dispose();
      descr_timer = null;
   }
}

function on_playback_new_track(metadb) {
   getRightImage(false);
   window.Repaint();
}

function on_playback_time(time) {
   if (ac && g_active && g_art && time > 1 && Math.round(time % ci) == 1) {
      if (ct) {
         if (cycle_timer) {
            cycle_timer.Dispose();
            cycle_timer = null;
         }
         cycle_timer = window.CreateTimerInterval(50);
      } else {
         getRightImage(true);
         window.Repaint();
      }
   }
}

function on_playback_stop(reason) {
   if (cycle_timer) {
      cycle_timer.Dispose();
      cycle_timer = null;
      g_fade = 255;
   }

   if (descr_timer) {
      descr_timer.Dispose();
      descr_timer = null;
   }

   if (reason != 2) {
      getRightImage(false);
      window.Repaint();
   }
}
Как по мне так удобнее, тем более что вы всё равно используете его скрипт, только старой версии.
AHAPXICT M
Мастер
Аватара
Возраст: 46
Откуда: Киев
Репутация: 97
С нами: 3 года 6 месяцев

Сообщение #180 zhan-k » 01.10.2014, 03:08

Очень красивая тема! Вот если бы кто сделал пошаговую инструкцию в скринах или видео как это все установить, настроить и запустить.
zhan-k
Гость

Пред.След.

Вернуться в Интерфейс