Инструменты пользователя

Инструменты сайта


foobar2000:plugins_for_0.9.x:single_column_playlist_foo_uie_single_column_playlist

Single Column Playlist Viewer (foo_uie_single_column_playlist)

Внимание!

SINGLE COLUMN PLAYLIST VIEWER ТЕПЕРЬ НАЗЫВАЕТСЯ SINGLE COLUMN PLAYLIST И ЯВЛЯЕТСЯ ЧАСТЬЮ Panels UI (foo_ui_panels), И ОТДЕЛЬНО БОЛЬШЕ НЕ ПОДДЕРЖИВАЕТСЯ.

Аннотация

Требования

Общее

Показывает плейлист в одну колонку с заголовками. Панель полезна для создания узких и маленьких конфигураций/раскладок Columns UI.

Single Column Playlist

Панель в версии БЕТА и тщательно не исследовалась, поэтому делайте бекапы своих конфигураций.

Single Column Playlist (или SCP) — это компонент, созданный пользователем Terrestrial на основе кода Track Info Panel Mod (foo_uie_trackinfo_mod). Данный компонент создает одноколоночный плейлист с заголовками, который полезен для создания узких и небольших конфигураций.

Примечание: теги форматирования, доступные в SCP, почти идентичны тегам Track Info Panel Mod (foo_uie_trackinfo_mod).

Установка

Убедитесь, что сделан бекап вашей конфигурации перед установкой или обновлением версии. SCP требует .NET C++. Если у вас нет .NET C++, то вы получите ошибку при запуске плеера:

Failed to load DLL: foo_uie_single_column_playlist.dll
Reason: This application has failed to start because the application configuration is incorrect.
Reinstalling the application may fix this problem.

Вы можете скачать .NET framework, который установит нужные DLL с сайта http://www.windowsupdate.com, или в качестве альтернативного варианта, скачать C++ runtime components с сайта Microsoft.com.

Окно конфигурации

Окно конфигурации

Начальная настройка и конфигурирование SCP такие же, как и для большинства компонентов Columns UI. Чтобы начать использовать SCP, откройте настройки Foobar2000 и найдите группу Columns UI. На вкладке «Layout» кликните правой кнопкой по основе (сплиттеру) и выберите «Insert Panel → Playlist view → Single Column Playlist View. Таким образом вы вставите экземпляр SCP в раскладку Columns UI. Чтобы попасть в настройки экземпляра SCP, выберите его и нажмите кнопку конфигурирования — Configure.

<font color="red">ВНИМАНИЕ!</font> Конфигурации SCP не хранятся в отдельных текстовых файлах. Удаление экземпляра SCP из раскладки Columns UI (layout) также удалит его конфигурацию, поэтому храните ваш код в безопасном месте.

Быстрый доступ к конфигурированию SCP возможен из окна основного плейлиста. Кликните правой кнопкой по окну основного плейлиста и выберите «Settings…» из контекстного меню.

Группировка

Размещение заголовка над группой элементов, у которых есть общие характеристики определяемые пользователем. Заголовок отображает информацию, взятую из тега ПЕРВОГО элемента группы; теги других элементов НЕДОСТУПНЫ для заголовка. Группировка НЕ СОРТИРУЕТ. Другими словами, группировка не меняет порядок в котором элементы появляются в плейлисте. Сортировка возможна либо через отдельную команду SORT, которая будет описана ниже, либо через Columns UI.

Критерии для группировки определяются в секции «Group By» окна конфигурирования Single Column Playlist с помощью доступных функций (например, $if(,,) $replace(,,) %artist%, и т.д.).

Следующий пример создает новую группу для каждого нового альбома или для каждого нового диска (если доступен альбом).

$if2(%disc%,%album%)

Item display

Код здесь затрагивает конкретные элементы в single column playlist. Можно использовать такие переменные, как title, track number, length, rating и так далее.

Group display

Код здесь затрагивает заголовок ряда для групп элементов плейлиста. Artist, album, genre, bitrate, date, codec, album art или любой критерий, выбранный вами для группировки.

Row height

Высота ряда. Установка размера каждого элемента плейлиста в пикселях. Если высота какого-то ряда будет будет больше, то все равно обрежется до указанного.

Group row

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

Функции

Выравнивание текста

Обычное выравние текста

$align(H,V)

Параметр Определение Примечание
(H)orizontalГоризонально. Может принимать значения left, center и right (слева, по центру или справа).
(V)erticalВертикально. Может принимать значения top, middle и bottom (сверху, по середине или снизу).top будет проверяться на перезапись.

Если с помощью этой функции выравнять несколько раз подряд (например, $align(left,middle) больше чем один раз), то выравнивание будет происходить с той же точки отсчета.

Чтобы выравнять текст относительно

$alignset() - $alignrel(H,V)

Параметр Определение Примечание
(H)orizontalГоризонтально. Может принимать значения left, center и right (слева, по центру или справа).
(V)erticalВертикально. Может принимать значения top, middle и bottom (сверху, по середине и внизу).top будет проверяться на перезапись.
$alignset()Устанавливает точку отсчета для $alignrel(H,V).Может применяться как замена функции $char(10), работает для всех следующих $alignrel(H,V).

Например:

$alignrel(left,middle) //Линия1_слева// $alignrel(center,middle) //Линия1_по_центру// $alignset() $alignrel(right,middle) //Линия2_справа//

Чтобы выравнять текст абсолютно (без проверки на перезапись текста)

$alignabs(X,Y,w,h,H,V)

Параметр Определение Примечание
X & YКоординаты позиции границ прямоугольника в котором будет происходить выравниваниеЗначения могут быть отрицательными.
(W)idth & (H)eightШирина и высота прямоугольника в котором будет происходить выравнивание текста.
H & Vсм. таблицу выше

Примечание: $alignabs(H,V) может быть использована для относительного выравнивания без проверки на перезапись.

Стили шрифтов

$font(NAME,SIZE,OPTIONS,COLOR)

Параметр Определение Примечание
NAMEНазвание шрифта.
SIZEРазмер шрифта.
OPTIONSОпции. Могут иметь значение bold, italic, underline, strikeout, nocleartype, glow- и shadow Также, возможно совмещать значения, например, «bolditalicunderlineglow-» даст комбинацию этих эффектов. Значения по-умолчанию для glow — glowexpand-2 и glowblur-2.
COLORЦвет. Цвет шрифта указывается в пространстве R-G-B.Например, 255-0-0 даст красный цвет.

Используйте SYSCOL-x для использования стандартных цветов из вашей темы Windows (msstyle). X — это номер цвета от 0 до ?.

Следующий пример создаст шрифт Arial, размером 10 пикселей, жирный, с синим эффектом glow и системным цевтом номер #15 (фон):

$font(Arial, 10, bold shadow glow-0-0-255,SYSCOL-15)
  • Вы можете сохранять и восстанавливать значения переменных шрифта используя функции $put/$puts/$get (например, $puts(font,$font(Calibri,9,bold,100-100-100))). Восстанавливать значения необходимо после использования функции $alignrel, но не перед ней.
  • Также, изменение настроек шрифта с помощью $get не оказывает никакого воздействия на $calcwidth/$calcheight. Эти функции используют последнее реальное значение параметров $font, даже если их задавали функцией $puts.
  • При использовании продвинутых эффектов отключается сглаживание (антиалиасинг) шрифтов (даже для alpha blending). Также, следующий текст влияет на предыдущий, так что, возможно, вам придется добавлять пробелы либо использовать функцию $alignabs.

Примеры шрифтов и код:

Примеры шрифтов Single Columns Playlist

Изображения

$imageabs

$imageabs(X,Y,imageName,imageOptions)
Параметр Определение Примечание
X & YАбсолютная позиция изображения с отсчетом от верхнего левого угла.
imageNameОтносительный путь к изображению из папки, где хранится конфигурация плеера.Если отключена поддержка профилей, то папка конфигурации будет той же, куда установлен плеер. Однако, если включена поддержка профилей, то папка будет расположена в C:\Documents and Settings\ИМЯ ПОЛЬЗОВАТЕЛЯ\Application Data\foobar2000\
imageOptionsМожет включать в себя другие параметры, влияющие на представление изображения.Описание параметров ниже.

Параметры imageOptions:

  • ALPHA-x. Прозрачность изображения; указывается целым числом от 0 (полностью прозрачно) до 255 (непрозрачно).
  • FLOW. Обтекание текста вокруг текста.

Пример:

$imageabs(0,0,%папка_конфигурации_foobar%\картинки\моя_картинка.png,flow alpha-150)

$imageabs2

$imageabs2(areaWidth,areaHeight,imageLeft,imageTop,imageWidth,imageHeight,areaLeft,areaTop,imagePath,imageOptions)

Параметр Определение Примечание
areaWidth & areaHeightПараметры, управляющие размером изображения. Позволяют только уменьшать изображение.
imageLeft & imageTopУказывают на позицию уменьшенного изображения от левого верхнего угла.imageLeft — горизонтальная позиция уменьшенного изображения, imageTop — вертикальная позиция не уменьшенного изображения. Если у вас есть изображение в формате JPEG размером 300×300 пикселей, и с помощью функций areaWidth и areaHeight оно уменьшено до размера 150×150 пикселей (imageLeft = 75 and imageTop = 150), то точка в верхнем левом углу финального изображения будет центром оригинального изображения 300×300.
imageWidth & imageHeightОбрезание ширины и высоты, соответственно обрезание сжатого изображения.Значения, которые больше, чем расстояние от обрезанного угла до границ уменьшенного изображения будут игнорироваться (обрезание как таковое будет пропущено). При значениях равных или больших, чем 32768, изображение вовсе не будет показано.
areaLeft & areaTopРасстояние, соответственно, влево и вниз, от верхнего левого угла панели до верхнего левого угла финального уменьшенного и обрезанного изображения.
imagePathАбсолютный или относительный путь к папке с изображениями.Для относительных путей нужно поставить слеш ('/') в начале пути. (например, »/путь\до\изображение.jpg«). Когда будете использовать относительные пути, учтите, что корневая папка — это инсталляционная папка foobar2000.
imageOptionsОпции изображения.Описание параметров ниже.

Параметры imageOptions:

  • ALPHA-x. Прозрачность изображения; указывается целым числом от 0 (полностью прозрачно) до 255 (непрозрачно).
  • NOKEEPASPECT. При изменении размера игнорировать пропорции изображения (aspect ratio).
  • VALIGN-T (vertical align-TOP), VALIGN-B, HALIGN-L, HALIGN-R. Опции выравнивания.

Более просто:

$imageabs2(Размеры сжатия,Положение угла обрезания,Размеры обрезания,Расположение панели,Путь,Опции изображения)

Пример:

$imageabs2(48,48,0,0,48,48,20,20,C:\Program Files\foobar2000 v0.9\icons\$replace(%filename_ext%,%filename%'.',)_48x48.png,alpha-192)

Уменьшить изображение до 24×24 (изначальный размер 48х48) без обрезания:

$imageabs2(**24**,**24**,0,0,**24**,**24**,20,20,/icons\$replace(%filename_ext%,%filename%'.',)_48x48.png,alpha-192)

Отрисовка прямоугольника

$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)

X & YПозиция прямоугольника относительно верхнего левого угла.Если эти параметры пропустить или выставить на ноль, то они заменятся минимальными значениями относительно $pad.
W & HОпределяет ширину и высоту прямоугольника.Если эти параметры пропустить или выставить на ноль, то они заменятся минимальными значениями относительно $pad.
brushColor & penColorЦвета фона и границы в пространстве R-G-B.Например, 255-0-0 даст красный цвет. Параметры могут быть отключены с помощью -null (например, brushColor-null). Используйте SYSCOL-x для использования стандартных цветов из вашей темы Windows (msstyle). X — это номер цвета от 0 до ?.
OPTIONSОпции прямоугольника.Описание параметров ниже.

Параметры OPTIONS:

При использовании сложных эффектов, таких как alpha blending или blurring, прямоугольник рисуется только используя цвет границы. Если вы укажите цвет фона, то возьмется цвет границы.

  • ALPHA — интервал 0-255.
  • EXPAND — расширить прямоугольник на столько-то пикселей.
  • BLUR — размазать (заблёрить) изображение с таким-то значением.
  • WIDTH — ширина границы (рисуется цветом границы). Значение по умолчанию — 1, если не отключено при помощи pencolor-null. Установка значения в 0 не отключает границу (значение остается 1).

Пример:

 $drawrect(,,,,pencolor-0-0-255 brushcolor-null width-2 alpha-100 blur-2)

Другие функции

Вычисление размеров

Следующие функции возвращают размеры (в пикселях) элемента плейлиста или группы, в зависимости используете ли вы эти функции в item display или group display окна настроек Single Column Playlist:

%_height%
%_width%

Следующие функции возвращают индекс (номер) элемента 1) в группе и количество элементов в группе:

%_itemindex%
%_itemcount%

Подобным же образом, следующие функции возвращают индекс (номер) элемента 2) в плейлисте и количество элементов плейлиста:

%list_index%
%list_total%

Следующие функции возвращают ширину и высоту текста:

$calcwidth(//Text1//)
$calcheight(//Text1//)
$calcwidth(%artist%) не возвращает не длину //%artist%//, а скорее ширину текста, хранимого в теге artist.

Проверка на выбор файла

Если курсор в плейлисте стоит на элементе (треке).

%_selected%

Пример:

$if(%_selected%,$drawrect(2,1,$sub(%_width%,4),16,brushcolor-233-243-247 pencolor-203-233-246))

Проверка на существование файла

$fileexists(//Путь к файлу//)

Следующий пример ищет folder.* где расположены музыкальные файлы:

$if($fileexists($replace(%path%,%filename_ext%,folder.*),
Yes
,
No
)

Перемещение треков или групп в плейлисте

Нажмите Alt и перетащите мышкой, либо нажмите Alt+вверх/вниз

Получение глобальных переменных Columns UI

$get_global(//переменная//)

Синтакс такой же, как и в Columns UI.

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

Запрет заголовка

!noheader!

Пример:

//В секции 'Group by'//
$if(%tracknumber%,%artist%,!noheader!)

Советы и секреты

Как растянуть изображение на несколько рядов

растянуть изображение на несколько рядов можно при помощи %tracknumber% или %list_index%, чтобы генерировать вертикальное смещение каждый раз при прорисовке изображения на каждом ряду. Код ниже поместите item display.

Пример Tracknumber:

Этот пример использует %tracknumber% для определения расположения путем умножения высоты ряда на tracknumber:

$imageabs(X OFFSET,$add(STARTING Y OFFSET,$mul(-ROW HEIGHT,%tracknumber%)),IMAGE DIRECTORY/IMAGE.png,)

Например, при высоте ряда 26 пикселей и горизонтальной (x) позицией 0 и начальный вертикальным смещением 25:

 $imageabs(0,$add(25,$mul(-26,%tracknumber%)),images/test.png,)

Пример List Index:

Другой алгоритм использует %list_index%. Этот пример рисует левую и правую границу single playlist column. Изображение шире, чем ширина ряда, поэтому нужно пользоваться техникой смещения.

  • Сначала определим ширину и высоту изображения:
$puts(art.width,30)
$puts(art.height,60)
  • Расчитаем число рядов, необходимое для отображения изображения:
$puts(art.num,$add($div($mul(%list_index%,%_height%),$get(art.height)),1))
  • Используем высоту и количество изображений для генерации смещения для каждого элемента:
$puts(art.offset,-$sub($sub($mul(%list_index%,%_height%),$mul($sub($get(art.num),1),$get(art.height))),%_height%))
  • Используем смещение:
$imageabs(0,$get(art.offset),images\column.left.png,)
  • Используем ширину для смещения по горизонтали для самой правой границы:
$imageabs($sub(%_width%,$get(art.width)),$get(art.offset),images\column.right.png,)

Группа, основанная на имени плейлиста

Используем компонент Cwbowron's Title formating (foo_cwb_hooks):

$if($strstr(%cwb_activelist%,'TERM'), SORT BY IF MATCH, ELSE SORT BY THIS)

Например,

$if($strstr(%cwb_activelist%,'-s-'), %rating%, %album%)

Этот код группирует альбом для всех плейлистов, если в плейлисте нет '-s-'. Если -s- есть, то элементы сгруппируются по рейтингу. (Strstr сравнивает две строки чтобы проверить наличие -s- в cwb_activeplaylist)

Примеры

Толкование настройки по умолчанию

Group By

  • Группировка элементов по альбому:
%album%

Item Display

  • Рисует заполненный прямоугольник стандартным системным цветом «SYSCOL-13»:
$if(%_selected%,$drawrect(0,0,0,0,brushcolor-SYSCOL-13 pencolor-null))
  • Рисует границу вокруг выбранного элемента цветом границы (системным цветом «SYSCOL-6»):
$if(%_focused%,$drawrect(0,0,0,0,brushcolor-null pencolor-SYSCOL-6))
  • Меняет текст выбранного элемента, используя разный цвет:
$if(%_selected%,$textcolor(SYSCOL-9),$textcolor(SYSCOL-8))
  • Устанавливает pagging рядов (horizontal, vertical):
$padding(4,0)
  • Основной текст в каждом ряду выравнивается top left и right:
$align(left,top)%list_index%
$align(right,top)%title%

Group Display

  • Рисует прямоугольник заголовка группы
$drawrect(0,0,0,0,brushcolor-130-130-255 pencolor-null)
  • Устанавливает pagging заголовка:
$padding(4,0)
  • Добавляет информацию альбома, дату и данные композитора:
$align(left,top)$font(,,bold,64-0-0)%album% '['%date%']'
$align(right,top)$font(,,bold,0-64-0)%composer%

(Values displayed are always those of the first item, without regard to the values of other items in the group.)

Mazy's Design

Указанный ниже код и скриншот создан пользователем Mazy.

Item Display

$if($strcmp($mod(%_playlist_number%,2),1),
$drawrect(,,,,brushcolor-245-245-245 pencolor-null))
$padding(2,0)
$font(calibri bold,9,$if(%isplaying%,underline,),170-170-170)
$replace(%title%,'(',$font(,,bold italic,204-204-204)'(')
$alignabs(6,13,%_width%,%_height%,,)
$font(CubicFive10,6,nocleartype,190-190-190)
[%length% | ]
[%bitrate% kbps]
$alignabs(0,-1,$sub(%_width%,2),%_height%,right,)
$font(CubicFive10,6,nocleartype,190-190-190)
[%play_count%x]
$if(%cwb_queueindex%, '['%cwb_queueindexes%/%cwb_queuelength%']')
$alignabs(0,10,$sub(%_width%,2),%_height%,right,)
$font(Wingdings,9,glow-190-190-190 glowexpand-1,250-250-250)
$repeat(«,%rating%)

Group Display

$padding(1,0)
$drawrect(,,,,brushcolor-119-213-249 pencolor-51-191-238)$padding(4,1)
$align(left,center)$font(calibri bold,9,,255-255-255)
$font(,,bold glow-18-173-224 glowexpand-1,)
%album%
$align(right,center)$font(,,bold,255-255-255)
%artist%
$puts(ar_w,$calcwidth(%artist%))
$drawrect($sub(%_width%,$get(ar_w),18),-1,3,%_height%,brushcolor-51-191-238 pencolor-null)
$drawrect($sub(%_width%,$get(ar_w),17),-1,1,%_height%,brushcolor-250-250-250 pencolor-null)
$alignabs(6,13,%_width%,%_height%,,)
$font(CubicFive12,6,nocleartype,18-173-224)
[%date% | ][%genre%]
$alignabs(0,10,$sub(%_width%,$get(ar_w),13),%_height%,right,)
$font(Wingdings,10,,)
$repeat(«,$rand(5))
$imageabs($sub(%_width%,$get(ar_w),98),0,data\misc images\playlist-refl.png,)
$imageabs($sub(%_width%,87),0,data\misc images\playlist-refl.png,)

Ссылки

1) , 2) Под элементом подразумевается трек в плейлисте
foobar2000/plugins_for_0.9.x/single_column_playlist_foo_uie_single_column_playlist.txt · Последние изменения: 2007/03/15 08:15 — Spike