Скрипты для foo_uie_wsh_panel_mod

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

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

Сообщение #2721 AHAPXICT » 27.01.2020, 23:04

softvip, согласен с вами что из за этих "мультидевайдов" всегда возникает путаница. Но вы опять написали строку без всякого смысла.
sub($div(%ps_width%,2),0) это: ширина = W : 2 - 0;

Давайте так. Возьмём, к примеру, фиксированное значение размера панели PSS: %ps_width% = 100.
Соответственно Cover панель, согласно первого примера, должна быть меньше как указано в строке(если значение верно): $sub(%ps_width%,5) что равно W = 100 - 5 = 95;
Тогда получаем второе значение: W = 100 Х 95 : 100 = 95; $muldiv(%ps_width%,95,100)
Теперь вместе: $min($muldiv(%ps_width%,95,100),$sub(%ps_width%,5));
Берём калькулятор и проверяем.
Если ширина сплиттера 200, то ширина Cover панели равна 190: $min(200 Х 95 : 100 = 190 , 200 - 5 = 195)
Если ширина сплиттера 90, то ширина Cover панели равна 85: $min(90 Х 95 : 100 = 85,5 , 90 - 5 = 85)
Всё.
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 231
С нами: 6 лет 10 месяцев

Сообщение #2722 AHAPXICT » 28.01.2020, 20:05

softvip в ЛС
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 231
С нами: 6 лет 10 месяцев

Сообщение #2723 softvip » 29.01.2020, 19:27

Вопрос, есть возможность отключить биографию в "Biography, albums, title, similar artist info.www.last.fm"? Если да то где?
softvip
Новичок
Репутация: 1
С нами: 2 года 1 месяц

Сообщение #2724 MC Web » 29.01.2020, 19:46

softvip, в контекстном меню данного скрипта есть Справка - там описаны все возможные сочетания клавиш к настройкам.
MC Web
Гуру
Аватара
Репутация: 214
С нами: 7 лет 1 месяц

Сообщение #2725 Aum » 31.01.2020, 15:41

Ребята, а есть ли возможность в менюшку вывести выбор звуковых карт (чтоб список сам формировался из подключенных устройств)? Аналог toolbar'a "Device" только в виде меню?
Мудр не тот, кто доказал что-либо, а тот, кто зная истину, не стал спорить.
Aum M
Бывалый
Аватара
Возраст: 36
Откуда: UA
Репутация: 18
С нами: 10 лет 6 месяцев

Сообщение #2726 AHAPXICT » 31.01.2020, 18:59

Aum, по моему всё равно нужно в скрипт название девайса вводить, хотя по идее должно автоматом определять(Вроде бы в скрипте присутствует "device_id").
Вот, до нового года ещё вырезал кусок, хотел поэкспериментировать, но так он и остался в Notepad++.
Это из foo_jscript_panel Interfaces.txt
Код: Выделить всё
fb.GetOutputDevices(); (string)
      /*
      Returns a JSON array in string form so you need to use JSON.parse() on the result.

      Example:
      var str = fb.GetOutputDevices();
      var arr = JSON.parse(str);
      console.log(arr.length); // number of devices
      console.log(JSON.stringify(arr, null, 4)); // using JSON.stringify here for displaying the output below

      [
         {
            "active": false,
            "device_id": "{5243F9AD-C84F-4723-8194-0788FC021BCC}",
            "name": "Null Output",
            "output_id": "{EEEB07DE-C2C8-44C2-985C-C85856D96DA1}"
         },
         {
            "active": true,
            "device_id": "{00000000-0000-0000-0000-000000000000}",
            "name": "Primary Sound Driver",
            "output_id": "{D41D2423-FBB0-4635-B233-7054F79814AB}"
         },
         {
            "active": false,
            "device_id": "{1C4EC038-97DB-48E7-9C9A-05FDED46847B}",
            "name": "Speakers (Sound Blaster Z)",
            "output_id": "{D41D2423-FBB0-4635-B233-7054F79814AB}"
         },
         {
            "active": false,
            "device_id": "{41B86272-3D6C-4A5A-8907-4FE7EBE39E7E}",
            "name": "SPDIF-Out (Sound Blaster Z)",
            "output_id": "{D41D2423-FBB0-4635-B233-7054F79814AB}"
         },
         {
            "active": false,
            "device_id": "{9CDC0FAE-2870-4AFA-8287-E86099D69076}",
            "name": "3 - BenQ BL3200 (AMD High Definition Audio Device)",
            "output_id": "{D41D2423-FBB0-4635-B233-7054F79814AB}"
         }
      ]

      As you can see, only one of the items in the array has "active"
      set to true so that is the device you'd want to display the name of
      or mark as selected in a menu.

      To actually change device, you'll need the device_id and output_id
      and use them with fb.SetOutputDevice.

      Example:
      var str = fb.GetOutputDevices();
      var arr = JSON.parse(str);
      // Assuming same list from above, switch output to the last device.
      fb.SetOutputDevice(arr[4].output_id, arr[4].device_id);
      */
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 231
С нами: 6 лет 10 месяцев

Сообщение #2727 seriousstas » 01.02.2020, 00:42

Aum
возможность в менюшку вывести выбор звуковых карт
Делал как-то , для сборки 4iCar через контекст по двойному клику(устройства подтягиваются автоматом)
phpBB [media]

Example:
var str = fb.GetOutputDevices();
var arr = JSON.parse(str);
// Assuming same list from above, switch output to the last device.
fb.SetOutputDevice(arr[4].output_id, arr[4].device_id);
*/
Да - как-то так и работает
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 105
С нами: 5 лет 7 месяцев

Сообщение #2728 AHAPXICT » 01.02.2020, 11:17

seriousstas, как я понимаю, о чём и был разговор с Aum, нельзя сделать меню:
Aum писал(а):чтоб список сам формировался из подключенных устройств
как в тулбаре или для DSP.
Изображение
Дело в том, что я бы такое меню тоже, давно, хотел.
Последний пример(Example) просто включает 4 девайс по счёту, а если сделать контекст меню то выбор будет из [object Object]((
Если есть такое готовое контекстное меню поделись.
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 231
С нами: 6 лет 10 месяцев

Сообщение #2729 MC Web » 01.02.2020, 12:20

Aum писал(а):Аналог toolbar'a "Device" только в виде меню?
А данное меню или его возможности не подходят?

Спойлер
Изображение
MC Web
Гуру
Аватара
Репутация: 214
С нами: 7 лет 1 месяц

Сообщение #2730 seriousstas » 01.02.2020, 12:35

А данное меню или его возможности не подходят?
Вполне (хоть и долго выцеливать)))

Может кто-то встречал скрипт с выпадающим меню для WSH ?

как в тулбаре или для DSP.
Это отдельные компоненты.. У меня идея была переключать пальцем "на лету"
Так удобно сравнивать..

чтоб список сам формировался из подключенных устройств
В этой переменной и будет список:
var arr = JSON.parse(str);
Вешай кнопки поверх надписей и будет своя панелька.
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 105
С нами: 5 лет 7 месяцев

Сообщение #2731 Aum » 01.02.2020, 15:04

MC Web, подходит, но далеко вложена менюха, хочется близко сделать для себя (привык,что почти все можно реализовать в фубаре):))
AHAPXICT, seriousstas, спасибо, мы на верном пути!
С помощью JSON могу получить нужный массив: хоть с именами девайсов, хоть с состоянием активности. Осталось превратить обратно в объект JavaScript (допустим массив) но уже с полученными именами из JSON. Не могу разобраться. Тут https://learn.javascript.ru/json и пример есть в конце. Помогите сделать JavaScript массив с именами или хоть бы одну переменную с именем девайса!
Код: Выделить всё
function on_mouse_lbtn_down(x,y,mask){
 var str = fb.GetOutputDevices();
var arr = JSON.parse(str);
var dev_a = JSON.stringify(arr, ["name","active"],1);
console.log(dev_a);
    }
пример с сайта
let schedule = `{
"meetups": [
{"title":"Conference","date":"2017-11-30T12:00:00.000Z"},
{"title":"Birthday","date":"2017-04-18T12:00:00.000Z"}
]
}`;

schedule = JSON.parse(schedule, function(key, value) {
if (key == 'date') return new Date(value);
return value;
});

alert( schedule.meetups[1].date.getDate() ); // 18 - отлично!
Мудр не тот, кто доказал что-либо, а тот, кто зная истину, не стал спорить.
Aum M
Бывалый
Аватара
Возраст: 36
Откуда: UA
Репутация: 18
С нами: 10 лет 6 месяцев

Сообщение #2732 seriousstas » 01.02.2020, 16:40

В этом примере ведь все есть :
var str = fb.GetOutputDevices();
var arr = JSON.parse(str);
console.log(arr.length); // number of devices
console.log(JSON.stringify(arr, null, 4)); // using JSON.stringify here for displaying the output below
Открывай консоль и смотри ,как выводятся имена
строка "name"
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 105
С нами: 5 лет 7 месяцев

Сообщение #2733 marc2003 » 02.02.2020, 10:44

Here's a simple sound devices button with fly out menu (requires JScript Panel)

Код: Выделить всё
// ==PREPROCESSOR==
// @import "%fb2k_component_path%docs\flags.txt"
// @import "%fb2k_component_path%docs\helpers.txt"
// ==/PREPROCESSOR==

var img = gdi.Image(fb.ComponentPath + 'samples\\basic\\images\\cog.png');

function on_paint(gr) {
   gr.DrawImage(img, 0, 0, img.Width, img.Height, 0, 0, img.Width, img.Height);
}

function on_mouse_lbtn_up(x, y) {
   if (x > 0 && x < img.Width && y > 0 && y < img.Height) {
      menu(x, y);
   }
}

function menu(x, y) {
   var menu = window.CreatePopupMenu();
   var str = fb.GetOutputDevices();
   var arr = JSON.parse(str);
   var active = -1;
   for (var i = 0; i < arr.length; i++) {
      menu.AppendMenuItem(MF_STRING, i + 1, arr[i].name);
      if (arr[i].active) active = i;
   }
   
   if (active > -1) menu.CheckMenuRadioItem(1, arr.length + 1, active + 1);
   
   var idx = menu.TrackPopupMenu(x, y);
   menu.Dispose();
   
   if (idx > 0) fb.RunMainMenuCommand("Playback/Device/" + arr[idx - 1].name); // << would need updating for Russian version
}
marc2003
Новичок
Репутация: 5
С нами: 2 года 6 месяцев

Сообщение #2734 vovangarm » 10.02.2020, 20:19

kgena_ua писал(а):name "Properties & properties file (ml)"
version "04112018"

kgena_ua писал(а):"Biography, albums, title, similar artist info.www.last.fm."
@version "26102019"

Привет! Обновился на последнюю сборку LUR, и при попытке добавить/воспроизвести онлайн поток http-радио, крашатся оба скрипта выше.

Код: Выделить всё
JSplitter v2.3.3.1 (Biography, albums, title, similar artist info.www.last.fm. v26102019 by kgena_ua)
Microsoft JScript runtime error:
Object not a collection
File: <main>
Line: 978, Col: 5

JSplitter v2.3.3.1 (Properties & properties file (ml) v04112018 by kgena_ua)
Microsoft JScript runtime error:
Object not a collection
File: <main>
Line: 794, Col: 21

Воспроизводить пробую вот это: http://185.65.245.34:8000/rock

Поможете пофиксить краши?

И второй вопрос, не такой насущный... С того же радио потока, кириличные теги Artist/Title отображаются html-закодированными символами &#xxxx;
Собственнно, вопрос: можно внутри проигрывателя определять и декодировать этот текст?

Буду признателен за помощь.
vovangarm
Новичок
Репутация: 0
С нами: 7 месяцев 19 дней

Сообщение #2735 kutuzof » 10.02.2020, 20:38

vovangarm, на первый вопрос посмотри здесь
kutuzof M
Бывалый
Аватара
Возраст: 33
Откуда: Орёл
Репутация: 175
С нами: 4 года

Сообщение #2736 vovangarm » 10.02.2020, 21:47

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

А по второму моему вопросу есть соображения? :)
vovangarm
Новичок
Репутация: 0
С нами: 7 месяцев 19 дней

Сообщение #2737 AHAPXICT » 10.02.2020, 23:08

vovangarm писал(а):А по второму моему вопросу есть соображения? :)
По второму вопросу сюда и дальше по теме смотрите.
P.S. Не заметил сразу ссылку на поток. (Таких вещателей нужно забивать мухобойкой до смерти)
Media Library it's bad - explorer it's good!
AHAPXICT M
Гуру
Аватара
Возраст: 49
Откуда: Киев
Репутация: 231
С нами: 6 лет 10 месяцев

Сообщение #2738 vovangarm » 11.02.2020, 14:59

AHAPXICT писал(а):Таких вещателей нужно забивать мухобойкой до смерти
Аминь. При чем у них на сайте нет отображения метаданных с этого потока - почему оно там в таком виде, загадка... Какая-то недоконфигуренный стриминговый сервис.

SJIS HTTP Patch не помогает, т.к. с кодировкой символов в потоке всё ок - они приходят латиницей в виде HTML кодов. Какое-то время не мог понять, почему в сборке ув. MC WEB работает конвертация (не всех) символов.... пока не наткнулся на содержимое одного из инфобоксов с ворохом конструкций вида

Код: Выделить всё
$upper($replace(%artist%,,,&#1072;,а,&#1073;,б,&#1074;,в,&#1075;,г,&#10..............0;,Ю,&#1071;,Я,&#1068;,Ь,&#1067;,Ы,&#8470;,№)) $char(9679) ])"$replace(%title%,,,&#1072;,а,&#10.............................90;,т,&#1091;,у,&#1092;,ф,&#1093;,х,&#1094;,ц,&#1095;,
И т.д...

I mean... it's ugly, but if it works, it works!

Поковыряю скрипты из сборки ЛУРа, мне много не надо, инфо панель, думаю, справлюсь. Дичь конечно этот скриптовый язык :biggrin: нет, что бы на баше писать или пайтоне :toothless:

Премного благодарен за направление, AHAPXICT!

P.S. Тот поток и не светится у них, как предназначенный для плеера... Просто через сайт слушать не так удобно, как через любимый проигрыватель, а выдрать ссылку на поток из страницы не так уж сложно :)
vovangarm
Новичок
Репутация: 0
С нами: 7 месяцев 19 дней

Сообщение #2739 MC Web » 11.02.2020, 15:39

vovangarm писал(а):Какое-то время не мог понять, почему в сборке ув. MC WEB работает конвертация (не всех) символов...
Делал конвертацию кириллицы для русского языка. Для других языков на кириллице (украинский, белорусский и т.д.) необходимо добавить в скрипт конвертацию недостающих букв.
MC Web
Гуру
Аватара
Репутация: 214
С нами: 7 лет 1 месяц

Сообщение #2740 vovangarm » 11.02.2020, 15:55

Да, про недостяющие я долго не думал.

Дольше получается думать как запилить это же преобразование внутри JS скрипта. Походу тут синтакис не принимает $replace опаратор :biggrin:

Ну, пока рабочий день с пользой проходит :biggrin: пороемся в доках...
vovangarm
Новичок
Репутация: 0
С нами: 7 месяцев 19 дней

Пред.След.

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