Аналог Text Display (foo_textdisplay)

Список разделов Аудиоплеер foobar2000 Плагины

Описание: Все о плагинах, компонентах, расширениях

Сообщение #1 VlaKor » 17.04.2020, 22:49

Здравствуйте!

Подскажите пожалуйста чем можно заменить плагин Text Display (foo_textdisplay)?
http://foosion.foobar2000.org/help/foo_textdisplay/1.1_beta_1/#install
Может есть скрипт для Spider Monkey Panel?
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #2 SergPuh.68 » 22.04.2020, 15:06

VlaKor,для Spider Monkey Panel есть скрипт SimpleFollowCursor который можно использовать для отображения информации о проигрываемом треке
YouTube Music
SergPuh.68 M
Мастер
Аватара
Откуда: Украина
Репутация: 85
С нами: 1 год 9 месяцев

Сообщение #3 vladj » 22.04.2020, 15:27

Жаль размер плейлиста залочен, его-бы поуже по вертикали, а видео расширить. Или это принципиально, делить окно ровно пополам ?
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Гуру
Аватара
Откуда: Пермский край
Репутация: 402
С нами: 10 лет 9 месяцев

Сообщение #4 VlaKor » 22.04.2020, 20:15

SergPuh.68 писал(а):Spider Monkey Panel есть скрипт SimpleFollowCursor который можно использовать для отображения информации о проигрываемом треке
Спасибо.
Пробовал его, со скриптами надо разбираться, для чайников мало настроек ))) Может как ни будь соберусь, разберусь.
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #5 kgena_ua » 22.04.2020, 22:08

VlaKor писал(а):Может как ни будь соберусь, разберусь.
Просто напиши свой скрипт, включи все то что тебе нужно.
I.m.UR5EQF.
квартет на миллион долларов
kgena_ua M
Гуру
Аватара
Возраст: 56
Откуда: Украина, Днепр
Репутация: 473
С нами: 7 лет 6 месяцев

Сообщение #6 VlaKor » 22.04.2020, 22:58

kgena_ua писал(а):Просто напиши свой скрипт, включи все то что тебе нужно.
Слово "Просто" в этом предложении лишнее ))
Для меня это совсем не просто, я в чужих то ни чего не понимаю ))

Добавлено спустя 37 минут 2 секунды:
kgena_ua писал(а):Просто напиши свой скрипт, включи все то что тебе нужно.
Порекомендуйте книжку или сайт где можно с азами скриптописания ознакомиться, с чего начать, пожалуйста.
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #7 MC Web » 23.04.2020, 00:56

VlaKor, лучше осваивать на примере готового скрипта, немного изменил из своей сборки:
Код: Выделить всё
$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()
ЕСЛИ НЕ НУЖНА - УДАЛЯЕМ ЭТИ СТРОКИ
)
Сборка foobar2000 RU DarkOne + DUIFoon от MC Web
MC Web
Гуру
Аватара
Репутация: 218
С нами: 7 лет 2 месяца

Сообщение #8 VlaKor » 23.04.2020, 00:59

MC Web писал(а):лучше осваивать на примере готового скрипта:
Что то не работает.
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #9 MC Web » 23.04.2020, 01:15

Прежде, чем выкладывать - ПРОВЕРИЛ
Изображение
Сборка foobar2000 RU DarkOne + DUIFoon от MC Web
MC Web
Гуру
Аватара
Репутация: 218
С нами: 7 лет 2 месяца

Сообщение #10 VlaKor » 23.04.2020, 01:22

MC Web писал(а):Прежде, чем выкладывать - ПРОВЕРИЛ
Ясно. А я это в Spider Monkey Panel пихаю )))
В foo_textdisplay куча ограничений, поэтому и хочу по другому решить этот вопрос. Но всё равно благодарю.
Пробовал составлять из нескольких панелей foo_textdisplay, получается поинтересней, можно разный цвет в одной строке сделать таким образом и т.д.
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #11 MC Web » 23.04.2020, 01:32

VlaKor, интерфейс DUI или CUI ?
В CUI для этих целей своя панель есть, там цвет и шрифт в любой строке можно изменять в скрипте.
Сборка foobar2000 RU DarkOne + DUIFoon от MC Web
MC Web
Гуру
Аватара
Репутация: 218
С нами: 7 лет 2 месяца

Сообщение #12 VlaKor » 23.04.2020, 01:34

MC Web писал(а):интерфейс DUI или CUI ?
DUI
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #13 VlaKor » 23.04.2020, 21:32

MC Web писал(а):В CUI для этих целей своя панель есть, там цвет и шрифт в любой строке можно изменять в скрипте.

А в DUI + Spider Monkey Panel можно вот такое сотворить
Код: Выделить всё
[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]

И это только тренировка, надо дальше разбираться ))

Добавлено спустя 39 минут 41 секунду:
В общем, стало ясно, что Text Display (foo_textdisplay) не нужен.
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц

Сообщение #14 SergPuh.68 » 24.04.2020, 09:57

VlaKor, попробуй так:
Код: Выделить всё
// @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);

}
}
YouTube Music
SergPuh.68 M
Мастер
Аватара
Откуда: Украина
Репутация: 85
С нами: 1 год 9 месяцев

Сообщение #15 MC Web » 24.04.2020, 11:14

VlaKor писал(а):В общем, стало ясно, что Text Display (foo_textdisplay) не нужен.
Не знаю ваших планов на Spider Monkey Panel, но в сравнении с тем же Text Display весит в 100 раз больше и самое главное не показывает динамические данные (радио). Если это ради одной панели, то я бы еще подумал.
Сборка foobar2000 RU DarkOne + DUIFoon от MC Web
MC Web
Гуру
Аватара
Репутация: 218
С нами: 7 лет 2 месяца

Сообщение #16 VlaKor » 24.04.2020, 14:52

SergPuh.68 писал(а):попробуй так:
Благодарю, но так не пойдёт. Так у меня то же получалось ))

Добавлено спустя 8 минут 42 секунды:
MC Web писал(а):но в сравнении с тем же Text Display весит в 100 раз больше
На быстродействие это ни как не влияет. 28 Мб это совсем ни о чём )

MC Web писал(а):самое главное не показывает динамические данные (радио)
Это вообще не главное и надо ещё проверить.

MC Web писал(а):Если это ради одной панели, то я бы еще подумал.
Ни ради одной. Я уже подумал.
Автор foo_textdisplay не зря забросил развивать своё творение. Как раз в то время появились панели со скриптами и в этом плагине надобность отпала.
VlaKor
Автор темы, Бывалый
Репутация: 6
С нами: 3 года 1 месяц


Вернуться в Плагины