У меня такой вопрос: поставил сборку, в которой обложка альбома выводится с помощью панели MiniCover, причём цеплются только файлы вида front.*, cover.* etc.
В конфигураторе панели следующий код:
- Код: Выделить всё
// DarkOne Cover Panel
// Code by super-gau, T.P. Wang and tedGo
AlbumArtId = {
front: 0,
back: 1,
disc: 2,
icon: 3,
artist: 4
};
var img_path = fb.FoobarPath + "DarkOne16\\Images\\";
var g_stop_img = gdi.Image(img_path + "DarkOne.png");
var g_nocover_img = gdi.Image(img_path + "NoCover.png");
var g_radio_img = gdi.Image(img_path + "Radio.png");
var g_cd_img = gdi.Image(img_path + "AudioCD.png");
var g_rawimg = null;
var g_state = AlbumArtId.front;
var ww, wh;
getRightImage(fb.GetNowPlaying(), false);
function getRightImage(metadb, switchstate) {
if (metadb) {
var g_cover_img = null;
if (fb.PlaybackLength <= 0)
g_cover_img = g_radio_img;
else if (metadb.RawPath.indexOf("cdda://") == 0)
g_cover_img = g_cd_img;
else {
var old_state = g_state;
do {
if (switchstate) switchState();
g_cover_img = utils.GetAlbumArt(metadb.RawPath, g_state, false);
} while (switchstate && (old_state != g_state) && !g_cover_img);
}
}
if (g_cover_img)
g_rawimg = g_cover_img;
else if (!switchstate)
g_rawimg = g_nocover_img;
CollectGarbage();
return g_rawimg ? true : false;
}
function switchState() {
if (g_state == AlbumArtId.artist) g_state = AlbumArtId.front;
else g_state++;
}
function on_size() {
ww = window.Width;
wh = window.Height;
}
function on_paint(gr) {
var back_col = fb.IsPlaying ? 0xFF1F323F : 0xFF131E26;
var src_w = fb.IsPlaying ? g_rawimg.Width : g_stop_img.Width;
var src_h = fb.IsPlaying ? g_rawimg.Height : g_stop_img.Height;
var img_scale = Math.min(ww / src_w, wh / src_h);
var img_w = src_w * img_scale;
var img_h = src_h * img_scale;
var img_x = (ww - img_w) / 2;
var img_y = (wh - img_h) / 2;
gr.FillSolidRect(0, 0, ww, wh, back_col);
if (fb.IsPlaying)
g_rawimg && gr.DrawImage(g_rawimg, img_x, img_y, img_w, img_h, 0, 0, g_rawimg.Width, g_rawimg.Height);
else
gr.DrawImage(g_stop_img, img_x, img_y, img_w, img_h, 0, 0, g_stop_img.Width, g_stop_img.Height);
}
function on_mouse_lbtn_down(x, y, mask) {
if (!fb.IsPlaying)
return;
getRightImage(fb.GetNowPlaying(), true);
window.Repaint();
}
function on_playback_new_track(metadb) {
if (getRightImage(metadb, false))
window.Repaint();
}
function on_playback_stop() {
window.Repaint();
}
Как заставить плеер цеплять jpg с любым именем из проигрываемого каталога? у меня все сканы в отдельных каталогах, кроме фронтов, но переименовывать их очень долго..