JSplitter v1.0.4 [28.03.2018]

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

Описание: Все о плагинах, компонентах, расширениях

Сообщение #41 mgz » 23.03.2018, 02:10

LUR, тут, сударь, Вам нужно будет подумать. Я этими панелями не обмазываюсь, просто из работы совет дал.

Да хоть самый медленный способ - через файл.
RME HDSP 9632 > DynAudio BM5A II / Audio-Technica ATH-AD900
Nexus 5 > Avantree Clipper > Sennheiser IE 4
mgz M
Гуру
Аватара
Возраст: 38
Откуда: Украина, Киев
Репутация: 72
С нами: 11 лет 11 месяцев

Сообщение #42 LUR » 23.03.2018, 02:14

mgz писал(а):просто из работы совет дал.
Вы, сударь, дали совет, не вникая в то, о чем здесь вообще речь велась. Речь шла о том, чтобы заставить общаться панели разных плагинов (WSH Panel Mod, JScript Panel, JSplitter) через механизм NotifyOthers->on_notify_data. Все остальное - на откуп писателям скриптов под эти панели, если кому надо, пусть реализует и кэш и все что хочешь.
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #43 mgz » 23.03.2018, 02:16

LUR писал(а):не вникая в то, о чем здесь вообще речь велась
Естественно, я даже пометочку об этом сделал...

Добавлено спустя 23 минуты 44 секунды:
JScript Panel v2
Save settings on a per panel basis. You can also save/load settings from .ini files or write your own functions to read and write plain text/json files/etc.
Ну вот. Умеет.
RME HDSP 9632 > DynAudio BM5A II / Audio-Technica ATH-AD900
Nexus 5 > Avantree Clipper > Sennheiser IE 4
mgz M
Гуру
Аватара
Возраст: 38
Откуда: Украина, Киев
Репутация: 72
С нами: 11 лет 11 месяцев

Сообщение #44 LUR » 23.03.2018, 02:44

mgz писал(а):Ну вот. Умеет.
И что? Каким это боком решает проблему общения панелей через NotifyOthers->on_notify_data ?
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #45 LUR » 25.03.2018, 05:24

Сделал достаточно простой пример конфигурации на основе урезанной версии своей сборки.

СКАЧАТЬ / ЗЕРКАЛО

Распаковать в папку с чистым портативным фубаром.
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #46 kgena_ua » 28.03.2018, 13:30

LUR, приветствую.
Может я что-то не учел, но по-моему не работает ReadINI();
Еще не могу вставить изображение: DrawImage();
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Сообщение #47 LUR » 28.03.2018, 16:06

kgena_ua, да работает и то и другое, не знаю.

Вот создал инишник, прописал в нем путь к картинке, все отобразилось.

Код: Выделить всё
var g_backcolor = 0xFFAAAAAA;

var path = utils.ReadINI("c:\\Users\\LUR\\Downloads\\1.ini", "Test", "ImagePath");
var img = gdi.Image(path);

function on_paint(gr) {
    gr.FillSolidRect(0, 0, ww, wh, g_backcolor);
    gr.DrawImage(img, 0, 0, img.Width, img.Height, 0, 0, img.Width, img.Height);
}

Добавлено спустя 1 минуту 47 секунд:
Я же говорю, в самом WSH Panel Mod ничего не менял, должны работать все функции.
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #48 kgena_ua » 28.03.2018, 17:07

LUR,
у меня, получается, не понимает fb.ProfilePath (и fb.FoobarPath). Если полностью указать путь "e:\\Foobar\\file.ini", тогда все нормально.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Сообщение #49 LUR » 28.03.2018, 17:16

kgena_ua, проверил работает.

Код: Выделить всё
var g_backcolor = 0xFFAAAAAA;

var path = utils.ReadINI(fb.ProfilePath + "1.ini", "Test", "ImagePath");
var img = gdi.Image(path);

function on_paint(gr) {
    gr.FillSolidRect(0, 0, ww, wh, g_backcolor);
    gr.DrawImage(img, 0, 0, img.Width, img.Height, 0, 0, img.Width, img.Height);
}
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #50 kgena_ua » 28.03.2018, 17:23

LUR, может меня просто "переклинило".

всегда писал:
var set_path = fb.FoobarPath + "\\maybe\\settings\\"; - не работает.

А если написать
var set_path = fb.FoobarPath + "maybe\\settings\\";
или
var set_path = fb.FoobarPath + ".\\maybe\\settings\\"; - то работает.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Сообщение #51 LUR » 28.03.2018, 17:26

kgena_ua писал(а):всегда писал:
var set_path = fb.FoobarPath + "\\maybe\\settings\\"; - не работает.
Ну не знаю у меня, к примеру такое работает тоже:
Код: Выделить всё
fb.ProfilePath + "\\1.ini"

Добавлено спустя 4 минуты 39 секунд:
Проверил на всякий случай в чистом WSH Panel Mod 1.5.6, работает такое:
Код: Выделить всё
fb.FoobarPath + "\\1.ini"
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #52 kgena_ua » 28.03.2018, 17:34

Так я не за WSH, я о jsplitter
Безымянный.png
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Сообщение #53 LUR » 28.03.2018, 17:35

kgena_ua писал(а):Так я не за WSH, я о jsplitter
я имел в виду, что и там и там работает

Добавлено спустя 35 секунд:
Дайте полный код скрипта, щас найдем в чем дело
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #54 kgena_ua » 28.03.2018, 17:42

Я просто начал разбираться....
Код простой...
Код: Выделить всё
function RGB(r, g, b) {   
   return (0xff000000 | (r << 16) | (g << 8) | (b));
}   

var font = gdi.Font("Areal",11,1);   
var ww, wh;   

DT_LEFT = 0x00000000;   

//var set_path = fb.ProfilePath + "\\maybe\\settings\\";
var set_path = fb.FoobarPath + "maybe\\settings\\";

var panel = utils.ReadINI( set_path + "settings.ini", "panel", "panel");
if (!panel) panel = 0;


function on_paint(gr) {      
   gr.FillSolidRect(0, 0, ww, wh, RGB(20,31,40));   
   gr.GdiDrawText( set_path, font, RGB(250,250,250), 0, 10, ww, 40, DT_LEFT );   
   gr.GdiDrawText( panel, font, RGB(250,250,250), 0, 30, ww, 40, DT_LEFT );   
}      

function on_size() {   
    ww = window.Width;      
    wh = window.Height;   
}   
Может это из-за того, что я под XP.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Сообщение #55 LUR » 28.03.2018, 18:00

kgena_ua писал(а):Может это из-за того, что я под XP.
Все, теперь вижу. Потверждаю, имеет значение. Проверил тока что на виртуалке, действительно под XP не работают свойства fb.FoobarPath и fb.ProfilePath. Черт бы побрал этого Марка и там успел наследить. Как думаете, откатиться на 1.5.6 ?)
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #56 kgena_ua » 28.03.2018, 18:12

LUR писал(а):Как думаете, откатиться на 1.5.6
Да черт его знает. Было-бы удобно, например, перевести скрипты на версию jscript_panel 2.0. и общаться через notify. Но не хочется переходить на jscript_panel 2.0. и выше. Тогда есть смысл jsplitter на 1.5.6.
Пусть все высказываются.

Еще вопрос.
Ругается
window.GetPanel("Album list");
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Сообщение #57 LUR » 28.03.2018, 18:14

kgena_ua писал(а):Ругается
window.GetPanel("Album list");
Правильно ругается. Нужно число, а не имя. Имя в другой функции задается: window.GetPanelByText
Внимательнее читайте документацию.
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #58 MC Web » 28.03.2018, 18:15

LUR писал(а):Черт бы побрал этого Марка и там успел наследить. Как думаете, откатиться на 1.5.6 ?)
И не сумлевайся... Лучший вариант. :smile:
Для особо озабоченных можно потом отдельную ветку на экспериментальном компоненте.

kgena_ua писал(а):всегда писал:
var set_path = fb.FoobarPath + "\\maybe\\settings\\"; - не работает.
Поправочка, т.к. приходится часто править, в скрипте прописано например:
Код: Выделить всё
var default_img_path_bio = window.GetProperty(" default img path bio", ".\\maybe\\textures\\nocover\\nocover.png");
Последний раз редактировалось MC Web 28.03.2018, 18:18, всего редактировалось 1 раз.
MC Web
Мастер
Аватара
Репутация: 119
С нами: 4 года 7 месяцев

Сообщение #59 LUR » 28.03.2018, 18:15

Хотя можно было бы сделать GetPanel с текстом и GetPanelByIndex с числом)
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 204
С нами: 5 лет 4 месяца

Сообщение #60 kgena_ua » 28.03.2018, 18:23

LUR писал(а):Имя в другой функции задается
не досмотрел.
LUR писал(а):Хотя можно было бы сделать GetPanel с текстом и GetPanelByIndex с числом)
я думаю было-бы удобно - наглядно.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 388
С нами: 5 лет

Пред.След.

Вернуться в Плагины