JSplitter v2.1.6.3 / v1.5.10.2 [25.08.2018]

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

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

Сообщение #1 LUR » 21.03.2018, 06:06

Плагин представляет собой панель, совмещающую функциональность сплиттера (контейнера для панелей других плагинов) и хоста скриптов JavaScript.

Особенности функционала:

1. Панели добавляются в сплиттер в произвольном порядке, где с ними можно работать как с обычными окнами Windows, а именно: перемещать, изменять их размер, сворачивать, разворачивать, закрывать. Т.е. при работе с плагином foobar2000 превращается в приложение с MDI интерфейсом (Multi Document Interface). Для точного позиционирования панелей предусмотрено отображение координат и их редактирование "на лету" в заголовке окна панели (полезно при дизайне интерфейса сборки). Также имеется возможность настраивать цвета и шрифт заголовка окон панелей.

1.PNG


2. Поддерживается управление размещением панелей в сплиттере через стандартный "размещатель" Columns UI.
3. В основе хоста скриптов лежат JScript Panel / WSH Panel Mod, соответственно имеет все возможности данных панелей + дополнительные расширения API, касающиеся сплиттера.
4. Поддерживается управление панелями в сплиттере из скриптов. Возможно программно перемещать, скрывать, изменять размер панелей.
5. Имеется специальное API для быстрого создания кнопок в корне панели.

Итог: по своей задумке функционала повторяет Mega Panel Splitter, но с приятными дополнениями в виде ручного управления перемещением панелей и простого API для создания кнопок. Ну а еще может кому-то просто понравится использовать foobar2000 в виде MDI приложения, кто знает.

Дисклеймер: Функциональность сплиттера работает ТОЛЬКО в COLUMNS UI. В DUI данный плагин превращается в обычный JScript Panel / WSH Panel Mod.

СКАЧАТЬ JSplitter v2.1.6.3 (Версия, основанная на JScript Panel v2.1.6)
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ
ЗЕРКАЛО
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ

СКАЧАТЬ JSplitter v1.5.10.2 (Версия, основанная на WSH Panel Mod v1.5.10)
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ
ЗЕРКАЛО
АНГЛИЙСКАЯ ВЕРСИЯ
РУССКАЯ ВЕРСИЯ

Краткое руководство
Для добавления панелей в сплиттер можно воспользоваться 2-мя способами:

1. С помощью контекстного меню панели плагина:

2.PNG
2.PNG (7.04 КБ) Просмотров: 7685


2. С помощью стандартного размещателя Columns UI:

4.PNG


3. С помощью списка панелей, вызываемого из окна конфигурации скрипта. Список панелей можно также использовать для добавления, удаления, переупорядочивания панелей, а также изменения их положения и размеров вручную (двойной щелчок по соответствующему полю):

Снимок.PNG


Все добавляемые панели можно вручную перемещать, изменять их размер, сворачивать, разворачивать, закрывать. У каждого окна в заголовке имеется меню для настройки некоторых опций:

3.PNG


ВНИМАНИЕ! Порядок размещения панелей в сплиттере зависит от глубины их визуального расположения. Самое верхнее окно будет последним в списке. Если вы активируете мышкой какую-либо панель, она переместится в конец списка. Учитываете это при использовании функции GetPanelByIndex (см. ниже).

Show caption - включает/отключает отображение обрамления (бордюра) окна панели
Locked - заблокировать панель. С установленной галочкой окно не реагирует на попытки переместить/изменить/закрыть окно.
Show coords - отобразить координаты. В заголовке окна будут отображены координаты окна, которые будут обновляться по мере перемещения/изменения размера окна.
Support pseudo transparency - некоторым окнам необходима поддержка "прозрачности". С включенной опцией плагин будет заменять фон окна панели на содержимое корневого окна плагина. Т.е. например все, что нарисовано в скрипте с помощью on_paint(gr) будет скопировано в окно.

В режиме отображения координат можно вводить необходимые координаты вручную кликнув по нужной координате или изменить название панели:

7.PNG


Настройки внешнего вида окон панелей расположены здесь:

8.png


Show tools menu for panels' caption - включает/отключает меню для заголовка окон панелей.
Move panels with middle button - позволяет перемещать панели при помощи средней кнопки мыши. Полезно когда бордюр окна скрыт (меню Show caption).
Align panels to edges of each other when dragging - выравнивать панели по краям друг друга при перетаскивании окошек. Полезно при построении интерфейса сборки, где панели должны быть расположены плотно друг к другу.
Show scrollbars for out-of-view panels - экспериментальная функция показа полос прокрутки, если панели выходят из зоны видимости. Прокручиваются только панели, содержимое отрисованного окна не меняется и не скроллится.
Hide panels on close - скрывать окна вместо их закрытия. Полезно для временного скрытия панели с помощью кнопки закрытия окна. Вернуть обратно окна можно в размещателе Columns UI сняв галочку Hidden с панели:

6.PNG



Программный интерфейс
Так как API WSH Panel Mod 1.5.10 не менялся, то он доступен как обычно. Документация к плагину прилагается. Плюс к этому доступны следующие дополнения для объекта window:

window.GetPanel(caption) - получить объект для доступа к панели по тексту заголовка. Будет возвращена первая панель, совпавшая по тексту с аргументом. Текст панели указывается в заголовке. По умолчанию он имеет значение имени плагина панели, но его можно изменить как напрямую в заголовке окна (Show coords -> Click in caption text), так и в размещателе Columns UI (Use custom title)
window.GetPanelByIndex(index) - получить объект для доступа к панели по индексу. Вообще порядок изначально тот, в котором добавляются панели, но так же порядок можно увидеть в размещателе Columns UI, там же его и изменить.
window.CreateButton(x, y, images, hover_images) - создать кнопку в сплиттере. Кнопка будет создана в корне окна и будет размещена по координатам (x, y). Также функции передаются изображения для задания внешнего вида кнопки. Собственно от количества изображений images, переданных функции, будет зависеть количество состояний, которые может принимать кнопка. hover_images - изображения кнопки, отображающиеся при наведении курсора мыши. Функция достаточно гибкая для создания различного вида кнопок, например:
var path = fb.FoobarPath + "themes\\lur\\black\\bio.png";
var hpath = fb.FoobarPath + "themes\\lur\\black\\bio_on.png";
var a = window.CreateButton(0, 0, path, hpath); - создает обычную кнопку с картинкой bio.png, которая меняется на bio_on.png при наведении курсора мыши
var b = window.CreateButton(0, 0, [path, hpath], null); - создает чекбокс-кнопку. Обычное состояние - bio.png, нажатое (галочка установлена) - bio_on.png. Обратите внимание, что изображения для наведения курсора отсутствуют. Обычно чекбоксам они и не нужны, но можно их установить при желании.
var c = window.CreateButton(0, 0, [path1, path2, path3], [path1_on, path2_on, path3_on]); - можно создать кнопку с тремя (и более) состояниями. Они будут циклически переключаться при нажатии. Текущее состояние кнопки можно будет получить с помощью свойства кнопки State (см. ниже).
Также можно создать группу радио-кнопок (взаимоисключающих) с помощью следующей функции:
window.RadioButtons(buttons) - создает группу радио-кнопок. Принимает в качестве аргумента массив кнопок. Каждая кнопка должна иметь не менее двух состояний, иначе функция свалится. Пример:
var a = window.CreateButton(0, 0, [path, hpath], null);
var b = window.CreateButton(30, 0, [path, hpath], null);
window.RadioButtons([a, b]);
Теперь при нажатии на одну кнопку (состояние 1), другая будет "отключаться" (переходить в состояние 0) и наоборот.
window.GetButton(id) - получить кнопку по значению ее идентификатора (Button.ID)
window.RemoveButton(button) - удаляет кнопку
window.HandOnButtons - переключает курсор мыши для всех кнопок либо на руку, либо на стрелку. Данное свойство также действует на все создаваемые впоследствии кнопки. У каждой кнопки можно это свойство менять индивидуально (см. ниже).

Объекты, получаемые при помощи функций, указанных выше, имеют следующие свойства и методы:

ПАНЕЛИ (GetPanel, GetPanelByIndex)
Свойства:
(readonly) String Name;
(read, write) String Text;
(read, write) boolean Hidden;
(read, write) boolean Locked;
(read, write) boolean ShowCaption;
(read, write) boolean SupportPseudoTransparency;
(read, write) int X;
(read, write) int Y;
(read, write) int Width;
(read, write) int Height;
(read, write) boolean TopMost;
(read, write) boolean EraseBackground;
Методы:
void Show(show = true);
void Move(x, y, width, height, repaintParent = false);

КНОПКИ (CreateButton, GetButton)
Свойства:
(readonly) ushort ID;
(read, write) int X;
(read, write) int Y;
(read, write) int Width;
(read, write) int Height;
(read, write) boolean Hidden;
(read, write) boolean HandOnHover;
(writeonly) Function Click;
(read, write) uint State;
Методы:
void Show(show = true);
void Move(x, y);
void Resize(width, height);

Назначение свойств и методов объектов довольно прозрачно. При назначении ширины или высоты кнопки в ноль, ширина и высота автоматически высчитываются (как и просто при создании кнопки) из максимальной ширины и высоты изображений. Отдельного упоминания заслуживает обработка нажатий кнопок. Она осуществляется 2-мя
путями:

1. При помощи задания свойства Click объекта кнопки:
var a = window.CreateButton(0, 0, [path, hpath], null);
a.Click = function() { do_something(); }

2. При помощи специального callback'a, который вызывается при нажатии ВСЕХ кнопок, созданных с помощью window.CreateButton:
function on_button_click(id) - принимает идентификатор кнопки, который можно получить через свойство кнопки ID.
switch(id) {
case a.ID:
do_something();
break;
}


ПРИМЕЧАНИЕ: В отличие от панелей, существующих вне зависимости от скрипта, кнопки создаются только программно с помощью скрипта и всегда уничтожаются при выгрузке скрипта.


Пример конфигурации
Распаковать в папку с чистым портативным фубаром.
СКАЧАТЬ / ЗЕРКАЛО

Пример от zeremy

История версий
Версия 2.1.6.3 / 1.5.10.2 [25.08.2018]
● Улучшена производительность прорисовки панелей: устранено мерцание за счет отключения прорисовки фона панели операционной системой.
● API: добавлено свойство EraseBackground для панелей, указывающее позволять ли операционной системе отрисовывать фон панели. Предназначено для панелей, которые не могут отобразить свой фон самостоятельно. По умолчанию свойство равно false для всех панелей кроме следующих панелей Columns UI: Buttons, Filter Search, Menu, Seekbar, Volume.

Версия 2.1.6.2 [10.08.2018]
● Исправлена работоспособность конфигурации JSplitter в Columns UI Layout (кнопка Configure)
● Мелкие улучшения Panel list
● Убран раздел статистики JScript Panel из свойств трека

Версия 2.1.6.1 [03.08.2018]
● Порядок размещения панелей в сплиттере теперь привязан к глубине их расположения. Самое верхнее окно - последнее в списке.
● Добавлено свойство TopMost для объекта панели. Установка в true переносит панель на самый верх.
● Теперь изображения на кнопках масштабируются при изменении размера кнопок.
● Исправлено падение обработчика Click для кнопок
● Создано окно управления списком панелей для просмотра их размеров и редактирования всех данных на месте. Доступ: правая кнопка мыши на сплиттере -> Изменить скрипт... -> Панели.

Версия 2.1.6.0 [30.07.2018]
● Версия, основанная на JScrpt Panel 2.1.6

Версия 1.5.10.1 [24.05.2018]
● Слегка уменьшено мерцание при перерисовке панелей

Версия 2.1.4.1 [18.05.2018]
● Исправлена ошибка "Load Scintilla failed."

Версия 2.1.4 [17.05.2018]
● Версия, основанная на JScrpt Panel 2.1.4

Версия 1.0.4 [28.03.2018]
● Исправлено: в Windows XP свойства fb.FoobarPath, fb.ProfilePath возвращали пустую строку.
● Изменение API: теперь window.GetPanel принимает в качестве аргумента текст заголовка панели, window.GetPanelByIndex - индекс панели

Версия 1.0.3 [22.03.2018]
● Исправление ошибок функционала выравнивания панелей

Версия 1.0.2 [22.03.2018]
● Исправление ошибок функционала выравнивания панелей

Версия 1.0.1 [21.03.2018]
● Добавлено выравнивание/прилипание панелей по краям друг друга, а также к границам окна самого плагина при перетаскивании (есть опция в настройках)

Версия 1.0 [20.03.2018]
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев


Сообщение #21 MC Web » 21.03.2018, 23:40

LUR, было бы замечательно, если будет еще и выбор: какую не менять (по W или H), а какую растягивать (по W или H).
MC Web
Мастер
Аватара
Репутация: 140
С нами: 5 лет

Сообщение #22 LUR » 21.03.2018, 23:43

MC Web, идея ясна. Пометил на будущее, может и реализую, но на данный момент не вижу надобности, да и времени нет.

Версия 1.0.3 [22.03.2018]
● Исправление ошибок функционала выравнивания панелей
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Сообщение #23 kgena_ua » 22.03.2018, 11:56

LUR.
Панель (пока не пробовал) должна обладать большим потенциалом.
Тут реализовано то, что было в MPS, только доведено до ума и плюс новые возможности. Первое, что приходит на ум, это полная совместимость с VSH панелями с возможностью нормально (я так думаю) передавать данные из одной панели в другую, и прощай RefreshPSS() :smile:.
Вопрос такой, как JSplitter "работает" с "прозрачными" панелями, не появляются, например, артефакты при перемещении панели.
Еще вопрос.
- будет-ли предусмотрен пункт: "скрыть заголовок окна", "без рамки" - есть;
- "window.GetPanel(index) - получить объект для доступа к панели по индексу". Есть ли возможность (в будущем) указывать не только индекс панели, а наименование панели, например: window.GetPanel(Playlist switcher).
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 422
С нами: 5 лет 5 месяцев

Сообщение #24 Aliado_71 » 22.03.2018, 12:50

Удобная панель, довольно быстро можно собрать простенький конфиг. Большой минус это отсутствие масштабирования при разворачивании в полный экран.
Вложения
2018-03-22_114508.jpg
Aliado_71 M
Мастер
Аватара
Откуда: DON.UA
Репутация: 111
С нами: 3 года 6 месяцев

Сообщение #25 kgena_ua » 22.03.2018, 12:59

Aliado_71 писал(а):отсутствие масштабирования при разворачивании в полный экран
А если привязать координаыт панелей к WW и WH:
Код: Выделить всё
void Move(x, y, width, height, repaintParent = false);
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 422
С нами: 5 лет 5 месяцев

Сообщение #26 seriousstas » 22.03.2018, 13:10

LUR
Вообще была мысль взять за основу JScript Panel (и я уже пробовал его в этом качестве, в последней версии, вроде все работает), но вижу много недовольных им. Может быть потом.
Да нет недовольных - есть те, кому сложно одну букву поменять или запятую убрать для совместимости со старыми скриптами ..
Все новые и современные скрипты на JScript Panel,
основна ценность этого сплиттера была-бы общение с другими скриптами через (размещая в главном окне кнопки для управления) :
/viewtopic.php?p=60106#p60106
Код: Выделить всё
JPanel window.NotifyOthers >> JPanel on_notify_data(name, data)
Если оставаться на 1.5.10 - то теряется весь смысл..
Новая JScript Panel на новом движке - за ним будущее (я тестировал на больших скриптах - он работает быстрее 100%) :
https://en.wikipedia.org/wiki/Chakra_(JScript_engine)
Последний раз редактировалось seriousstas 22.03.2018, 13:19, всего редактировалось 1 раз.
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 96
С нами: 3 года 7 месяцев

Сообщение #27 kgena_ua » 22.03.2018, 13:19

seriousstas, а что разве нет:

JSplitter window.NotifyOthers >> WSH on_notify_data(name, data)
и
WSH window.NotifyOthers >> JSplitter on_notify_data(name, data)
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 54
Откуда: Украина, Днепр
Репутация: 422
С нами: 5 лет 5 месяцев

Сообщение #28 LUR » 22.03.2018, 13:20

kgena_ua писал(а):Еще вопрос.
- будет-ли предусмотрен пункт: "скрыть заголовок окна", "без рамки" - есть;
- "window.GetPanel(index) - получить объект для доступа к панели по индексу". Есть ли возможность (в будущем) указывать не только индекс панели, а наименование панели, например: window.GetPanel(Playlist switcher).
Все это уже есть.

Aliado_71 писал(а):Большой минус это отсутствие масштабирования при разворачивании в полный экран
kgena_ua писал(а):А если привязать координаыт панелей к WW и WH:
Именно так это и работает на данный момент

seriousstas писал(а):Если оставаться на 1.5.10 - то теряется весь смысл..
Как бы я не собираюсь прямо вот оставаться на 1.5.10. Панель выбрана просто как устоявшийся стандарт, никто не мешает впоследствии перенести проект на JPanel.

seriousstas писал(а):JPanel window.NotifyOthers >> JPanel on_notify_data(name, data)
Тоже интересовал данный вопрос, пока не смотрел.
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Сообщение #29 seriousstas » 22.03.2018, 13:24

kgena_ua
А это зачем ?
Нужно ведь :
JSplitter window.NotifyOthers >> JPanel on_notify_data(name, data)
и
JPanel window.NotifyOthers >> JSplitter on_notify_data(name, data)

WSH скрипты переделать под JPanel - дело пары минут, а вот наоборот не получится ..

никто не мешает впоследствии перенести проект на JPanel.
Хорошая инфо :hi:
seriousstas
Мастер
Откуда: Украина , Ивано-Франковск
Репутация: 96
С нами: 3 года 7 месяцев

Сообщение #30 MC Web » 22.03.2018, 14:19

seriousstas писал(а):Да нет недовольных
Да есть.
seriousstas писал(а):есть те, кому сложно одну букву поменять или запятую убрать для совместимости со старыми скриптами
Ответь тогда, для чего делаются такого рода изменения? Часть вырезается, часть переименовывается - непонятно.
Хочешь улучшить - добавь свои новые, зачем старые трогать?
Совместимость - только foobar2000 v1.4 + и ОС уже не знаю какая нужна. Короче последние версии foo_jscript_panel
- это на любителя и энтузиаста, гоняющегося за "новинками".
MC Web
Мастер
Аватара
Репутация: 140
С нами: 5 лет

Сообщение #31 LUR » 22.03.2018, 16:41

Короче глянул, не получится реализовать общение между разными панелями. Единственная и фатальная беда в том, что выделенная память из одной dll не может быть освобождена в другой, а это основной механизм общения, и если что-либо пытаться изменить, то менять надо в исходниках ВСЕХ панелей, что конечно не вариант в принципе. Отсутствие общения JSplitter с WSH Panel Mod не вижу проблемой, т.к. последнюю можно легко заменить на JSplitter, ибо совместимость по скриптам полная.

MC Web писал(а):Часть вырезается, часть переименовывается - непонятно
Вот тоже заметил, что есть такой тип программистов, которым срать на совместимость, прогибайтесь под меня. Например, Apple чем-то похожи по своим действиям в отношении к разработчикам ПО под их ось. Но если хотя бы там можно понять порой, то в случае марка обычная влюбленность в вылизанный, вычищенный код.

Добавлено спустя 7 минут 46 секунд:
Вообще можно сделать ветку проекта типа JSplitter 2.х.х с основой JScript Panel. Типо для страждущих по новинкам. Просто на данный момент JSplitter способен работать даже под XP, хотя конечно я слабо понимаю необходимость в использовании этой оси на данный момент, учитывая, что в следующем году семерке стукнет 10 лет, Карл!
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Сообщение #32 MC Web » 22.03.2018, 18:02

LUR писал(а):Короче глянул, не получится реализовать общение между разными панелями. Единственная и фатальная беда в том, что выделенная память из одной dll не может быть освобождена в другой, а это основной механизм общения, и если что-либо пытаться изменить, то менять надо в исходниках ВСЕХ панелей,
Спорить не буду - не программист. Но интересует такой вопрос, с помощью скриптов то меняются размеры. Тогда напрашивается следующее, а с помощью скрипта, который будет входить в состав компонента, это действие можно произвести. Т.е. автоматизировать этот процесс, а не писать самостоятельный скрипт.
MC Web
Мастер
Аватара
Репутация: 140
С нами: 5 лет

Сообщение #33 LUR » 22.03.2018, 18:07

MC Web писал(а):Т.е. автоматизировать этот процесс, а не писать самостоятельный скрипт.
А вы не подумали, что вариантов размещения и автоматического изменения размеров панелей бесконечное множество? Вы хотите, чтобы я генерировал скрипт для этого всего дела? Даже если я приду к универсальному решению, тогда уже естественно лучше запрограммировать это внутри компонента, зачем скрипт то городить?
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Сообщение #34 MC Web » 22.03.2018, 18:16

LUR, сейчас попробую обрисовать, как я это представляю...

Добавлено спустя 15 минут 49 секунд:
Имеем в заголовке координаты, например:
первая панель X=0 Y=0 W=500 H=500
вторая панель X=500 Y=0 W=500 H=500

Если будет возможность пользователю самому решать, какую панель менять в размерах и координатах, а какую нет с помощью переключателей рядом с данными координатами (покажу в виде значка ●):
первая панель: X=0 ● Авто | Y=0 ● Авто | W=500 ● Авто | H=500 ● Авто
вторая панель: X=500 ● Авто | Y=0 ● Авто | W=500 ● Авто | H=500 ● Авто

Думаю смысл понятен...
MC Web
Мастер
Аватара
Репутация: 140
С нами: 5 лет

Сообщение #35 LUR » 22.03.2018, 18:36

MC Web писал(а):Думаю смысл понятен...
Так вы же ничего нового не сказали. Вы хотите автоматики, хотя плагин написан больше для программирования или использования в качестве менеджера окон. Еще раз повторю, я подумаю насчет автоматики как отдельной опции.
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Сообщение #36 MC Web » 22.03.2018, 18:44

LUR, в данном случае было бы не совсем программирование, т.е. можно обойтись без написания скриптов для панелей при создании своей темы. С данной задачей справился бы даже новичок.
MC Web
Мастер
Аватара
Репутация: 140
С нами: 5 лет

Сообщение #37 mgz » 23.03.2018, 02:01

LUR писал(а):Короче глянул, не получится реализовать общение между разными панелями.
Внешний кэш ?

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

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

mgz писал(а):Внешний кэш ?
Чо?)
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Сообщение #39 mgz » 23.03.2018, 02:05

LUR, общение:
1й пишет - 2-й читает

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

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

mgz писал(а):Пишите в кэш... читайте кэш.
Я понял. Как заставим читать "кэш" панели WSH Panel Mod и JScript Panel ? :wink:
LUR M
Автор темы, Модератор
Аватара
Возраст: 35
Откуда: Минск
Репутация: 228
С нами: 5 лет 9 месяцев

Пред.След.

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