iRidium для Bluesound
Набор инструментов для создания интерфейсов управления с использованием драйвера акустических систем Bluesound.
документация обновлена 01.01.2024
Драйвер Bluesound позволяет:
- Работать с устройствами в группе или отдельно,
- Составлять плейлисты и проигрывать радио,
- Управлять плеером,
- Выводить всю доступную информацию об исполнителе, треке, радиостанции.
Пример: Bluesound
Подключение
Драйвер Bluesound работает по HTTP протоколу. Статус онлайн приобретает только во время передачи данных, в остальное время статус всегда офлайн.
Для подключения к аудиосистеме Bluesound, необходимо добавить драйвер в проект с помощью сканера или самостоятельно заполнить параметры драйвера.
Сканирование сети
Сканирование работает только в локальной сети - оно позволяет быстро добавить в проект iRidium все устройства Bluesound. Для этого:
- Создайте новый проект и нажмите клавишу Scan > Scan Bluesound на вкладке Devices ;
- Выберите устройство, которым планируете управлять.
- Если сканер не находит оборудование, то вы можете прописать данные настройки драйвера вручную:
Настройка драйвера
В созданном проекте на вкладке Devices добавьте драйвер Bluesound :

Укажите настройки подключения драйвера:
-
Protocol - TCP;
-
Log Level - уровень логирования;
-
Host - IP-адрес оборудования;
-
Port - порт (по умолчанию 11000) *;
-
Tags - название, предназначенное для поиска драйвера или группы драйверов через поисковую строку.
-
Порт 11000 используется для всех проигрывателей BluOS, за исключением CI580. CI580 имеет четыре узла стримеров в одном шасси, где узел 1 использует порт 11000, узел 2 использует порт 11010, узел 3 использует порт 11020, а узел 4 использует порт 11030. Для команд Input, PlayInput spdif, PlayInput hdmi, PlayInput bluetooth и PlayInput analog укажите значение параметра Index. Параметр отвечает за номер входа на устройстве. Если в устройстве имеется несколько входов данного типа, то потребуется добавить новые команды, а в параметр Index указать их номер.

- Клонирование / удаление команд и фидбэков в драйвере, созданном в версии студии старше 1.3.58, невозможно. При необходимости, воспользоваться этим функционалом вы можете после удаления драйвера из проекта и повторного его добавления.
Commands & Feedbacks
Драйвер объединяет в себе полный набор команд и каналов обратной связи, которые не требуют дополнительной настройки. Список команд и фидбэков формируется при добавлении драйвера, вы не можете изменить, удалить или добавить дополнительную команду или канал обратной связи.
Commands
| Volume | 0 - 100 | Установить звук для текущего устройства. | |
| GroupVolume | 0 -100 | Установить звук для всех устройств в группе. | |
| Mute | Value | Выключить звук для текущего устройства. | |
| MuteGroup | Value | Выключить звук для всех устройств в группе. | |
| Play | Value | Начать проигрывание. | |
| Seek | Value (sec.) | Начать проигрывание с определённого места (в секундах). | |
| Input | "analog", "spdif", "hdmi", "bluetooth" | Начать проигрывание с определённого типа входа. | |
| SelectTrack | Value | номер трека в очереди | Начать проигрывание определённого трека в очереди. воспроизведения. |
| Pause | Value | Приостановить воспроизведение. | |
| Stop | Value | Остановить воспроизведение и перейти к началу трека. | |
| Skip | Value | Перейти к следующему треку. * Если текущий трек был последним в списке - переключение произойдет на первый трек в списке. | |
| Back | Value | Перейти к предыдущему треку. * Если с начала воспроизведения прошло более 4 секунд - произойдёт переключение к началу текущего трека. | |
| Shuffle | Value | Включает режим перемешивания треков в списке воспроизведения. | |
| Repeat | 0 - 2 | Управление режимами повтора: 0 - повтор всего списка воспроизведения, 1 - повтор текущего трека, 2 - отключить режим повтора. | |
| ExplorerBack | Value | Возврат на шаг назад в Explorer-е. | |
| ExplorerSelect | Value | номер элемента в фидбеке Explorer | Выбор элемента в Explorer-е. |
| ClearQueue | Value | Очистить очередь воспроизведения. | |
| LoadPreset | Value | номер пресета | Начать проигрывание определённого пресета*. |
| PreviousPreset | Value | Начать проигрывание предыдущего пресета* в списке пресетов. | |
| NextPreset | Value | Начать проигрывание следующего пресета* в списке пресетов. | |
| SelectForGrouping | Value | номер в списке плееров (фидбек Players) | Выделить плеер для последующей группировки. * Повторный выбор плеера - снимает выделение. |
| Group | Value | Добавить устройств в группу. Текущий проигрыватель становится хозяином добавленных устройств. | |
| Ungroup | Value | Удалить устройства из группы. | |
| PlayInput_analog | Value | Переключиться на вход analog. | |
| PlayInput_spdif | Value | Переключиться на вход spdif. | |
| PlayInput_hdmi | Value | Переключиться на вход hdmi. | |
| PlayInput_bluetooth | Value | Переключиться на вход bluetooth. |
Feedbacks
| Play | 0 / 1 | Состояние плеера: 1 - проигрывание запущено, 0 - проигрывание не запущено. |
| Pause | 0 / 1 | Состояние плеера: 1 - проигрывание приостановлено, 0 - проигрывание запущено. |
| Stop | 0 / 1 | Состояние плеера: 1 - проигрывание остановлено, 0 - проигрывание запущено. |
| Volume | 0 - 100 | Текущее значение звука. |
| Mute | 0 / 1 | Cостояние "без звука": 1 - звук выключен, 0 - звук включен. |
| Repeat | 0 - 2 | Режим повтора: 0 - повтор всего списка, 1 - повтор текущего трека, 2 - режим повтора выключен. |
| Shuffle | 0 / 1 | Режим shuffle: 1 - shuffle on, 0 - shuffle off. |
| Album | Text | Альбом. |
| Artist | Text | Исполнитель. |
| AlbumArtUrl | Image | Картинка альбома. |
| Track | Text | Название текущего трека. |
| Time | Value (sec.) | Текущее время воспроизведения трека. |
| TimeStr | Text | Текущее время воспроизведения трека. |
| TotalTime | Value (sec.) | Полное время воспроизведения трека. |
| TotalTimeStr | Text | Полное время воспроизведения трека. |
| TimeRemaining | Value (sec.) | Оставшееся время воспроизведения трека. |
| TimeRemainingStr | Text | Оставшееся время воспроизведения трека. |
| TrackNumber | Value | Номер трека в списке воспроизведения. |
| Queue | Text | Плейлист. Список объектов JSON, каждый объект включает поля: "title", "album", "artist". |
| Title1 / 2 / 3 | Text | Используются в качестве текста любого пользовательского интерфейса, отображающего три строки воспроизводимых метаданных (например, Title1 - имя трека, Title2 - имя артиста, Title3 - имя альбома). |
| TwoLineTitle1 / 2 | Text | Используются в качестве текста любого пользовательского интерфейса, отображающего две строки воспроизводимых метаданных (например, TwoLineTitle1 - имя трека и артиста, TwoLineTitle2 - имя альбома). |
| Explorer | Text | Список JSON объектов, выводит папки / плейлисты / сервисы / радиостанции / треки на одноимённый попап. |
| Players | Text | Список JSON объектов, выводит список доступных устройств Bluesound. Каждый JSON объект в списке обладает свойствами: name - имя плеера, selected - выделен ли плеер для группировки, grouped - состоит ли плеер в группе под управлением текущего устройства. |
| GroupName | Text | Имя группы. |
| PlayerName | Text | Имя плеера. |
Настройка команд и фидбеков

Для управления оборудованием настройте команды (Commands) и каналы обратной связи (Feedbacks). Чтобы отправить команду, перетяните ее на графический элемент и укажите значение (Value), которое необходимо отправить. Чтобы отобразить значение с канала обратной связи, перетащите Feedback на графический элемент, и укажите, каким образом вывести значение (Value).
Подробнее о работе с графическими элементами написано в статье "Типы графических элементов".
Создание списков
Некоторые фидбэки драйвера присылают в качестве значений JSON объект:
| Queue.track | "title": "SongName", "album": "Album", "artist": "Artist", "type": "track", "selected": true |
| Explorer.directory | "name": "Favorites", "type": "directory" |
| Explorer.song | "songid": "12345", "albumid": "234", "artistid": "152", "track": 5, "title": "Title", "artist": "Artist", "album": "Album", "time": "123", "type": "track", "selected": false |
| Explorer.playlist | "id": "123", "name": "Name", "tracks": 150, "service": "Deezer", "type": "playlist", "selected": true |
| Explorer.preset | "id": "123-fd-123", "name": "Preset1", "selected": true, "type": "preset" |
| Players.player | "name": "Player", "selected": true, "grouped": true, "type": "player" |
Преобразовать JSON объект в iRidium Studio необходимо с помощью графического элемента Advanced List:
Пример настройки списка Explorer
Список Explorer нужен для вывода папок/плейлистов/треков. А также, для навигации и выбора определённого плейлиста, которые составляются с помощью родного приложения.
-
Для создания списка Explorer, нарисуйте элемент Advanced List.
-
Создайте 3 попапа Templates . Назовите их TplFavorite (для вывода папок Playlists и Favorites ), TplRoot (для вывода содержимого папки Playlists )и TplPlayList (для вывода содержимого папки Favorite ). На каждом из попапов создаются элементы Lable - некие шаблоны, в которые будут выводиться папки, информация о плейлистах, обложки и названия треков.
Пример отрисованных элементов Label для попапа TplFavorite.
3. После создания элементов вернитесь к элементу Advanced List.
4. Перейдите в настройки темплейта, нажав кнопку Template setting .
5. Добавьте попапы с темплейтами. Впишите в строчке Code type , как показано на рисунке.
6. Для настройки темплейта нужно открыть его двойным кликом. Затем добавить туда лейблы. Разберем настройку темплейта TplFavorite . В строке Type - введите favorite, затем добавляем следующие лейблы с нужными токенами: lbl.Name.Text; lbl.Type.Text; select.Value.
После добавления лейблов, пропишите каждому из них значение Value. Для записи в строках Value, нужно кликнуть по строке 3 раза. Value для лейблов: *lbl.Name.Text - title, *lbl.Type.Text - artist, *select.Value - selected.
7. По аналогии настройте лейблы оставшихся темплейтов TplRoot и TplPlayList .
“TplRoot”, введите Directory в поле Type. Создайте лейбел lbl.Name.Text, внесите в поле Value значение name.

TplPlayList , введите playlist в поле Type. Создайте лейблы:
- lbl.Name.Text, внесите в поле Value значение name.
- lblTrackCount - внесите в поле Value значение trackCount.
8. После настройки лейблов и темплейтов, привяжите команду ExplorerSelect и фидбек Explorer на элемент Advanced List.
Для привязки команды, нажмите на элемент (Advanced List), затем в окне Programming нажать на "+" напротив события Press.

Далее, в открывшемся окне выбираем Value from object и осуществляем привязку Select Item > Commands > ExplorerSelect .

Привязка фидбека, нажмите на элемент Advanced List, затем перейдите в Data source (находится возле Template setting). Выбираем Driver > Feedbacks > Explorer . На этом этапе - настройка попапа Explorer завершена!

Пример настройки списка Queue
Список Queue нужен для вывода информации о треках в текущей очереди воспроизведения, а также для выбора определённого трека, из этой самой очереди.
1.Создайте элемент Advanced List. Создайте темплейт TplQueue с кодом type (для вывода информации треков из очереди воспроизведения).
Темплейт имеет следующие лейблы: *lblName, *lblType, *select. 2. Настройте темплейт и лейблы.
В Tpl.Queue , введите track в поле Type. Создайте лейблы:
- lbl.Name, внесите в поле Value значение title;
- lblType- внесите в поле Value значение artist;
- select- внесите в поле Value значение selected.
3. Привяжите при помощи окна Programming (Programming > Press > + ) команду SelectTrack к элементу Advanced List:

Привяжите фидбэк Queue к элементу Advanced List:

Пример настройки списка Players
Список Players нужен для вывода информации о имени плеера, группировки плееров и отображения текущего состояния группировок.
1.Создайте элемент Advanced List. Создайте темплейт TplPlayer с кодом type (для вывода списка плееров).
Темплейт имеет следующие лейблы: *lblName, *lblName 1, *Selection. 2. Настройте темплейт и лейблы.
В Tpl.Player , введите player в поле Type. Создайте лейблы:
- lbl.Name - внесите в поле Value значение name;
- lblName 1 - внесите в поле Value значение grouped;
- Selection - внесите в поле Value значение selected.
3. Привяжите при помощи окна Programming (Programming > Press > + ) команду SelectForGrouping к элементу Advanced List:

Привяжите фидбэк Players к элементу Advanced List:
