Здравствуйте!
Подскажите пожалуйста чем можно заменить плагин Text Display (foo_textdisplay)?
http://foosion.foobar2000.org/help/foo_textdisplay/1.1_beta_1/#install
Может есть скрипт для Spider Monkey Panel?
Список разделов › foobar2000 › Плагины
Спасибо.SergPuh.68:Spider Monkey Panel есть скрипт SimpleFollowCursor который можно использовать для отображения информации о проигрываемом треке
Просто напиши свой скрипт, включи все то что тебе нужно.VlaKor:Может как ни будь соберусь, разберусь.
Слово "Просто" в этом предложении лишнее ))kgena_ua:Просто напиши свой скрипт, включи все то что тебе нужно.
Порекомендуйте книжку или сайт где можно с азами скриптописания ознакомиться, с чего начать, пожалуйста.kgena_ua:Просто напиши свой скрипт, включи все то что тебе нужно.
$if(%isplaying%,
// ИНФОРМАЦИЯ ПО ТРЕКУ ======================
[$upper(>>>%artist%<<<)$crlf()]
[>>[%album%][ %album subtitle%][ CD%discnumber%]<<$crlf()]
[%title%[ ● %length%]$crlf()]
['('%subtitle%')'$crlf()]
['('%composer%')'$crlf()]
[$if(%publicationright%,$char(8471) %publicationright%,$if2(© %date%,[$left(%last_modified%,10)]))[ '('%country%')']$crlf()]
[[%codec%[ %codec_profile%][ ● RG'('A')':%replaygain_album_gain%][ ● RG'('Т')':%replaygain_track_gain%][ ● BPM:%bpm%]]]
[[ ● %filesize_natural%][ ● DR'('А')':%album dynamic range%][ ● DR'('Т')':%dynamic range%]]
$crlf()
[$info(samplerate) Гц[ ● $info(bitspersample) бит][ ● $replace($caps(%channels%),ch, кн)][ ● %bitrate% Кбит/с]]
,
// ИНФОРМАЦИЯ ПРИ ОТСУТСТВИИ ВОСПРОИЗВЕДЕНИЯ ====
ИНФОРМАЦИЯ КОГДА ТРЕК НЕ ВОСПРОИЗВОДИТСЯ$crlf()
ЕСЛИ НЕ НУЖНА - УДАЛЯЕМ ЭТИ СТРОКИ
)
Что то не работает.MC Web:лучше осваивать на примере готового скрипта:
Ясно. А я это в Spider Monkey Panel пихаю )))MC Web:Прежде, чем выкладывать - ПРОВЕРИЛ
DUIMC Web:интерфейс DUI или CUI ?
MC Web:В CUI для этих целей своя панель есть, там цвет и шрифт в любой строке можно изменять в скрипте.
[code]// @name "VlaKor Text NowPlaying"
include(`${fb.ComponentPath}docs\\Flags.js`);
include(`${fb.ComponentPath}docs\\Helpers.js`);
const font = gdi.Font('Segoe UI', 14, 0);
const title = fb.TitleFormat('%title%');
const nazvanie = fb.TitleFormat('Название');
const ispolnitel = fb.TitleFormat('Исполнитель');
const artist = fb.TitleFormat('[%artist%]');
const album = fb.TitleFormat('%album%[ (%DISCSUBTITLE%)][ © %date% / %ORIGINALYEAR%]');
const albom = fb.TitleFormat('Альбом');
let handle = fb.GetNowPlaying();
function on_playback_new_track() {
handle = fb.GetNowPlaying();
window.Repaint();
}
function on_paint(gr) {
if (handle) {
gr.GdiDrawText(title.EvalWithMetadb(handle), font, RGB(0, 0, 0), 130, -20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(nazvanie.EvalWithMetadb(handle), font, RGB(0, 102, 204), 55, -20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(ispolnitel.EvalWithMetadb(handle), font, RGB(0, 102, 204), 35, 0, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(artist.EvalWithMetadb(handle), font, RGB(0, 0, 0), 130, 0, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(albom.EvalWithMetadb(handle), font, RGB(0, 102, 204), 68, 20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(album.EvalWithMetadb(handle), font, RGB(0, 0, 0), 130, 20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
}
}
[/code]
// @name "VlaKor Text NowPlaying"
include(`${fb.ComponentPath}docs\\Flags.js`);
include(`${fb.ComponentPath}docs\\Helpers.js`);
const font = gdi.Font('Segoe UI', 14, 0);
const title = fb.TitleFormat('%title%');
const nazvanie = fb.TitleFormat('Название');
const ispolnitel = fb.TitleFormat('Исполнитель');
const artist = fb.TitleFormat('[%artist%]');
const album = fb.TitleFormat('%album%[ (%DISCSUBTITLE%)][ © %date% / %ORIGINALYEAR%]');
const albom = fb.TitleFormat('Альбом');
let handle = fb.GetNowPlaying();
function on_item_focus_change() {
handle = fb.GetFocusItem();
window.Repaint();
}
function on_playlist_switch() {
//because on_item_focus_change isn't called when the user switches playlists
//we must invoke it manually inside this callback
on_item_focus_change();
}
function on_paint(gr) {
if (handle) {
gr.GdiDrawText(title.EvalWithMetadb(handle), font, RGB(0, 0, 0), -10, -20, window.Width, window.Height, DT_VCENTER | DT_RIGHT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(nazvanie.EvalWithMetadb(handle), font, RGB(0, 0, 0), 10, -20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(ispolnitel.EvalWithMetadb(handle), font, RGB(0, 0, 0), 10, 0, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(artist.EvalWithMetadb(handle), font, RGB(0, 0, 0), -10, 0, window.Width, window.Height, DT_VCENTER | DT_RIGHT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(albom.EvalWithMetadb(handle), font, RGB(0, 0, 0), 10, 20, window.Width, window.Height, DT_VCENTER | DT_LEFT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
gr.GdiDrawText(album.EvalWithMetadb(handle), font, RGB(0, 0, 0), -10, 20, window.Width, window.Height, DT_VCENTER | DT_RIGHT | DT_END_ELLIPSIS | DT_CALCRECT | DT_NOPREFIX);
}
}
Не знаю ваших планов на Spider Monkey Panel, но в сравнении с тем же Text Display весит в 100 раз больше и самое главное не показывает динамические данные (радио). Если это ради одной панели, то я бы еще подумал.VlaKor:В общем, стало ясно, что Text Display (foo_textdisplay) не нужен.
Благодарю, но так не пойдёт. Так у меня то же получалось ))SergPuh.68:попробуй так:
На быстродействие это ни как не влияет. 28 Мб это совсем ни о чём )MC Web:но в сравнении с тем же Text Display весит в 100 раз больше
Это вообще не главное и надо ещё проверить.MC Web:самое главное не показывает динамические данные (радио)
Ни ради одной. Я уже подумал.MC Web:Если это ради одной панели, то я бы еще подумал.