Skin Engine v3.50

Представляю вашему вниманию новую версию скин движка для AIMP. Итак, что нового нас ждет?

Bindings

Bindings представляет собой новую схему взаимодействия визуальных элементов с функциональной частью программы. Если раньше каждый элемент, будь то кнопка или текстовая метка, представлял собой конкретную функцию / возможность программы, то теперь любой элемент — это визуализатор данных с обратной связью.

Общая схема взаимодействия представлена на рисунке:

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

Провайдер  — это интерфейс к какой-либо функциональной части ядра программы. Провайдер может предоставлять один или более сервисов. Сервис, в свою очередь, является непосредственным источником данных, именно с ним взаимодействует элемент через точки доступа.

Рассмотрим работу новой схемы на примере:

В редакторе скинов добавим новую текстовую метку

Теперь нужно указать, откуда наша текстовая метка будет брать данные для отображения. Попробуем подключить ее к регулятору громкости — пусть показывает текущее значение. Для этого воспользуемся Bindings Editor-ом, и назначим провайдер «prvVolume»  для точки доступа «DisplayValue»:

В качестве источника данных (сервиса) выбираем «Progress» — он предоставляет текущее значение громкости в процентом соотношении (т.е от 0 до 100%)

Теперь сохраняем наши изменения — в текстовой метке засветилось значение «38». Это текущее значение громкости. Настроим наш элемент так, чтобы клик по нему вызывал включение / выключение звука — ровно так же, как это делает кнопка «Mute».

Последний штрих — сделаем отображение данных в текстовой метке более понятным. Воспользуемся шаблоном форматирования отображаемого значения:

Замечание. Если все точки доступа элемента связаны с одноименными сервисами одного провайдера — можно использовать «короткую» связку:

Аналогичным образом мы можем отобразить текущее значение громкости в «цифровой» дисплей (дисплей, отображающий только цифры с помощью текстур).

Какие преимущества дает новый  подход?

  • Подключение разных типов элементов к одному или нескольким провайдерам данных. Грубо говоря, возможность представления данных в графическом (Slider, Progress), текстовом (TextDisplay) и числовом (DigitsDisplay) форматах.
  • Более гибкая настройка поведения визуального элемента в зависимости от данных, получаемых от сервисов провайдера. К примеру, можно сделать так, чтобы элемент был виден только при проигрывании или когда плеер стоит на паузе. Вариантов масса.
  • Все элементы,  за исключением плейлиста ,теперь можно удалять и «клонировать».
  • Создание кнопок и флажков для большего числа функций, которые ранее были доступны только через контекстное меню или посредством горячих клавиш

 Новые возможности элементов

Spectrum Display обзавелся возможностью регулировки шага поднятия столбиков.

CoverArt Display  теперь имеет возможность задать маску для отображаемой картинки. Маска задается четвертым кадром текстуры дисплея, значение ее альфа канала применяется к отображаемой картинке. Например, такая текстура (второй и третий кадры прозрачны)

дает следующий результат

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

Forms. Первое — появилась возможность создания / удаления дополнительных окон

Окно в обязательном порядке должно иметь мастера, это позволяет разграничить зоны их видимости в зависимости от состояния программы  -свернута в трей или нет. Каждое окно можно прикрепить к мастеру, тогда оно будет всюду следовать за мастером. Например, так ведет себя окно эквалайзера.

Управлять состоянием и видимостью окна можно посредством новой системы связки — биндинга.

Второе — каждое окно получило возможность разворачиваться на весь экран (естественно, если лейаут скина окна это позволяет).

Когда?

Новый скин движок войдет в AIMP v3.50, выход бета версии которой запланирован на конец этого года.

Skin Engine v3.50: 21 комментарий

  1. Долматов Алексей (Алекс)

    Очень нравится функционал.

    Но один нюанс не понятен:
    В текстовых метках, в переменной, используется знак %. Обычно, в программном написании используют двойное написание, чтоб отличить переменную от постоянной.
    В данном случае для написания текста «%v» как будет выглядеть строка ввода?
    Предполагаю двойным реализацию вывода через %%

      1. Tarik

        А будет ли работать в таком случае макрос «Volume %v%»(т.е. без пробела перед процентами)? На скрине выше с пробелом, это как-то не привычно, что-ли)

        А еще — что за свойства Tag и PopupMenu?

          1. Долматов Алексей (Алекс)

            Не совсем понял ответ.
            Я для варианта когда нужно вывести символ процент и слитно букву, как в макросе.
            Т.е. если я поставлю %v — будет срабатывать обработка, а чтоб она не срабатывала и процент воспринимался как символ. Ввёл %%v и получил не «%громкость», а «%v»

  2. Dart Kane

    А возможно ли реализовать в AIMP такую же функцию, как в скине Bento на Winamp?
    Суть функции такова:
    скин сворачивается в тоненькую панельну, крепится сверху или снизу, и выставляются параметры «поверх всех окон» и «сверху» (или снизу). После этого эта полоска становится как бы второйнанелькой. Которая ведёт себя как панель задач. Т.е. всегда поверх всех окон и когда окно разворачивается — прилепает к винампу. Вот так выглядит: http://img-fotki.yandex.ru/get/6612/49590622.6/0_90083_df8ba6da_XXL.jpg

    1. Artem Автор записи

      Да, по сравнению с прошлой версией выглядит сложно, но этот подход дает больше возможностей. Однако, вам никто не запрещает работать по старинке — копировать уже имеющиеся элементы и менять у них свойства, не обязательно лесть в настройки биндинга

  3. sergiysatir

    Хотел бы спросить,не знаю ,может немного не в тему,ну все же спрошу.Есть ли обложки,в которых обложки ольбома можно разворачивать на весь экран,как и в визуализации?или для этого нужно самому обложко пробывать создавать,или такой возможности нет в принципе?

      1. sergiysatir

        Ок, спасибо.Тогда буду с нетерпением ждать 3,5 версию!И извиняюсь за ошибки в предыдущем комменте )Прочитал,аж стыдно стало)И плеер у вас кстати классный очень!

Добавить комментарий