AIMP4: Skin Engine – пользовательские провайдеры. Часть 1

Сегодня предлагаю вам рассмотреть изменения, сделанные в пользовательских провайдерах.

Прошлые статьи по теме:

  1. AIMP4: Skin Engine
  2. AIMP4: Skin Engine – элементы управления. Часть 1
  3. AIMP4: Skin Engine – элементы управления. Часть 2
  4. AIMP4: Skin Engine – пользовательские локализации
  5. AIMP4: Skin Engine – графика
  6. AIMP4: Skin Engine – оптимизации

Логические операторы-провайдеры

LogicalOperatorCommutator

Список точек входа увеличен до пяти:

LogicalProviderCommutator

Конечно, решать задачи, требующие более 2-х точек подключения, можно было и раньше, но, согласитесь, так намного удобнее.

LogicalOperatorCounter

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

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

 

LogicalOperatorTimer

Новый тип логического оператора – таймер. Таймер вызывает прилинкованное к точке доступа “Action” действие через заданный промежуток времени. Так же как и элемент управления TASEAnimator, оператор имеет точку доступа “Accessibility”, которая позволяет включать / выключать таймер в зависимости от каких-либо факторов.

LogicalOperatorDelayer

Еще один новый тип логического оператора. Как понятно из названия, оператор позволяет организовать задержку передачи значения от одной точки доступа к другой. На текущий момент delayer работает только с целочисленными типами данных (Integer и Boolean).

 

Строковые операторы-провайдеры

StringOperatorConcatenator

Этот тип пользовательского провайдера позволяет склеить несколько текстовых значений или числовых, представленных как текст, и вернуть полученную строку в качестве результата. Как и у LogicalOperatorCommutator, на вход можно подать до пяти сигналов:

LogicalProviderCommutator

В отличии от логических операторов-провайдеров, в текстовом вам доступен другой набор функций – функции для работы с текстовыми данными. Так же, обратите внимание, что, несмотря на пять входов, в вашем распоряжении есть 10 переменных: 5 – Value и 5 – TextValue:

StringOperatorConcatenator

Отличие Value от TextValue весьма простое. Рассмотрим на примере: точка доступа Duration провайдера prvPlayingFileInfo может выдавать данные сразу в двух форматах – числовом и текстовом:

TextValue

Причем текстовое значение времени будет уже форматированным, а не простым преобразованием числа в текст. Так вот, в этой ситуации Value будет обращаться к числовым данным, а TextValue – к текстовым. Все просто.

StringOperatorConcatenatorNotificator

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

В прошлом вы наверняка видели, что если в плеере покрутить громкость, то в бегущей строке на пару секунд покажется текущее ее значение? Так вот, в этом и заключается работа нотификатора – он получает уведомления от плеера и на пару секунд выдает их в качестве результата своей работы, после чего возвращается к штатной работе.

OperatorNotificator был специально введен для обеспечения возможности отображения системных уведомлениях в элементах, отличных от TASERunningLine. Таким образом, теперь скин не обязан иметь бегущую строку только из-за того, что у нее есть возможность отображения уведомлений.

One thought on “AIMP4: Skin Engine – пользовательские провайдеры. Часть 1

  1. Tarik

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

    LogicalOperatorTimer и LogicalOperatorDelayer – это круто!

Leave a Reply