Graphical Browser (foo_uie_graphical_browser)

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

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

Сообщение #1 Izotop » 10.02.2010, 23:29

Плагин, позволяющий отображать активный плейлист в виде Cover-ов (обложек) к нему  и возможностью многогранной настройки его отображения.
Также можно настраивать и отображать Popup (всплывающие окна-подсказки)

Так как плагин на данный момент не поддерживается автором, то скачать его последнюю ревизию можно отсюда
Graphical Browser (foo_uie_graphical_browser[rev015])


В архиве есть мануал (инструкция на английском) к ревизии плагина 014


Инструкция к Graphical Browser:
Manual for Graphical Browser

В общем всего не опишешь...
Пример отображения плейлиста
Изображение
Так выглядит окно настроек:
Изображение

Все вопросы по поводу плагина, мысли и предложения пишем ниже :)
Последний раз редактировалось Izotop 22.02.2010, 03:02, всего редактировалось 1 раз.
Izotop M
Автор темы
Аватара
Откуда: Зеленоград - Харьков
Репутация: 69
С нами: 16 лет 1 месяц


Сообщение #21 Aum » 01.07.2010, 22:47

не, корректировать более не надо, надо пивка выпить! *пыво*

самое оно!! :)
Aum M
Аватара
Репутация: 23
С нами: 14 лет 8 месяцев

Сообщение #22 Askas » 10.07.2013, 18:08

Попробую оживить тему своим вопросом.

Собственно вопрос такой: как сделать, чтобы обложка воспроизводимого в данный момент альбома/выбранного альбома показывалась нормально, а все остальные - затемнялись? Для наглядности картинки:
сейчас вот так
42-1.png

а хотелось бы вот так
42.png

Вот текущий код:
Код: Выделить всё
$if(%gb_focused%,
     $gp_set_pen(255-80-80-80,1)
,
     $gp_set_pen(255-35-35-35,1)
)

$if(%gb_isplaying%,
     $gp_set_pen(255-255-128-64,1)
,)

$gp_draw_rectangle(2,2,$eval(%gb_width%-5),$eval(%gb_height%-5))

$if($draw_image(3,3,$eval(%gb_width%-6),$eval(%gb_height%-6),$replace(%path%,%filename_ext%,*.jpg)),

,
     $gp_set_font(Tahoma,8,b)
     $gp_set_text_rendering_hint(aa)
     $gp_set_brush(255-80-80-80)
     $gp_set_string_format(center,center)
     $gp_draw_string(%gb_group%,3,3,$eval(%gb_width%-5),$eval(%gb_height%-5))

)

$gp_set_pen(255-70-70-70,1)
$gp_draw_rectangle(3,3,$eval(%gb_width%-7),$eval(%gb_height%-7))
Может кто-нибудь подскажет что нужно добавить?
Askas M
Откуда: Новосибирск
Репутация: 0
С нами: 11 лет 6 месяцев

Сообщение #23 kgena_ua » 10.07.2013, 20:08

Можно изменить прозрачность обложки.
Попробуйте вставить в условие строку, в которой можно задать для переменной alpha величину прозрачности в значении от 0 до 255

$if(%gb_isplaying%,
puts(alpha,255)
$gp_set_pen(255-255-128-64,1)
,
$if(%gb_mouse_over%,
$puts(cover_alpha,250),
$puts(cover_alpha,100)
)
)

и добавить в строку вывода изображения $get(alpha)

$if($draw_image(3,3,$eval(%gb_width%-6),$eval(%gb_height%-6),$replace(%path%,%filename_ext%,*.jpg),$get(alpha)),
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 8 месяцев

Сообщение #24 Askas » 11.07.2013, 08:34

kgena_ua, Спасибо, попробую.
Askas M
Откуда: Новосибирск
Репутация: 0
С нами: 11 лет 6 месяцев

Сообщение #25 Askas » 11.07.2013, 16:58

kgena_ua, Поковырялся и сделали таки то, что хотел. Все оказалось намного проще, чем я думал. Или может я что-то не правильно сделал? Вот что у меня получилось:
Код: Выделить всё
$if(%gb_isplaying%,$draw_image(3,3,$eval(%gb_width%-6),$eval(%gb_width%-6),$replace(%path%,%filename_ext%,*.jpg),255),
$if(%gb_focused%,$draw_image(3,3,$eval(%gb_width%-6),$eval(%gb_width%-6),$replace(%path%,%filename_ext%,*.jpg),255),
$draw_image(3,3,$eval(%gb_width%-6),$eval(%gb_width%-6),$replace(%path%,%filename_ext%,*.jpg),150)))

$gp_set_pen(255-0-0-0,1)
$gp_draw_rectangle(3,3,$eval(%gb_width%-7),$eval(%gb_height%-7))
42.png

Еще такой вопрос возник: а как изменять расстояние между обложками?

UPD:
А, все, понял как менять расстояния.
Askas M
Откуда: Новосибирск
Репутация: 0
С нами: 11 лет 6 месяцев

Сообщение #26 kgena_ua » 11.07.2013, 21:59

Все даже очень правильно.
А вот то что Вы написали, только в таком виде:
Код: Выделить всё
$if(%gb_isplaying%,
     $puts(cover_alpha,250),
     $if(%gb_focused%,
          $puts(cover_alpha,250),
          $puts(cover_alpha,150)
      )
)
$draw_image(3,3,$eval(%gb_width%-6),$eval(%gb_width%-6),$replace(%path%,%filename_ext%,*.jpg),$get(cover_alpha))
визуально будет проще для прочтения и более оптимальным.

К примеру.
Вариант, который у меня (за основу взят вариант одного из специалистов этого форума), где пути для каждого типа файла с
изображением прописаны отдельно:
Код: Выделить всё
$puts(cover.path0,$replace(%path%,%filename_ext%,*%album%.jpg))
$puts(cover.path1,$replace(%path%,%filename_ext%,folder.jpg))
$puts(cover.path2,$replace(%path%,%filename_ext%,front.jpg))
$puts(cover.path3,$replace(%path%,%filename_ext%,cover.*))

$puts(nocover.path,'./textures\nocover.png')

$if(%gb_isplaying%,
     $puts(cover_alpha,255)
     $puts(x,5)
     $puts(y,5)
     $puts(w,$eval(%gb_width%-10))
     $puts(h,$eval(%gb_width%-10))
 ,
     $if(%gb_mouse_over%,
         $puts(cover_alpha,255)
         $puts(x,5)
         $puts(y,5)
         $puts(w,$eval(%gb_width%-10))
         $puts(h,$eval(%gb_width%-10))
      ,
         $puts(cover_alpha,100)
         $puts(x,8)
         $puts(y,8)
         $puts(w,$eval(%gb_width%-16))
         $puts(h,$eval(%gb_height%-16))

     )
  )

 $if3(
      $draw_image($get(x),$get(y),$get(w),$get(h),$get(cover.path0),$get(cover_alpha),),
      $draw_image($get(x),$get(y),$get(w),$get(h),$get(cover.path1),$get(cover_alpha),),
      $draw_image($get(x),$get(y),$get(w),$get(h),$get(cover.path2),$get(cover_alpha),),
      $draw_image($get(x),$get(y),$get(w),$get(h),$get(cover.path3),$get(cover_alpha),),
      $draw_image($get(x),$get(y),$get(w),$get(h),$get(nocover.path),$get(cover_alpha),),
      $draw_image($get(x),$get(y),$sub($get(w),40),$sub($get(h),40),$get(nocover.path),100,nokeepaspect)
)
если воспользоваться Вашим способом написания, занял бы гораздо большее количество строк.
P.S.Как и Вы пытаюсь разобраться с этим плагином.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 8 месяцев

Сообщение #27 Askas » 12.07.2013, 04:43

kgena_ua, Да, Предложенный Вами вариант действиетльно выглядит приятнее, большое спасибо! Добавил к нему еще и mouse_over, теперь вообще красота. :smile:
Askas M
Откуда: Новосибирск
Репутация: 0
С нами: 11 лет 6 месяцев

Сообщение #28 kgena_ua » 12.07.2013, 20:48

Askas,
удачи Вам во всем.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 8 месяцев

Сообщение #29 Askas » 13.07.2013, 06:21

kgena_ua, Спасибо :smile:
Askas M
Откуда: Новосибирск
Репутация: 0
С нами: 11 лет 6 месяцев

Graphical Browser

Сообщение #30 foouser » 12.10.2014, 22:28

Подниму темку, может отзовется кто :)
Вопрос такой:
попытался использовать параметр $draw_text_blur, для достижения подобного эффекта Изображение
В принципе эффект получился, но при попытке отцентровать текст (,center,wordbreak) на некоторых альбомах получаю такую картинкуИзображение
хотя на большинстве все выглядит красиво
Изображение
Мой код:
Код: Выделить всё
// item size: 142 x 142
// background color: #E4EAF2
// group: %album%
// sort: $swapprefix(%album%)

// initial values
$puts(aspect_ratio,nokeepaspect)

$puts(font,Segoe UI)
$puts(font_size,10)

$puts(cover,$replace(%path%,%filename_ext%,)Обложка.*)
$puts(front,$replace(%path%,%filename_ext%,)front.*)
$puts(folder,$replace(%path%,%filename_ext%,)folder.*)
$puts(no_image,images/graphical_browser/WMP/albumart.png)

$puts(cover_size,96)
$puts(x_pad,$eval({%gb_width%-$get(cover_size)}/2))
$puts(y_pad,$eval({%gb_height%-$get(cover_size)}/2))
$puts(line,30)

$calc_text(%album%)
$ifgreater(%gb_calc_width%,$eval(%gb_width%-4),$puts(tmp,$get(line)),$puts(tmp,0))

// focused item
$if(%gb_focused%,
   $gp_set_brush(255-254-12-12,$eval(%gb_width%/2),,C0CBE1FD,$eval(%gb_width%/2),%gb_height%)
   $gp_fill_rectangle(,,%gb_width%,$eval(%gb_height%-$get(y_pad)+6+$get(tmp)))
   $gp_set_pen(C082ABDC,0,solid,round)
   $gp_draw_rectangle(,,$eval(%gb_width%-1),$eval(%gb_height%-$get(y_pad)+5+$get(tmp)))
   $gp_set_pen(C0EFF6FE,0,solid,round)
   $gp_draw_rectangle(1,1,$eval(%gb_width%-3),$eval(%gb_height%-$get(y_pad)+3+$get(tmp)))
)

// mouse over popup
$if(%gb_mouse_over%,
   $gp_set_brush(255-250-236-43,$eval(%gb_width%/2),,FFDFECFA,$eval(%gb_width%/2),%gb_height%)
   $gp_fill_rectangle(,,%gb_width%,$eval(%gb_height%-$get(y_pad)+6+$get(tmp)))
   $gp_set_pen(C099CCFF,0,solid,round)
   $gp_draw_rectangle(,,$eval(%gb_width%-1),$eval(%gb_height%-$get(y_pad)+5+$get(tmp)))
   $gp_set_pen(C0FFFFFF,0,solid,round)
   $gp_draw_rectangle(1,1,$eval(%gb_width%-3),$eval(%gb_height%-$get(y_pad)+3+$get(tmp)))
)

// cover
$draw_image($get(x_pad),2,$get(cover_size),$get(cover_size),$get(no_image),255,nokeepaspect)
$draw_image($get(x_pad),2,$get(cover_size),$get(cover_size),$get(folder),255,$get(aspect_ratio))
$draw_image($get(x_pad),2,$get(cover_size),$get(cover_size),$get(front),255,$get(aspect_ratio))
$draw_image($get(x_pad),2,$get(cover_size),$get(cover_size),$get(cover),255,$get(aspect_ratio))

// cover border
$gp_set_pen(177-191-228-255,1)
$gp_draw_rectangle($get(x_pad),2,$get(cover_size),$get(cover_size))

// item subtitles
$if(%gb_isplaying%,
   $set_font($get(font),$get(font_size))
  $set_font_color(64-192-192-222)
   $draw_text_blur($if2(%album%,Unknown),5,$eval(%gb_height%-2*$get(line)-4),$eval(%gb_width%-4),$eval($get(line)*2),12,4,center,wordbreak)
$set_font_color(255-255-255)
$draw_text($if2(%album%,Unknown),5,$eval(%gb_height%-2*$get(line)-4),$eval(%gb_width%-4),$eval($get(line)*2),center,wordbreak) 
 
   $set_font($get(font),$get(font_size))
   $set_font_color(808080)
   $ifequal($get(tmp),0,
      $draw_text($if2(%album artist%,Unknown),2,$eval(%gb_height%-$get(line)-4),$eval(%gb_width%-4),$get(line),center,end_ellipsis)
   ,)
   ,
   $set_font($get(font),$get(font_size))
   $draw_text($if2(%album%,Unknown),2,$eval(%gb_height%-2*$get(line)-4),$eval(%gb_width%-4),$eval($get(line)*2),center,wordbreak)
   $set_font_color(808080)
   $ifequal($get(tmp),0,
      $draw_text($if2(%album artist%,Unknown),2,$eval(%gb_height%-$get(line)-4),$eval(%gb_width%-4),$get(line),center,end_ellipsis)
   ,)
)
Может кто подскажет как поправить. Такое впечатление что отрисовка спотыкается либо на длине текста либо на символе. ф.з.:)
Вобщем заранее спасибо
foouser
Гость

Сообщение #31 kgena_ua » 13.10.2014, 00:21

foouser, в чужих скриптах всегда тяжело копать :smile: . Сам использую Graphical Browser, и попробовал применить $draw_text_blur - все нормально отображает. У Вас что-то с шириной отображения. Самому интересно, но пока не могу найти ошибку. Graphical Browser очень интересен, но сильно неудобный в плане написания скриптов.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 8 месяцев

Сообщение #32 foouser » 13.10.2014, 02:52

Да можно вобщем то и не рыть весь скрипт. Я убирал весь код из поля и пробовал играться только с надписью. Нормально работает с любым видом позиционирования текста кроме "center".
PS если есть возможность поделитесь своим скриптом, где есть работа с этим параметром.
PPS вообще почему то найти в сети хоть какой то рабочий шаблон оказалось очень трудно...
Спасибо

Добавлено спустя 7 минут 12 секунд:
kgena_ua, Вобщем буду рад любой помощи :smile:
В остальном во многом уже сам разобрался. Склепал себе сборочку для большой медиатеки, вот теперь шлифую хвосты :wink:
foouser
Гость

Сообщение #33 kgena_ua » 13.10.2014, 10:10

foouser, немного поигравшись с $draw_text_blur получил такой результат, как и у Вас.
Безымянный.jpg
Безымянный.jpg (81.53 КБ) Просмотров: 3034

И что самое интересное, нет никакой зависимости.
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 8 месяцев

Сообщение #34 foouser » 13.10.2014, 20:36

Да так и есть.
Единственно какую закономерность я выявил, это то что такой эффект получается только при параметре "center"
Код: Выделить всё
$draw_text_blur($if2(%album%,Unknown),5,$eval(%gb_height%-2*$get(line)-4),$eval(%gb_width%-4),$eval($get(line)*2),12,4,[color=#FF0080]center[/color],wordbreak)
С остальными параметрами отрисовывает строки полностью.
Возможно надо ввести дополнительные переменные, задающие границы области. Такое впечатление что параметр не всегда правильно определяет границы области чтобы расположить текст по центру. Это GDI функция, и подумал а вдруг связано с типом шрифта (TT или OT), ан нет, банан :smile:
Остается только отсчет центра от границ области, но тут я пока не силен :silenced:
Может кто из спецов подскажет... :wink:
foouser
Гость

Сообщение #35 comix19 » 21.01.2015, 23:41

Подскажите пожалуйста как изменить расстояние между обложками? Чтобы каверы были вплотную друг к другу со всех сторон?
comix19
Репутация: 1
С нами: 14 лет 11 месяцев

Сообщение #36 kgena_ua » 22.01.2015, 11:40

comix19, тут нет такого понятия, как "расстояние между обложками".
Есть размер "ячейки" - item size. Установив размеры и если вывести изображение с координатами:
$draw_image(0,0,%gb_width%,%gb_height%,……,
то изображение заполнит всю область. В этом случае каверы будут вплотную друг к другу со всех сторон
kgena_ua M
Аватара
Откуда: Украина, Днепр
Репутация: 504
С нами: 11 лет 8 месяцев

Сообщение #37 comix19 » 22.01.2015, 21:08

А зачем нужен popup? Я какой-то только код туда не копировал и до сих пор не могу понять на что оно влияет, визуально - никаких изменений не происходит. Можно как то изменить прозрачность изображения накладываемого поверх проигрывания текущего альбома? Выглядит это так:

Изображение

Код такой:

Код: Выделить всё
$puts(cpath1,$replace(%path%,%filename_ext%,*))
$puts(cpath2,$replace(%path%,%directory%\%filename_ext%,*))

$puts(nocover,components\nocover5.png)
$puts(playIcon,components\4.png)

$puts(ox,$eval(%gb_width%))
$puts(oy,$eval(%gb_height%))
$puts(ix,$eval(%gb_width%))
$puts(iy,$eval(%gb_height%-1))
$puts(frameD,$eval(%gb_height%-8))
$puts(coverD,$eval($get(frameD)-4))


$if3(
$draw_image(2,2,$get(ix),$get(iy),$get(cpath1),$if(%gb_mouse_over%,150,255),nokeepaspect),
$draw_image(2,2,$get(ix),$get(iy),$get(cpath2),$if(%gb_mouse_over%,150,255),nokeepaspect),
$draw_image(2,2,$get(ix),$get(iy),$get(nocover),$if(%gb_mouse_over%,150,255),nokeepaspect)
)

$if(%gb_isplaying%,
$draw_image(7,6,$get(coverD),$get(coverD),$get(playIcon),128)
)

$if(%gb_mouse_over%,
$gp_set_font(Calibri,6,b)
$gp_set_text_rendering_hint(ct)
$gp_set_smoothing_mode(1)
$gp_set_string_format(center,center)
$if(%gb_mouse_over%,
$gp_set_pen(255-255-255-255,3,,bevel)
$gp_set_brush(255-0-0-0),
$gp_set_pen(255-0-0-0,3,,bevel)
$gp_set_brush(255-255-255-255)
)
$gp_draw_string_path(%gb_group%,12,0,0,0,$get(ox),$get(oy))
)
comix19
Репутация: 1
С нами: 14 лет 11 месяцев

Сообщение #38 comix19 » 24.01.2015, 15:04

Может кто-нибудь подсказать как выставить хаотичную сортировку?

Сейчас стоит так:

GROUP (к слову говоря, что значит это значение тоже не понимаю, но с пустым полем компонент не работает)
Код: Выделить всё
$if2(%album%,@skip)

SORT
пусто
comix19
Репутация: 1
С нами: 14 лет 11 месяцев

Пред.

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