Данный документ является переводом Foobar2000:Titleformat Reference.
Ревизия 1.1
Некоторые поля, доступные как %имя%, предопределены другими значениями, чтобы сделать написание скриптов форматирования заголовка более удобным.
Определёно как $if3($meta(album artist),$meta(artist),$meta(composer),$meta(performer))..
Определёно как $if3($meta(album),$meta(venue)).
Определёно как $if3($meta(artist),$meta(album artist),$meta(composer),$meta(performer)).
Возвращает номер диска. Номер берётся из тега discnumber; если этот тег не существует, номер берётся из тега disc. Если оба тега не прописаны, поле не определено.
Эквивалентно предопределённому полю %discnumber%.
Возвращает номер диска. Номер берётся из тега discnumber; если этот тег не существует, номер берётся из тега disc. Если оба тега не прописаны, поле не определено.
Эквивалентно предопределённому полю %disc%.
Определёно как $meta(artist), если $meta(album artist) отлично от $meta(artist), иначе это поле пусто.
Определёно как $if2($meta(title),%_filename%). Возвращает тэг title , если он присутствует, иначе возвращает имя файла, без расширения.
Возвращает номер трека, дополненный слева нулями до двух цифр. Номер трека берётся из тега tracknumber; если этот тег не существует, номер берётся из тега track. Если оба тега не прописаны, поле не определено.
Эквивалентно предопределённому полю %tracknumber%.
Возвращает номер трека, дополненный слева нулями до двух цифр. Номер трека берётся из тега tracknumber; если этот тег не существует, номер берётся из тега track. Если оба тега не прописаны, поле не определено.
Эквивалентно предопределённому полю %track%.
Определёно как $if2($info(bitrate_dynamic),$info(bitrate)). Возвращает текущий битрейт, если это возможно, иначе - средний битрейт. Если ни то, ни другое не определено, ничего не возвращается.
Определёно как $channels(). Возвращает число каналов в виде текста; возвращает «mono» и «stereo» вместо «1» и «2».
Определёно как %_filesize%. Возвращает размер файла в байтах.
Определёно как $info(samplerate). Возвращает частоту дискретизации в Гц.
Определёно как $codec().
Определёно как $num(%_playlist_number%,$len(%_playlist_total%)). Возвращает позицию трека (индекс) в плейлисте. Первый трек имеет индекс 1. Индекс дополняется слева нулями до такого же числа цифр, как и у индекса последнего трека.
Функции в этом разделе могут быть использованы для зависимого от условий выполнения выражений.
Вычисляет выражение между [ и ]. Если оно истинно, возвращаются его строковое значение и логическое значение истина. Иначе возвращаются пустая строка и ложь.
Пример: [%artist%] возвратит значение тэга artist, если оно существует. Иначе ничего не возвратится, в то время, как %artist% возвратил бы «?».
Если условие вычисляется как истина, возвращается значение вычисленной части тогда. Иначе возвращается ложь.
Если условие вычисляется как истина, возвращается значение вычисленной части тогда. В ином случае возвращается значение вычисленной части иначе.
Подобно $if(a,a,иначе) за исключением того, что a вычисляется однократно.
Вычисляет аргументы a1…aN, пока не будет найден первый, вычисляемый как истина. Если это произошло, возвращается значение этого аргумента. В иных случаях возвращается значение вычисленной части иначе.
Сравнивает целые числа n1 и n2, если n1 равно n2, возвращается значение вычисленной части тогда. В иных случаях возвращается значение вычисленной части иначе.
Сравнивает целые числа n1 и n2, если n1 больше, чем n2, возвращается значение вычисленной части тогда. В иных случаях возвращается значение вычисленной части иначе.
Сравнивает длины строк s1 и s2, если s1 длиннее, чем s2, возвращается значение вычисленной части тогда. В иных случаях возвращается значение вычисленной части иначе.
Если значение n находится между 1 и N, возвращается вычисленное значение an. Иначе возвращается ложь.
Функции в этом разделе могут быть использованы для арифметических операций над целыми числами. Строка будет автоматически преобразована в число и наоборот. Преобразуется наиболее длинная начальная часть строки, которая может быть интерпретирована как число. Ведущие пробелы игнорируются.
Пример: «c3po» → 0, « -12» → -12, но «- 12» → 0.
Складывает a и b.
Можно использовать с произвольным количеством аргументов. $add(a,b,…) аналогично $add($add(a,b),…).
Делит a на b. Если b вычисляется как ноль, возвращается a.
Можно использовать с произвольным количеством аргументов. $div(a,b,…) аналогично $div($div(a,b),…).
Возвращает истина, если a больше, чем b, иначе возвращает ложь.
Возвращает максимальное из a и b.
Можно использовать с произвольным количеством аргументов. $max(a,b,…) аналогично $max($max(a,b),…).
Возвращает минимальное из a и b.
Можно использовать с произвольным количеством аргументов. $min(a,b,…) аналогично $min($min(a,b),…).
Вычисляет остаток от деления a на b. Результат имеет тот же знак, что и a. Если b вычисляется как ноль, возвращается a.
Можно использовать с произвольным количеством аргументов. $mod(a,b,…) аналогично $mod($mod(a,b),…).
Умножает a на b.
Можно использовать с произвольным количеством аргументов. $mul(a,b,…) аналогично $mul($mul(a,b),…).
Умножает a на b, затем делит на c. Результат округляется до ближайшего целого.
Генерирует случайное число в диапазоне от 0 до 232-1.
Вычитает b из a.
Можно использовать с произвольным количеством аргументов. $sub(a,b,…) аналогично $sub($sub(a,b),…).
Функции в этом разделе могут быть использованы для работы с логическими значениями (истина и ложь), не имеющих явного представления в скриптах форматирования заголовка. Эти функции не возвращают строку или числовое значение. Их можно использовать для задания более сложных условий в $if и подобных ей функциях.
Логическое И произвольного числа элементов. Возвращает истина тогда и только тогда, когда все аргументы вычисляются как истина.
Пример: $and(x,y) равно истина, если как x, так и y равны истина. В иных случаях функция возвратит ложь.
Логическое ИЛИ произвольного числа элементов. Возвращает истина, когда хотя бы один аргумент вычисляется как истина.
Пример: $or(x,y) равно истина, если x или y, или одновременно x и y равны истина. В иных случаях функция возвратит ложь.
Логическое НЕ. Возвращает ложь, если x равно истина, иначе возвращает истина.
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ произвольного числа элементов. Возвращает истина, когда нечётное количество аргументов вычисляется как истина.
Пример: $xor(x,y) равно истина, если x или y, но не одновременно x и y, равны истина. В иных случаях функция возвратит ложь.
Возвращает цвет, являющийся переходным между цвет1 и цвет2. Если часть меньше или равно нулю, возвращается цвет1. Если часть больше или равно всего, возвращается цвет2. В иных случаях возвращается смешанный цвет, являющийся на часть цвет1 и на всего-часть цвет2. Смешивание производится в цветовом пространстве RGB.
Сбрасывает цвет текста к принятому по умолчанию.
Устанавливает цвет текста. r, g и b - соответственно красная, зелёная и синяя составляющие цвета невыделенного текста. Цвет выделенного текста устанавливается инверсным.
Устанавливает цвет текста. r1, g1 и b1 - соответственно красная, зелёная и синяя составляющие цвета невыделенного текста. r2, g2 и b2 - соответственно красная, зелёная и синяя составляющие цвета выделенного текста.
Вставляет цветовые коды в строка так, что первый символ имеет цвет1, последний - цвет2, и промежуточные символы имеют переходные цвета. Смешивание производится в цветовом пространстве RGB. Обратите внимание, что цветовые коды являются дополнительными символами, которые также будут обработаны строковыми функциями. Например, если вам нужно усечь строку, это необходимо сделать до применения $transition().
Следующие функции и поля применимы в скриптах, используемых для текущей проигрываемой композиции, например в скриптах для строки статуса строки, заголовка окна и команды копирования.
Возвращает время, прошедшее с начала проигрывания в формате [ЧЧ:]ММ:СС.
Возвращает время, прошедшее с начала проигрывания (в секундах). Прошлое название: %_time_elapsed_seconds%
Возвращает время, оставшееся до конца проигрывания песни, в фомате [ЧЧ:]ММ:СС. Прошлое название: %_time_remaining%
Возвращает время, оставшееся до конца проигрывания, в секундах. Прошлое название: %_time_remaining_seconds%
Возвращает длительность песни в виде часов, минут, секунд. Прошлое название: %_time_total%
Возвращает длительность песни в виде часов, минут, секунд, миллисекунд.
Возвращает длительность песни в секундах. Прошлое название: %_time_total_seconds%
Возвращает длительность песни в секундах в виде числа с плавающей точкой.
Возвращает длительность песни в сэмплах.
Следующие функции и поля применимы в скриптах для плейлиста.
Возвращает «1», если файл в текущий момент проигрывается и пустую строку в ином случае.
Старая версия %_isplaying%
остаётся допустимой.
Возвращает «1», если проигрывание приостановлено (на паузе) и пустую строку в ином случае.
Старая версия %_ispaused%
остаётся допустимой.
Возвращает дополненный нулями индекс элемента в плейлисте. Первый элемент имеет индекс 1.
Смотрите также %playlist_number%.
Старая версия %_playlist_number%
остаётся допустимой.
Возвращает количество элементов в плейлисте.
Старая версия %_playlist_total%
остаётся допустимой.
Возвращает имя плейлиста, в котором содержится элемент.
Старая версия %_playlist_name%
остаётся допустимой.
Функции из этого раздела используются для операций над символьными строками.
Возвращает аббревиатуру x.
Возвращает аббревиатуру x, если x длиннее, чем длина символов, в ином случае возвращает x.
Приводит x к системной кодовой странице и возвращает получившееся значение. Символы, не присутствующие в системной кодовой странице будут удалены/заменены. Полезно при массовом переименования файлов для обеспечения совместимости с программами, не понимающими юникод.
Делает первую букву каждого слова в x прописной, остальные буквы - строчными.
Делает первую букву каждого слова в x прописной, остальные буквы оставляет в неизменном виде.
Вставляет юникодный символ с кодом x.
Вычисляет численное значение CRC32 строки a. Предназначена для использования при задании цветов в скриптах.
Вставляет маркер конца строки (возврат каретки, перевод строки). Может использоваться для вывода нескольких строк, например, во всплывающей подсказке иконки в системном трее.
Возвращает первые длина символов, начиная слева a.
Извлекает имя каталога из файлового пути x.
Извлекает имя каталога уровня n (отсчитывая с последнего) из файлового пути x.
Извлекает расширение файла из x (который должен быть именем файла или путём).
Извлекает имя файла из полного пути.
Если x содержит маркер конца строки (CR-LF), этот маркер и весь текст после него заменяется строкой «(…)». В ином случае x возвращается неизменённым.
Если x содержит маркер конца строки (CR-LF), этот маркер и весь текст после него заменяется строкой индикатор. В ином случае x возвращается неизменённым.
Приводит целое число n к шестнадцатиричной системе счисления.
Приводит целое число n к шестнадцатиричной системе счисления с длина цифрами, дополняет слева нулями при необходимости.
Вставляет b в a после символа, находящегося в позиции n.
Возвращает первые длина символов, считая слева a.
Возвращает длину строки a в символах.
Возвращает длину строки a в символах, учитывая правила обработки двухбайтовых (double-width) символов (двухбайтовый символ считается за два).
Возвращает истина, если строка a длиннее строки b, в ином случае возвращает ложь.
Приводит a к нижнему регистру.
Возвращает длиннейший из аргументов. Можно использовать с произвольным количеством строк.
Дополняет (при необходимости) нулями слева до длина цифр число n в десятичной системе счисления.
Дополняет x слева пробелами до длина символов.
Дополняет x справа пробелами до длина символов.
Дополняет x слева символом символ до длина символов.
Дополняет x справа символом символ до длина символов.
Возвращает первые длина сиволов с начала x, если x длиннее длина символов. В ином случае дополняет x справа пробелами до длина символов.
Возвращает первые длина сиволов с начала x, если x длиннее длина символов. В ином случае дополняет x слева пробелами до длина символов.
Создаёт полоску прогресса (progress bar): позиция определяет текущую позицию, диапазон - граничное значение, длина - длину полоски прогресса в символах, a и b определяют символы, из которых строится полоска прогресса.
Пример: $progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,'#','=') выдаст «====#===============», где символ # движется в соответствии со временем проигрывания песни.
Создаёт полоску прогресса (progress bar): позиция определяет текущую позицию, диапазон - граничное значение, длина - длину полоски прогресса в символах, a и b определяют символы, из которых строится полоска прогресса. Отличается от $progress видом результирующей полоски.
Возвращает n копий a. Обратите внимание, что a вычисляется однажды перед использованием значения, так что $repeat не может быть использовано в роли цикла.
Заменяет все вхождения строки b в строке a строкой c.
Можно использовать с произвольным количеством аргументов. Обратите внимание, что $replace(a,b1,c1,b2,c2) возвращает значение, отличное от $replace($replace(a,b1,c1),b2,c2).
Пример: $replace(ab,a,b,b,c) → «bc», $replace($replace(ab,a,b),b,c) → «cc»
Возвращает первые длина символов с конца a.
Приводит целое число n к записи римскими цифрами.
Производит ROT13 преобразование строки a.
Пример: $rot13('foobar2000') → «sbbone2000».
Возвращает самый короткий из своих аргументов. Можно использовать с произвольным количеством аргументов.
Ищет первое вхождение символа c строке s.
Пример: $strchr(abca,a) → 1
Ищет последнее вхождение символа c в строке s.
Пример: $strrchr(abca,a) → 4
Ищет первое вхождение строки s2 в строке s1.
Выполняет регистрозависимое сравнение строк s1 и s2.
Выполняет регистронезависимое сравнение строк s1 и s2.
Возвращает подстроку строки s, начиная с m-го символа т заканчивая n-ым символом.
Удаляет ведущие и завершающие пробелы из строки s.
Вставляет один символ табуляции.
Вставляет n символов табуляции.
Приводит строку s к верхнему регистру.
Возвращает значение тега с именем имя. Если существуют несколько тегов с этим именем, они объединяются с использованием «,» в качестве разделителя.
Пример: $meta(artist) → «He, She, It»
Возвращает значение n-го тега с именем имя (для первого тега n=0).
Пример: $meta(artist,1) → «She»
Возвращает значение тега с именем имя. Если существуют несколько тегов с этим именем, они объединяются с использованием разделитель в качестве разделителя.
Пример: $meta_sep(artist,' + ') → «He + She + It»
Возвращает значение тега с именем имя. Если существуют несколько тегов с этим именем, они объединяются с использованием разделитель в качестве разделителя между ними, исключая последние два значения, которые разделяются последний_разделитель.
Пример: $meta_sep(artist,', ',' and ') → «He, She and It»
Возвращает 1, если все теги, имена которых были переданы в качестве параметров, существуют. В противном случае, ничего не возвращает.
Пример: $meta_test(artist,title) → 1
Возвращает количество тегов с именем имя.
Пример: $meta_num(artist) → 3
Возвращает номер трека, дополненный нулями до 2 цифр.
Возвращает номер трека, дополненный нулями до n цифр.
Возвращает значение поля технической информации с именем имя.
Для удобства доступен еще и псевдоним %__name%.
Пример: $info(channels) → 2
Информационный список полей. Некоторые из них зависят от запрашиваемого типа медиа файла.
Общие
Поле | Описание |
---|---|
codec | Кодек (например, MP3) |
codec_profile | Профиль (например, CBR) |
samplerate | Частота дискредитации, в герцах (например, 44100) |
bitrate | Битрейт, в килобитах в секунду (например, 320) |
tool | Утилита, с помощью которой создан файл (например, LAME3.97) |
encoding | Тип кодирования (например, lossy) |
channels | Количество каналов (например, 2 [для стерео]) |
bitspersample | Битов на семпл (например, 16) |
tagtype | Тип тегов, разделенный список тегов (например, id3v2|apev2) |
cue_embedded | Наличие внедренного Cuesheet (например, нет [может быть пустым!]) |
md5 | MD5-хэш файла, если определяется контейнером (например, 1E24A910D91EF09A8CF403C9B6963961) |
Другие
Поле | Описание |
---|---|
ENC_DELAY | LAME MP3 значение enc_delay (например, 576) |
ENC_PADDING | LAME MP3 значение enc_padding (например, 1536) |
MP3_ACCURATE_LENGTH | mp3_accurate_length (частный заголовок LAME)? (например, да) |
MP3_STEREO_MODE | Стерео режим в MP3 (например: mono, stereo, joint stereo) |
VERSION | Версия утилиты (например, 3.99) |
FLAGS | Флаги утилиты (например, 22) |
Возвращает кодек трека. Если поле codec отсутствует, используется расширение файла.
Пример: $codec() → «WavPack»
Возвращает число каналов в виде текста.
Пример: $channels() → «stereo»
Возвращает значение ReplayGain gain альбома.
Возвращает значение ReplayGain peak альбома.
Возвращает значение ReplayGain gain трека.
Возвращает значение ReplayGain peak трека.
Возвращает значение специального поля с именем name. Эти поля также доступны посредством %_имя%; обратите внимание на дополнительный знак подчёркивания. Такой синтаксис использовался в старой версии Foobar2000 0.8x. Теперь можно просто использовать следующие имена полей:
Возвращает имя файла без имени каталога и расширения.
Возвращает имя файла c расширением, но без имени каталога.
Возвращает только имя родительского каталога, но не полный путь.
Возвращает путь.
Возвращает путь как URL, включая тип протокола.
Возвращает номер подкомпозиции. Номер подкомпозиции используется для отличия множества треков в одном файле, например, в cue sheet, трекерных модулях и различных форматах контейнеров.
Возвращает строку, сообщающую версию foobar2000.
Переменные используются для хранения строк и чисел. Они не могут хранить логические значения. Переменные отлично подходят для сохранения промежуточных результатов, которые потребуются несколько раз. Имена переменных регистронезависимы.
Пример:
код | результат |
$put(foo,bar)$char(10) $get(foo)$char(10) $get(Foo)$char(10) $puts(foo,2000)$char(10) $get(foo)$char(10) | bar bar bar 2000 |
Возвращает значение, которое было последним сохранено в переменной имя. Если переменная не определена, ничего не возвращается. Логическое значение, возвращаемое $get показывает, существует ли переменная с именем имя.
Сохраняет значение в переменной с именем имя и возвращает значение неизменённым.
Сохраняет значение в переменной с именем имя, ничего не возвращая.
В этом разделе перечисляются компоненты, которые предоставляют поля и функции, доступные в контексте любого трека.
В этом разделе перечисляются компоненты, предоставляющие поля и функции, доступные только в контексте самого компонента
Официальный компонент списка альбомов поддерживает создание различных элементов дерева с использованием специальных команд.