SINGLE COLUMN PLAYLIST VIEWER ТЕПЕРЬ НАЗЫВАЕТСЯ SINGLE COLUMN PLAYLIST И ЯВЛЯЕТСЯ ЧАСТЬЮ Panels UI (foo_ui_panels), И ОТДЕЛЬНО БОЛЬШЕ НЕ ПОДДЕРЖИВАЕТСЯ.
Оригинал: Single Column Playlist (foo uie single column playlist) (англ.)
Показывает плейлист в одну колонку с заголовками. Панель полезна для создания узких и маленьких конфигураций/раскладок Columns UI.
Панель в версии БЕТА и тщательно не исследовалась, поэтому делайте бекапы своих конфигураций.
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%)
Код здесь затрагивает конкретные элементы в single column playlist. Можно использовать такие переменные, как title, track number, length, rating
и так далее.
Код здесь затрагивает заголовок ряда для групп элементов плейлиста. Artist, album, genre, bitrate, date, codec, album art
или любой критерий, выбранный вами для группировки.
Высота ряда. Установка размера каждого элемента плейлиста в пикселях. Если высота какого-то ряда будет будет больше, то все равно обрежется до указанного.
Это новая опция 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)
$puts(font,$font(Calibri,9,bold,100-100-100))
). Восстанавливать значения необходимо после использования функции $alignrel
, но не перед ней.$get
не оказывает никакого воздействия на $calcwidth/$calcheight
. Эти функции используют последнее реальное значение параметров $font
, даже если их задавали функцией $puts
.$alignabs
.Примеры шрифтов и код:
$imageabs(X,Y,imageName,imageOptions)
Параметр | Определение | Примечание |
---|---|---|
X & Y | Абсолютная позиция изображения с отсчетом от верхнего левого угла. | |
imageName | Относительный путь к изображению из папки, где хранится конфигурация плеера. | Если отключена поддержка профилей, то папка конфигурации будет той же, куда установлен плеер. Однако, если включена поддержка профилей, то папка будет расположена в C:\Documents and Settings\ИМЯ ПОЛЬЗОВАТЕЛЯ\Application Data\foobar2000\ |
imageOptions | Может включать в себя другие параметры, влияющие на представление изображения. | Описание параметров ниже. |
Параметры imageOptions:
Пример:
$imageabs(0,0,%папка_конфигурации_foobar%\картинки\моя_картинка.png,flow alpha-150)
$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:
Более просто:
$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, прямоугольник рисуется только используя цвет границы. Если вы укажите цвет фона, то возьмется цвет границы.
Пример:
$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+вверх/вниз
$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)
%album%
$if(%_selected%,$drawrect(0,0,0,0,brushcolor-SYSCOL-13 pencolor-null))
$if(%_focused%,$drawrect(0,0,0,0,brushcolor-null pencolor-SYSCOL-6))
$if(%_selected%,$textcolor(SYSCOL-9),$textcolor(SYSCOL-8))
$padding(4,0)
$align(left,top)%list_index% $align(right,top)%title%
$drawrect(0,0,0,0,brushcolor-130-130-255 pencolor-null)
$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.
$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%)
$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,)