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

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


foobar2000:tagz:tutorial:create_single_mode

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
foobar2000:tagz:tutorial:create_single_mode [2006/06/09 10:19]
Mishail
foobar2000:tagz:tutorial:create_single_mode [2006/06/09 11:35]
Строка 1: Строка 1:
-====== Создание плэйлистов из одиночных трэков ====== 
  
-До сих пор наш дизайн неплохо справлялся с полными альбомами и с отображением файлов по одиночке. А что если встретятся неполные альбомы?​ Они в той или иной мере сломают нам отображение плэйлиста. И, к сожалению,​ неполные альбомы встречаются не так уж редко, наверняка у каждого из вас есть папочка с музыкальным ассорти,​ набранным с различных дисков. Только представьте себе плэйлист содержащий все песни, вышедшие в определенном году, он не отобразится красиво как один альбом,​ потому что во всех трэках прописаны тэги ​ ''​%tracknumber%'',​ ''​%album tracks%''​ и ''​%album%'',​ и эти тэги различаются,​ соответственно они будут рассматриваться как трэки разных альбомов. Мы имеем все шансы получить не только некрасивый внешний вид плэйлиста,​ но и вероятность того, что некоторая важная информация,​ например имя исполнителя,​ не будет отображена. Вы ведь помните,​ что наш дизайн показывает имя исполнителя только в строчке соответствующей первому трэку, для всех остальных строк эта информация не показывается,​ поэтому если у нас нет трэка с номером 1, то информации об исполнителе не будет. 
- 
-К сожалению,​ нет универсального решения этой проблемы в рамках скрипта для одного плэйлиста,​ но мы можем разделить наши плэйлисты на '​плэйлисты из альбомов'​ (полных) и '​плэйлисты из отдельных трэков'​. Трудно назвать такой вариант идеальным,​ но он достаточно хорошо работает. В этом случае ​ нам достаточно будет поместить все неполные альбомы (или одиночные трэки) в нужный плэйлист. 
- 
-===== Включаем вкладки для плэйлистов ===== 
- 
-Вкладки для плэйлистов по умолчанию выключены в Foobar2000, нам же, для того чтобы легко переключатся между списками альбомов и списками одиночных файлов,​ нужно их включить. На всех скриншотах вкладки уже на сам деле включены. 
- 
-{{playlist_tabs.png}} 
- 
-Перейдите на вкладку **Layout** на странице **Display / Columns UI** настроек. Она должна выглядеть примерно так: 
- 
-{{layout_tab_before.png}} 
- 
-  - Щелкните правой кнопкой мыши на элементе списка **Columns Playlist** ​ и выберите **Change base / Splitters / Playlist tabs** в меню. 
-  - Теперь выберите мышкой элемент списка **Playlist tabs** и на правой стороне окна снимите галочку **Show caption**. 
-  - Щелкните правой кнопкой мыши на **Playlist tabs** и выберите **Insert panel / Playlist views / Columns Playlist**. 
-  - Нажмите кнопку **Apply** чтобы изменения вступили в силу 
- 
- 
-У Вас должно получиться дерево с корнем **Playlist tabs** и единственным отростком **Columns Playlist**. 
- 
-{{layout_tab_after.png}} 
- 
-У нас появилась новая панель над плэйлистом с единственной вкладкой с именем //​Default//​. Каждая вкладка в этой панели соответсвует отдельному плэйлисту. Теперь щелкните правой кнопкой мыши на существующей вкладке и выберите **Create playlist**, затем щелкните правой кнопкой на новой вкладке,​ выберите **Rename** и переименуте ее в //​Singles//​. 
- 
-===== Вводим ограничения на существующие столбцы ===== 
- 
-Для плэйлистов из отдельных трэков мы создадим совершенно новый набор столбцов,​ а это означает,​ что нам нужно отключить уже существующие столбцы для таких плэйлистов. Мы сделаем это на вкладке **Columns** в **Design / Columns UI / Playlist view**, в которой для каждого столбца есть 2 опции: **Playlist filters** и **Filter playlists**. 
- 
-{{playlist_filters.png}} 
- 
-Итак нам нужно спрятать наши столбцы для случая плэйлистов из одиночных файлов. Используемый режим (альбомный вид или одиночные файлы) определяется соотвестивем имени плэйлиста и строки фильтра,​ заданной в поле **Filter playlists**. 
- 
-Наш дизайн должен переключатся в режим одиночных файлов,​ в том случае если имя плэйлиста содержит строку //single// или начинается с //-s-//. Этому соответствует такая строка фильтра:​ 
- 
-  <​code>​*single*;​-s-*</​code>​ 
- 
-Джокеры (спец. символы) здесь работают так же, как и в Windows. "​Звездочка"​ (*) подразумевает любое количество символов,​ в том числе и 0. Знак вопроса (?) подразумевает любой одиночный символ. Одновременно можно задать несколько условий,​ разделив их точкой с запятой (;). В строках фильтров регистр символов не учитывается. 
- 
-Таким образом,​ наша строка в первую очередь применяется к всем именам плэйлистов,​ в которых есть слово //single//, с произвольным количеством символов до или после этого слова, т.е. это слово может располагаться в любом месте имени. Точка с запятой служит окончанием этого условия,​ и началом нового,​ которое применяется ко всем именам начинающихся с фразы //-s-//, после которой может идти любое число символов. 
- 
-Если Вы не хотите сильно ограничивать себя в именовании плэйлистов,​ то можете использовать в качестве строки фильтра сочетание "​звездочка"​ ип робел (* ). В этом случае все плэйлисты с именами,​ заканчивающимися на пробел будут отображаться в режиме одиночных трэков,​ а остальные - в режиме полных альбомов. 
- 
-Теперь для кадого из 5 существующих столбцов выберите значение **Hide on playlist** в списке выбора **Playlist filters** и введите строку фильтра. Нажмите **Apply** и убедитесь,​ что в плэйлисте //Singles// все столбцы исчезли,​ притом,​ что плэйлист //Default// не изменился. 
- 
-===== Создание столбцов для режима одиночных трэков ===== 
- 
-Мы собираемся создать пять новых столбцов для плэйлистов из одиночных трэков,​ эти столбцы,​ соответственно,​ должны отображаться только для таких плэйлистов. Следовательно,​ для этого нам нужен **Playlist filter** с именем **Show only on playlists**,​ строка фильтра останется такой же, как и в выше. Не забудьте применить эти настройки к каждому из пяти новых столбцов. 
- 
-==== Столбец Artist ==== 
- 
-Создайте новый столбец с именем //Artist//, задайте ширину (**Width**) равную **230**, и выравнивание по левому краю (**Aligment** = **Left**). Как следует из названия,​ в этом столбце будет отображаться имя исполнителя. Соответственно скрипт на вкладке **Display** будет выглядеть так: 
- 
-  [%artist%] 
- 
-Цвета будут такие: белый текст, на фоне черных и темно-серых перемежающихся полосок,​ с темно-красными линиями выделения. И это именно те цвета, которые определены в нашем глобальном цветовом скрипте,​ поэтому во вкладке **Style** ничего делать не надо. 
- 
-==== Столбец Title ==== 
- 
-Для отображения названия композиции создайте столбец с именем //Tilte//, шириной 240 пикселей,​ с выравниванием по левому краю. В этом столбце мы также будем отображать нашу анимацию,​ которую мы создали ранее, это делает скрипт во вкладке **Display** немного сложнее:​ 
- 
-<​html><​pre class="​code">​ 
-$if(%isplaying% 
-, 
-$ifequal($put(foo,​$mod(%_time_elapsed_seconds%,​8)),​0,​ 
-'​)))) ​ ', 
-$select($get(foo),​ 
-$get_global(cTxtDim)'​('​$rgb()'​))) ​ ', 
-$get_global(cTxtDim)'​(('​$rgb()'​)) ​ ', 
-$get_global(cTxtDim)'​((('​$rgb()'​) ​ ', 
-$get_global(cTxtDim)'​(((( ​ '​$rgb(),​ 
-'​)'​$get_global(cTxtDim)'​((( ​ '​$rgb(),​ 
-'​))'​$get_global(cTxtDim)'​(( ​ '​$rgb(),​ 
-'​)))'​$get_global(cTxtDim)'​( ​ '​$rgb() 
-)) 
-) 
- 
-%title% 
-</​pre></​html>​ 
- 
-Скрипт почти полностью повторяет тот что мы создали для столбца [[Tracknumber в режиме альбомов]],​ единственное отличие это два пробела,​ которые рисуются после анимации,​ для того чтобы отделить название композиции и замыкающую функцию ''​$rgb()'',​ чтобы быть уверенным что цвет вернется к значениям по умолчанию. 
- 
-Для этого столбца понадобится свой скрипт в **Style**, потому что по нашей задумке он должен выглядеть точно так же как столбец //Track// для режима полных альбомов:​ черный текст на светло-сером фоне, с красным индикатором выделения и темно-серым фоном для текущей проигрываемой композиции. Это будет единственный столбец для этого режима,​ которому потребуются свои цвета. 
- 
-<​html><​pre class="​code">​ 
-$set_style(text,​$get_global(cTxtTrk),​$get_global(cTxtSel)) 
- 
-$if(%isplaying% 
-, 
-$set_style(back,​$get_global(cBgPlay),​$get_global(cBgPlay)) 
-, 
-$set_style(back,​$get_global(cBgTrk),​$get_global(cBgSel)) 
-) 
-</​pre></​html>​ 
- 
-Первая строка меняет цвет текста,​ остальные:​ фона, сначала для текущей композиции,​ затем для всех остальных. 
- 
-Не забудьте поставить галочку **Use custom color spec** когда будете вводить скрипт. 
- 
-==== Столбец Альбом ==== 
- 
-Этот столбец отображает название альбома,​ номер трэка и номер диска. Назовите его //Album// и сделайте его шириной 160 пикселей с выравниваем по левому краю. Скрипт для вкладки **Display** для него очень прост: 
- 
-    ['​('​%tracknumber%'​) '] 
-    [%album%][',​ CD '​%disc%] 
- 
-Сначала идет номер трэка в квадратных скобках. Я отказался от отображения в шестнадцатеричном виде по тем же причинам,​ что и для всплывающей подсказки для системного трэя. После номера отображается название альбома и номер диска, для многодисковых альбомов. Квадратные скобки вокруг каждого элемента гарантируют,​ что он будет отображаться только при его наличии. 
- 
-==== Столбец Time ==== 
- 
-Создайте столбец с именем //Time//, шириной 50 пикселей и, на этот раз, с выравниванием по правому краю. **Display** скрипт будет точно таким же, как и скрипт для соответствующего столбца в режиме альбомов. 
- 
-    $if(%_time_remaining%,​ 
-    '​['​%_time_remaining%'​]',​ 
-    $if2(%_length%,'​n/​a'​) 
-    ) 
- 
-Он выдает длину трэка или ‘n/a’, а также оставшееся время для проигрываемой композиции. И снова нам не нужно задавать цветов отдельно. 
- 
-==== Столбец RGain ==== 
- 
-Этот столбец называется //RGain//, шириной 50 пикселей и выровненный по правому краю. Скрипт для него является упрощенной версией соответствующего скрипта для альбомного режима - часть, отвечающая за album gain отсутствует,​ т.к. наш плэйлист рассчитан на одиночные трэки, то album gain смотрелся бы здесь нелепо. 
- 
-  $if2(%__replaygain_track_gain%,'​n/​a'​) 
- 
-===== Результат ===== 
- 
-5-я стадия закончена. И в месте с ней мы полностью закончили готовый к использованию дизайн для Columns UI. Снова посмотрим на скриншот законченного //Dark Connections//,​ на этот раз уже в режиме одиночных файлов. 
- 
-{{dark_connections_fb2k_single.png?​250x183|Нажмите для увеличения}} 
- 
-Если у вас все еще нет его ... гхм, ну конечно же он у Вас есть ;-), Вы ведь только что его закончили. Тем не менее... ;-) Просто скачайте FCS файл [[Dark Connections 2.0.0]]. Цифра 2 в номере версии означает,​ что этот дизайн предназначен для Foobar2000, через минуту мы вернемся к версии 1. 
- 
-Если Вам не интересна адаптация //Dark Connections//​ к Foobar2000 0.8.3, то смело читайте [[заключение]]. Если Вам это интересно,​ то [[идем дальше]]. 
- 
-~~DISCUSSION~~ 
foobar2000/tagz/tutorial/create_single_mode.txt · Последние изменения: 2006/06/09 11:35 (внешнее изменение)