Скрипты для foo_uie_wsh_panel_mod

Список разделов foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #2741 MC Web » 11.02.2020, 16:17

vovangarm:Дольше получается думать как запилить это же преобразование внутри JS скрипта. Походу тут синтакис не принимает $replace опаратор
Повозится придется, везде где есть %artist% и %title% - заменить на соответствующую конструкцию.
MC Web
Репутация: 248
С нами: 10 лет 7 месяцев

Сообщение #2742 vovangarm » 11.02.2020, 17:05

Нашел, где это проделано в скриптах ув. MC WEB :) Finally! И всё предельно просто... А то я было пытался применить нагугленные решения для замены символов на нативном джаваскрипте... безуспешно, конечно. Не понимал интерпретатор =>

Теперь надо наделать заготовок в Notepad++, чтобы после обновления сборок быстро патчить, где надо :biggrin:

В общем, спасибо большое всем, кто откликнулся! Оба вопроса решены.
vovangarm
Репутация: 0
С нами: 4 года 1 месяц

Сообщение #2743 AHAPXICT » 28.02.2020, 09:34

seriousstas, приветствую. Ты, как я понимаю, хорошо знаком с AutoIt? Вопрос есть. Можно ли сделать так чтобы окно запомнило (или как-то так) своё положение на экране? Если привязка к х=0 и у=0, то, понятное дело, всё нормально, а если его отцентрировать по центру экрана при переключении прыгает к левому краю.
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Сообщение #2744 seriousstas » 28.02.2020, 11:46

AHAPXICT:Ты, как я понимаю, хорошо знаком с AutoIt?
Привет! ..да ставил задачи и искал решение , те не больше тебя)
Может в ini писать ?
Посмори здесь
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 1 месяц

Сообщение #2745 AHAPXICT » 28.02.2020, 12:14

seriousstas, спасибо за ответ. Там, на форуме AutoIt, я тебя и нашёл)) Да через ини файл получится, но пока пусть так и остаётся с привязкой к левому краю.(лайауты не каждую минуту переключать)
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Сообщение #2746 seriousstas » 13.03.2020, 19:26

Только у меня картинки Биографии грузит лиш в качестве LOW ?
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 1 месяц

Сообщение #2747 AHAPXICT » 13.03.2020, 19:33

seriousstas, получается что, да... У меня вообще никакие не грузит, а заметил только сейчас, не знаю как так вышло, но в сборке, случайно, оставил сохранение картинок и текста... С утра включил, всё работает)))
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Сообщение #2748 kgena_ua » 13.03.2020, 20:28

Да, не грузит. Опять какие-то изменения. Будем решать.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 10 лет 11 месяцев

Сообщение #2749 vladj » 13.03.2020, 21:54

У меня всё грузит, версию указал рядом в теме несколько минут назад.
vladj M
Аватара
Откуда: Пермский край
Репутация: 427
С нами: 14 лет 2 месяца

Сообщение #2750 kutuzof » 13.03.2020, 21:57

Тоже всё грузит, версия "07112019".
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #2751 Softer » 14.03.2020, 15:22

vladj:У меня всё грузит, версию указал рядом в теме несколько минут назад.
А у меня с версией указанной по соседству не работает, как и с 26102019.

Добавлено спустя 2 минуты 32 секунды:
kutuzof:Тоже всё грузит, версия "07112019".
Подскажите где найти эту версию?
Softer
Репутация: 0
С нами: 11 лет 9 месяцев

Сообщение #2752 MC Web » 14.03.2020, 15:45

kgena_ua, тоже несколько дней картинок не было, а сегодня появились...
MC Web
Репутация: 248
С нами: 10 лет 7 месяцев

Сообщение #2753 kutuzof » 14.03.2020, 17:34

Softer:Подскажите где найти эту версию?
https://hydrogenaud.io/index.php?topic=114686.msg977176#msg977176
kutuzof M
Аватара
Откуда: г. Орёл, Россия
Репутация: 249
С нами: 7 лет 6 месяцев

Сообщение #2754 AHAPXICT » 14.03.2020, 17:36

Да, картинки уже появились.(видно баг на сайте был - не заплатили вовремя по счетам(не продлили сертификат))
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Сообщение #2755 Softer » 14.03.2020, 17:50

kutuzof:https://hydrogenaud.io/index.php?topic=114686.msg977176#msg977176
Спасибо.

AHAPXICT:Да, картинки уже появились.(видно баг на сайте был - не заплатили вовремя по счетам(не продлили сертификат))
Да, действительно всё заработало.
Softer
Репутация: 0
С нами: 11 лет 9 месяцев

Сообщение #2756 kgena_ua » 20.05.2020, 16:59

Кто-нибудь пользуется функцией "remap" в скрипте биографии.
И такой вопрос, что JSPanel (v2.2.2.2) не дружит с fb.GetFocusItem()

Изменил функцию удаления пустых папок (скрипт биография), т.к. не удалялись папки, в которых есть только файлы *.ini без картинок и текстов.
Код: Выделить всё
function del_empty_folders(){
    var dir = fso.GetFolder(work_path);

    var e = new Enumerator( dir.SubFolders );
    try {
        for(; !e.atEnd(); e.moveNext() ) {
            var sfolder = fso.GetFolder(e.item() + "\\");
            var i = new Enumerator( sfolder.Files );
            var data = 0;
            for(; !i.atEnd(); i.moveNext() ) {
                var name = i.item().Name;
                if (name.match(/\.(jpg|txt)$/i)) {
                    data++;
                }
            }

            if (e.item().Name.indexOf("_download") < 0 && data == 0){
                fso.deleteFolder(e.item(), true);
            }
        }
    } catch(e) {}
}
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 10 лет 11 месяцев

Сообщение #2757 imfam » 22.08.2020, 20:22

У меня устройство вывода звука переключается кнопками на WHS панели
Код: Выделить всё
var r = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var s = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var t = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var u = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
   
Buttons.DEV = new Button(ww / 2 - 110, 22, 55, 14, r, function(){fb.RunMainMenuCommand("Playback/Device/Preferences...")}, "Output");
Buttons.EXT = new Button(ww / 2 - 55, 22, 55, 14, s, function(){fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly");}, "External");
Buttons.SPEAK = new Button(ww / 2 + 0, 22, 55, 14, t, function(){fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)");}, "Speaker");
Buttons.HEAD = new Button(ww / 2 + 55, 22, 55, 14, u, function(){fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO");}, "Headphone");

Кнопка меняется при наведении курсора.
Я попробовал изменить код, чтобы после клика кнопка оставалась измененной, указывая таким образом, что была нажата. Предыдущая кнопка при этом должна вернуться в исходное состояние. Не получилось, знаний не хватает. Может кто-нибудь подсказать? Вот, как пробовал:
Код: Выделить всё
// DarkOne v2.1 Control Panel
// Code by T.P Wang and tedGo

// ==PREPROCESSOR==
// @import "%fb2k_path%themes\DarkOne\Others\WSH Scripts\DO Global Script.js"
// @import "%fb2k_path%themes\DarkOne\Others\WSH Scripts\DO Global Button Script.js"
// ==/PREPROCESSOR==

window.MinWidth = 280;

// ----- CREATE BUTTONS --------------------------------------------
var imgPath = fb.foobarPath + "themes\\DarkOne\\Buttons\\Control\\";
var btn_font = gdi.Font("Tahoma", 12, 0);
var r = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var s = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var t = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var u = {normal: imgPath + "output.png", hover: imgPath + "outputMH.png"};
var rr = {normal: imgPath + "outputMH.png", hover: imgPath + "output.png"};
var ss = {normal: imgPath + "outputMH.png", hover: imgPath + "output.png"};
var tt = {normal: imgPath + "outputMH.png", hover: imgPath + "output.png"};
var uu = {normal: imgPath + "outputMH.png", hover: imgPath + "output.png"};

//var bfont = gdi.Font("calibri", 16, 0);
//var last_fm = utils.CheckComponent("foo_lastfm_radio",false);
   
Buttons.DEV = new Button(ww / 2 - 110, 22, 55, 14, r, function(){fb.RunMainMenuCommand("Playback/Device/Preferences...")}, "Output");
//Buttons.EXT = new Button(ww / 2 - 55, 22, 55, 14, s, function(){fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly");}, "External");
//Buttons.SPEAK = new Button(ww / 2 + 0, 22, 55, 14, t, function(){fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)");}, "Speaker");
//Buttons.HEAD = new Button(ww / 2 + 55, 22, 55, 14, u, function(){fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO");}, "Headphone");

function createHEADButton(){
    ww = window.Width; 
        return new Button(ww / 2 + 55, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO") ? uu: u, function(){fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO");}, fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO") ? "Reset Headphone" : "Headphone");
        return new Button(ww / 2 + 0, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)") ? t : tt, function(){fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)");}, fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)") ? "Reset Speacker" : "Speacker");
        return new Button(ww / 2 - 55, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly") ? s : ss, function(){fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly");}, fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly") ? "Reset External" : "External");

}
Buttons.HEAD = createHEADButton();

function createSPEAKButton(){
    ww = window.Width; 

        return new Button(ww / 2 + 0, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)") ? tt : t, function(){fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)");}, fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)") ? "Reset Speacker" : "Speacker");
        return new Button(ww / 2 + 55, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO") ? u : uu, function(){fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO");}, fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO") ? "Reset Headphone" : "Headphone");
        return new Button(ww / 2 - 55, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly") ? s : ss, function(){fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly");}, fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly") ? "Reset External" : "External");

}
Buttons.SPEAK = createSPEAKButton();

function createEXTButton(){
    ww = window.Width; 

        return new Button(ww / 2 - 55, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly") ? ss : s, function(){fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly");}, fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly") ? "Reset External" : "External");
        return new Button(ww / 2 + 55, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO") ? u : uu, function(){fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO");}, fb.RunMainMenuCommand("Playback/Device/ASIO : Realtek ASIO") ? "Reset Headphone" : "Headphone");
        return new Button(ww / 2 + 0, 22, 55, 14, fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)") ? t : tt, function(){fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)");}, fb.RunMainMenuCommand("Playback/Device/WASAPI (shared) : Speakers (Realtek(R) Audio)") ? "Reset Speacker" : "Speacker");

}
Buttons.EXT = createEXTButton();

// ----- DRAW ------------------------------------------------------
function on_paint(gr) {
   //var tfive = last_fm ? "LAST.FM" : "location";

   gr.FillSolidRect(0, 0, ww, wh, ui_backcol);
   //gr.FillGradRect(0, 0, ww, wh, 90, RGBA(151, 180, 202, 128), 0);

   buttonsDraw(gr);
      var x2 = ww / 2 - 110;
      var x3 = ww / 2 - 55;
      var x4 = ww / 2 + 0;
      var x5 = ww / 2 + 55;

   
    gr.GdiDrawText("Output", btn_font, ui_btntxtcol, x2, 06, 55, 12, 33);
    gr.GdiDrawText("External", btn_font, ui_btntxtcol, x3, 06, 55, 12, 33);
    gr.GdiDrawText("Speaker", btn_font, ui_btntxtcol, x4, 06, 55, 12, 33);
   gr.GdiDrawText(" Head Ph.", btn_font, ui_btntxtcol, x5, 06, 55, 12, 33);

}

// ----- EVENTS ----------------------------------------------------
function on_size() {
   ww = window.Width;
   wh = window.Height;

        Buttons.DEV.changePos(ww / 2 - 110, 22, 55, 14);
      Buttons.DEV.alterImage(r);
      Buttons.EXT.changePos(ww / 2 - 55, 22, 55, 14);
//      Buttons.EXT.alterImage(s);
      Buttons.SPEAK.changePos(ww / 2 + 0, 22, 55, 14);
//      Buttons.SPEAK.alterImage(t);
      Buttons.HEAD.changePos(ww / 2 + 55, 22, 55, 14);
//      Buttons.HEAD.alterImage(u);

   }
      
function on_Output_Device(HEAD) {

Buttons.HEAD = createHEADButton();
   Buttons.HEAD.repaint();
}
      
function on_Output_Device(SPEAK) {

    Buttons.SPEAK = createSPEAKButton();
   Buttons.SPEAK.repaint();
}
      
function on_Output_Device(EXT) {

   Buttons.EXT = createEXTButton();
   Buttons.EXT.repaint();
}

imfam M
Откуда: Германия
Репутация: 28
С нами: 10 лет 10 месяцев

Сообщение #2758 AHAPXICT » 23.08.2020, 03:58

imfam, приветствую. Вплетаться в это не буду, но дам пару советов.
Из описания понял:
1. DarkOne v2.1 Control Panel
2. 4 кнопки прямого переключения аудио выходов.
3. Судя по описанию над кнопками имеются надписи(описания кнопки), хотя можно и картинку кнопки использовать или нарисовать прямоугольник так чтобы подсвечивал активную кнопку(серый, голубой, оранжевый - цвет без разницы)

Сделайте вот что:
1. Переменную что бы сохранялась в меню Properties var active_device = window.GetProperty("active device buttons", 0);
2. не уверен, по моему так пролезет через запятую добавить команду function(){fb.RunMainMenuCommand("Playback/Device/KS : AudioQuest DragonFly"), window.SetProperty("active device buttons", 0 - 3)}
3. Ну а там через переменную поменять цвет надписи активной кнопки : var txt_act_dev = active_device == 1 ? RGB(0,255,0) : ui_btntxtcol;

Либо прямоугольник нарисовать
var xxx = active_device == 1 ? 50 : 0;
gr.FillSolidRect(xxx, y, w, h, RGBA(0, 255, 0, 230));
либо тоже но с картинкой.
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Сообщение #2759 imfam » 23.08.2020, 16:20

AHAPXICT, спасибо за отклик. Применить с ходу не получилось. Буду искать подходящие примеры в сети. Моя сборка
imfam M
Откуда: Германия
Репутация: 28
С нами: 10 лет 10 месяцев

Сообщение #2760 AHAPXICT » 23.08.2020, 16:26

imfam, давай так, я где-то через два часа буду, разбер'м по пунктам
AHAPXICT M
Аватара
Откуда: Киев
Репутация: 252
С нами: 10 лет 4 месяца

Пред.След.

Вернуться в Секреты foobar2000