Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
foobar2000:plugins:uie:singlecolumnplaylist [2007/03/02 12:13] Spike |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Single Column Playlist ====== | ||
- | ===== Аннотация ===== | ||
- | Оригинал: [[http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Single_Column_Playlist_%28foo_uie_single_column_playlist%29|Single Column Playlist (foo uie single column playlist)]] (англ.) | ||
- | |||
- | //Страница разрабатывается// | ||
- | ===== Общее ===== | ||
- | {{foobar2000:plugins:uie:minifooim0.png?150|Single Column Playlist}} | ||
- | |||
- | Панель в версии **БЕТА** и тщательно не исследовалась, поэтому делайте бекапы своих конфигураций. | ||
- | |||
- | [[http://wiki.foobar2000.ru/foobar2000:plugins_for_0.9.x:single_column_playlist_foo_uie_single_column_playlist|Single Column Playlist]] (или SCP) — это компонент, созданный пользователем [[http://www.hydrogenaudio.org/forums/index.php?showuser=33259|Terrestrial]] на основе кода [[foobar2000:plugins_for_0.9.x:track_info_panel_mod_foo_uie_trackinfo_mod]]. Данный компонент создает одноколоночный плейлист с //заголовками//, который полезен для создания узких и небольших конфигураций. | ||
- | |||
- | //Примечание: теги форматирования, доступные в SCP, почти идентичны тегам [[Foobar2000:0.9 Track Info Panel Mod (foo uie trackinfo mod)|Trackinfo mod panel]].// | ||
- | |||
- | =====Установка===== | ||
- | Убедитесь, что сделан бекап вашей конфигурации перед установкой или обновлением версии. 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 с сайта [[http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en|Microsoft.com]]. | ||
- | |||
- | =====Окно конфигурации===== | ||
- | |||
- | {{foobar2000:plugins:uie:scp_config1.png|Окно конфигурации}} | ||
- | |||
- | **Начальная настройка и конфигурирование SCP такие же, как и для большинства компонентов Columns UI.** Чтобы начать использовать SCP, откройте настройки Foobar2000 и найдите группу Columns UI. На вкладке "Layout" кликните правой кнопкой по основе (сплиттеру) и выберите "Insert Panel -> Playlist view -> Single Column Playlist View. Таким образом вы вставите экземпляр SCP в раскладку Columns UI. Чтобы попасть в настройки экземпляра SCP, выберите его и нажмите кнопку конфигурирования — <key>Configure</key>. | ||
- | |||
- | <html><font color="red">ВНИМАНИЕ!</font></html> Конфигурации 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''. | ||
- | |||
- | **Примеры шрифтов и код:** | ||
- | |||
- | {{foobar2000:plugins:uie:trackinfo-font-example.png|Примеры шрифтов 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 размером 300x300 пикселей, и с помощью функций **areaWidth** и **areaHeight** оно уменьшено до размера 150x150 пикселей (**imageLeft** = 75 and **imageTop** = 150), то точка в верхнем левом углу финального изображения будет центром оригинального изображения 300x300.| | ||
- | |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) | ||
- | |||
- | Уменьшить изображение до 24x24 (изначальный размер 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|Цвета фона and pen color в в пространстве R-G-B.|Например, 255-0-0 даст красный цвет. Параметры могут быть отключены с помощью -null (например, brushColor-null). Используйте //SYSCOL-x// для использования стандартных цветов из вашей темы Windows (msstyle). X — это номер цвета от 0 до ?.| | ||
- | |||
- | ====Другие функции==== | ||
- | |||
- | ===Вычисление размеров=== | ||
- | Следующие функции возвращают размеры (в пикселях) элемента плейлиста или группы, в зависимости используете ли вы эти функции в **item display** или **group display** окна настроек Single Column Playlist: | ||
- | |||
- | %_height% | ||
- | %_width% | ||
- | |||
- | Следующие функции возвращают индекс (номер) элемента ((Под элементом подразумевается трек в плейлисте)) в группе и количество элементов в группе: | ||
- | |||
- | %_itemindex% | ||
- | %_itemcount% | ||
- | |||
- | Подобным же образом, следующие функции возвращают индекс (номер) элемента ((Под элементом подразумевается трек в плейлисте)) в плейлисте и количество элементов плейлиста: | ||
- | |||
- | %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 | ||
- | ) | ||
- | |||
- | ===Перемещение треков или групп в плейлисте=== | ||
- | Нажмите <key>Alt</key> и перетащите мышкой, либо нажмите <key>Alt-Up/Down</key> | ||
- | |||
- | ====Mazy's Design==== | ||
- | |||
- | Указанный ниже код и скриншот создан пользователем [[http://www.hydrogenaudio.org/forums/index.php?showuser=7705|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,) | ||