Что-то слетело в интерфейсе (Columns UI, сборка от Alex Realist)

Список разделов Аудиоплеер foobar2000 Есть вопрос!

Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.

Сообщение #1 Marillion78 » 25.04.2015, 17:48

Помогите, что-то слетело в интерфейсе (Columns UI, сборка от Alex Realist):
Окно проигрывателя теперь выглядит так (см. в правой части):

Изображение

Проигрыватель при этом играет, и в Default User Interface всё нормально отображается.
Как починить?
Переустановка проигрывателя не помогает.
Marillion78
Автор темы
Репутация: 0
С нами: 6 лет 4 месяца

Сообщение #2 vladj » 25.04.2015, 19:04

Поищи в сборке файлик с расширением .fcl и если есть такой, то попробуй с него восстановится, т.е.
Preferences > Columns U1 > Main > Import и там указываешь путь к файлу. Возможно файл отката там
не один (.fcl) и пробовать можно любой из них.
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Аватара
Откуда: Пермский край
Репутация: 422
С нами: 11 лет 7 месяцев

Сообщение #3 вовасбрат » 26.04.2015, 00:02

проверь на любом другом фубаре где есть WSH... если тоже самое, то что-то с виндой.
вовасбрат M
Аватара
Возраст: 52
Откуда: ТАМБОВ
Репутация: 52
С нами: 9 лет

Сообщение #4 Marillion78 » 26.04.2015, 12:53

vladj:Поищи в сборке файлик с расширением .fcl и если есть такой, то попробуй с него восстановится, т.е.
Preferences > Columns U1 > Main > Import и там указываешь путь к файлу. Возможно файл отката там
не один (.fcl) и пробовать можно любой из них.

Нашел файлики, каждый для разных тем (оболочек).
С некоторыми оболочками все равно получается окно с сообщением "Aw, crashed :(", а в некоторых оболочках (в т.ч. в Default User Interface) такое окно отсутствует.

Добавлено спустя 11 минут 7 секунд:
вовасбрат:проверь на любом другом фубаре где есть WSH... если тоже самое, то что-то с виндой.

Не знаю, что такое WSH, обнаружил только, что если щелкнуть правой кнопкой мыши по окну с надписью "Aw, crashed :(" и выбрать в контекстном меню пункт "Configure" то появляется окно с названием "WSH Panel Mod Configuration", есть выбор для Script Engine: JScript или VBScript.

Внутри окна текст с таким содержанием:
Спойлер
var empty_rating_file = gdi.Image(fb.FoobarPath + "images\\similar_wmp_12\\STAR1.png");
var empty_rating2_file = gdi.Image(fb.FoobarPath + "images\\similar_wmp_12\\STAR2.png");
var checked_rating_file = gdi.Image(fb.FoobarPath + "images\\similar_wmp_12\\STAR3.png");
var focus_playing = false;
var g_focus_metadb = null;
var g_move = null;
var xpos;
var ypos;
var g_timer = window.CreateTimerInterval(500);

var property_spectrum = window.GetProperty("Spectrum.Enabled", true);
var property_tempdir = window.GetProperty("Spectrum.Temp-dir", true);

// Flags, used with GdiDrawText()
DT_LEFT = 0x00000000;
DT_RIGHT = 0x00000002;
DT_END_ELLIPSIS = 0x00008000;

var empty_rating = null;
var empty_rating2 = null;
var checked_rating =null;
set_font();
set_colors();
set_images();

function RGB(r,g,b){
return (0xff000000|(r<<16)|(g<<8)|(b));
}
function EmulEsGroupLineColor(color1,color2){
var color1a=color1-4278190080;
var r1=Math.floor(color1a/65536);
var g1=Math.floor((color1a-r1*65536)/256);
var b1=(color1a-r1*65536)-(g1*256);
var color2a=color2-4278190080;
var r2=Math.floor(color2a/65536);
var g2=Math.floor((color2a-r2*65536)/256);
var b2=(color2a-r2*65536)-(g2*256);
var r3=Math.floor((r1*1.04+r2)/2.03);
var g3=Math.floor((g1*1.04+g2)/2.03);
var b3=Math.floor((b1*1.05+b2)/2.04);
return RGB((r3>255) ? 255 : r3,(g3>255) ? 255 : g3,(b3>255) ? 255 : b3);
}
function set_font(){
g_font = window.GetFontCUI(0);
}
function set_colors(){
title_back_color = RGB(200,225,250);
title_fore_color = RGB(0,41,99);
back_color = window.GetColorCUI(3);
text1_color = window.GetColorCUI(0);
text2_color = RGB(0,100,200);
line_color = EmulEsGroupLineColor(window.GetColorCUI(0),window.GetColorCUI(3));
}
function set_images(){
// empty_rating
if(empty_rating) empty_rating.Dispose();
empty_rating = gdi.CreateImage(13, 13);
var gp = empty_rating.GetGraphics();
gp.FillSolidRect(0, 0, 13, 13, back_color);
gp.DrawImage(empty_rating_file, 0, 0, 13, 13, 0, 0, 13, 13);
empty_rating.ReleaseGraphics(gp);
// empty_rating2
if(empty_rating2) empty_rating2.Dispose();
empty_rating2 = gdi.CreateImage(13, 13);
var gp = empty_rating2.GetGraphics();
gp.FillSolidRect(0, 0, 13, 13, back_color);
gp.DrawImage(empty_rating2_file, 0, 0, 13, 13, 0, 0, 13, 13);
empty_rating2.ReleaseGraphics(gp);
// checked_rating
if(checked_rating) checked_rating.Dispose();
checked_rating = gdi.CreateImage(13, 13);
var gp = checked_rating.GetGraphics();
gp.FillSolidRect(0, 0, 13, 13, back_color);
gp.DrawImage(checked_rating_file, 0, 0, 13, 13, 0, 0, 13, 13);
checked_rating.ReleaseGraphics(gp);
}
function on_paint(gr){
var ww = window.Width;
var wh = window.Height;

gr.FillSolidRect(0, 0, ww, wh, back_color);
gr.SetTextRenderingHint(5);

gr.FillGradRect(4, 1, ww-4, 14, 0, title_back_color, back_color);
gr.FillRoundRect(1, 0, 4, 15, 2, 2, title_back_color);
gr.GdiDrawText("›› General Information", g_font, title_fore_color, 4, 1, ww, 14, DT_LEFT);
gr.FillSolidRect(122, 8, ww-124, 1, line_color);

gr.GdiDrawText("Codec:", g_font, text1_color, 5, 14, 70, 14, DT_RIGHT);
gr.GdiDrawText("Codec Profile:", g_font, text1_color, 5, 28, 70, 14, DT_RIGHT);
gr.GdiDrawText("Bitrate:", g_font, text1_color, 5, 42, 70, 14, DT_RIGHT);
gr.GdiDrawText("Channels:", g_font, text1_color, 5, 56, 70, 14, DT_RIGHT);
gr.GdiDrawText("Sample Rate:", g_font, text1_color, 5, 70, 70, 14, DT_RIGHT);
gr.GdiDrawText("Tool:", g_font, text1_color, 5, 84, 70, 14, DT_RIGHT);
gr.GdiDrawText("Tag Type:", g_font, text1_color, 5, 98, 70, 14, DT_RIGHT);
gr.GdiDrawText("File Size:", g_font, text1_color, 5, 112, 70, 14, DT_RIGHT);

gr.FillGradRect(4, 134, ww-4, 14, 0, title_back_color, back_color);
gr.FillRoundRect(1, 133, 4, 15, 2, 2, title_back_color);
gr.GdiDrawText("›› Playback Statistics", g_font, title_fore_color, 4, 134, ww, 14, DT_LEFT);
gr.FillSolidRect(110, 141, ww-112, 1, line_color);

gr.GdiDrawText("First Played:", g_font, text1_color, 5, 147, 70, 14, DT_RIGHT);
gr.GdiDrawText("Last Played:", g_font, text1_color, 5, 161, 70, 14, DT_RIGHT);
gr.GdiDrawText("Played:", g_font, text1_color, 5, 175, 70, 14, DT_RIGHT);

gr.FillGradRect(4, 197, ww-4, 14, 0, title_back_color, back_color);
gr.FillRoundRect(1, 196, 4, 15, 2, 2, title_back_color);
gr.GdiDrawText("›› Rating", g_font, title_fore_color, 4, 197, ww, 14, DT_LEFT);
gr.FillSolidRect(52, 204, ww-54, 1, line_color);

var key_playing = fb.TitleFormat("%path%\\%subsong%").Eval();
focus_playing = false;

g_focus_metadb = fb.GetFocusItem();
if(g_focus_metadb){
var key_focus = fb.TitleFormat("%path%\\%subsong%").EvalWithMetadb(g_focus_metadb);
if(key_focus==key_playing) focus_playing = true;

var string1 = fb.TitleFormat("[%codec%][ '('$info(encoding)')']").EvalWithMetadb(g_focus_metadb);
var string2 = fb.TitleFormat("[%codec_profile%]").EvalWithMetadb(g_focus_metadb);
if(focus_playing) var string3 = fb.TitleFormat("$if($strcmp(%codec_profile%,CBR),,~)%bitrate% kbit").Eval();
else var string3 = fb.TitleFormat("$if($strcmp(%codec_profile%,CBR),,~)$info(bitrate) kbit").EvalWithMetadb(g_focus_metadb);
var string4 = fb.TitleFormat("$caps($if3(%__mp3_stereo_mode%,[%channels%]))").EvalWithMetadb(g_focus_metadb);
var string5 = fb.TitleFormat("[%samplerate%' Hz']").EvalWithMetadb(g_focus_metadb);
var string6 = fb.TitleFormat("$if(%__tool%,$if($strcmp($left(%__tool%,4),LAME),$insert($caps(%__tool%),' ',4),%__tool%),n/a)").EvalWithMetadb(g_focus_metadb);
var string7 = fb.TitleFormat("$if3($replace($info(tagtype),|,+),n/a)").EvalWithMetadb(g_focus_metadb);
var string8 = fb.TitleFormat("$insert(%filesize_natural%,' ',$sub($len(%filesize_natural%),2))").EvalWithMetadb(g_focus_metadb);
var string9 = fb.TitleFormat("$if(%first_played%,$day_of_month(%first_played%)'.'$month(%first_played%)'.'$year(%first_played%)' '$substr(%first_played%,12,16),Never Played)").EvalWithMetadb(g_focus_metadb);
var string10 = fb.TitleFormat("$if(%last_played%,$day_of_month(%last_played%)'.'$month(%last_played%)'.'$year(%last_played%)' '$substr(%last_played%,12,16),Never Played)").EvalWithMetadb(g_focus_metadb);
var string11 = fb.TitleFormat("'x '$if3(%play_count%,0)").EvalWithMetadb(g_focus_metadb);
gr.GdiDrawText(string1, g_font, text2_color, 78, 14, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string2, g_font, text2_color, 78, 28, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string3, g_font, text2_color, 78, 42, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string4, g_font, text2_color, 78, 56, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string5, g_font, text2_color, 78, 70, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string6, g_font, text2_color, 78, 84, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string7, g_font, text2_color, 78, 98, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string8, g_font, text2_color, 78, 112, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string9, g_font, text2_color, 78, 147, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string10, g_font, text2_color, 78, 161, ww-80, 14, DT_END_ELLIPSIS);
gr.GdiDrawText(string11, g_font, text2_color, 78, 175, ww-80, 14, DT_END_ELLIPSIS);

xpos = Math.floor((ww-65)/2);
ypos = 212;
if(g_move) var now_check = g_move;
else var now_check = fb.TitleFormat("$if2(%rating%,0)").EvalWithMetadb(g_focus_metadb);
for (i = 0; i < now_check; i++){
gr.DrawImage(checked_rating, xpos+i*13, ypos, 13, 13, 0, 0, 13, 13);
}
for (j = now_check; j < 5; j++){
if(g_move) gr.DrawImage(empty_rating2, xpos+j*13, ypos, 13, 13, 0, 0, 13, 13);
else gr.DrawImage(empty_rating, xpos+j*13, ypos, 13, 13, 0, 0, 13, 13);
}
}
}
function on_item_focus_change(){
window.Repaint();
}
function on_mouse_move(x,y){
if(g_focus_metadb){
if(xpos<=x && x<xpos+65 && ypos<=y && y<ypos+13){
g_move = Math.floor((x-xpos)/13)+1;
window.Repaint();
}
else{
if(g_move){
g_move = null;
window.Repaint();
}
}
}
else if(g_move) g_move = null;
}
function on_mouse_leave(){
g_move = null;
window.Repaint();
}
function on_mouse_lbtn_down(x,y){
if(g_focus_metadb){
if(xpos<=x && x<xpos+65 && ypos<=y && y<ypos+13){
fb.RunContextCommandWithMetadb("Playback Statistics/Rating/" + g_move,g_focus_metadb);
}
}
}
function on_mouse_rbtn_down(x,y){
var _menu = window.CreatePopupMenu();
if(g_focus_metadb){
var current_rating = fb.TitleFormat("$if2(%rating%,0)").EvalWithMetadb(g_focus_metadb);
if(current_rating>0){
_menu.AppendMenuItem(0x00000000, 1, "Delete rating");
_menu.AppendMenuItem(0x00000800, 0, 0);
}
if(property_spectrum){
_menu.AppendMenuItem(0x00000000, 2, "Spectrum");
_menu.AppendMenuItem(0x00000800, 0, 0);
}
}
_menu.AppendMenuItem(0x00000000, 3, "Properties");
_menu.AppendMenuItem(0x00000000, 4, "Configure...");
ret = _menu.TrackPopupMenu(x, y);
switch (ret){
case 1:
fb.RunContextCommandWithMetadb("Playback Statistics/Rating/<not set>",g_focus_metadb);
break;
case 2:
spectrum(g_focus_metadb);
break
case 3:
window.ShowProperties();
break;
case 4:
window.ShowConfigure();
}
_menu.Dispose();
}
function spectrum(prm_metadb){
var subsong=fb.TitleFormat("%subsong%").EvalWithMetadb(prm_metadb);
if(subsong==0){
var workdir = fb.FoobarPath+"\spectrum\\";
if(property_tempdir) var tmpdir = "%temp%\\";
else var tmpdir = workdir;
var batname = workdir+"spectrum.bat";
var filename = fb.TitleFormat("%path%").EvalWithMetadb(prm_metadb);
var lenght = " ("+fb.TitleFormat("%length%=%length_seconds%").EvalWithMetadb(prm_metadb)+")";

var fso = new ActiveXObject("Scripting.FileSystemObject");
if(fso.fileexists(batname)) var ts = fso.OpenTextFile(batname, 2);
else var ts = fso.CreateTextFile(batname, 1);
ts.WriteLine('@echo off');
ts.WriteLine('"'+workdir+'ffmpeg\\ffmpeg.exe" -y -i '+shortname(filename)+' "'+tmpdir+'spectrum.wav"');
ts.WriteLine('"'+workdir+'sox\\sox.exe" "'+tmpdir+'spectrum.wav" -n spectrogram -x 739 -Y 568 -w Hann -S 0 -t "'+filename+lenght+'" -c "Generated with SOX in foobar2000 by Alex Realist" -o "'+tmpdir+'spectrum.png"');
ts.WriteLine('"'+tmpdir+'spectrum.png"');
ts.WriteLine('exit');
ts.Close();

var WshShell = new ActiveXObject("WScript.Shell");
WshShell.run('cmd /c start "spectrum.bat" /min cmd /c "'+batname+'"');
}
else fb.ShowPopupMessage("Spectrum for multiple tracks within single physical file is unreleased in this version.","Information");
}
function shortname(filespec){
var fso2 = new ActiveXObject("Scripting.FileSystemObject");
return(fso2.GetFile(filespec).ShortPath);
}
function on_timer(id){
window.Repaint();
}
function on_colors_changed(){
set_colors();
set_images();
window.Repaint();
}
function on_font_changed() {
set_font();
window.Repaint();
}
//EOF

Я уже чувствую, что если переустановка проигрывателя не помогает, значит вероятно проблема не в проигрывателе, а "что-то с виндой".
Хотелось бы только узнать, что конкретно, и как конкретно это можно исправить (без переустановки винды).

Винда XP.

Может, Ява слетела или что-то подобное, на чем работает оболочка фубара?
Marillion78
Автор темы
Репутация: 0
С нами: 6 лет 4 месяца

Сообщение #5 vladj » 26.04.2015, 13:48

Marillion78:Не знаю, что такое WSH
Это панель, построенная на скрипте. Слетать скрипты могут после обновления винды, после обновления библиотек, после
обновления фубара....причин до и больше. Все сборки от Алекса инсталлируются в систему...а ты попробуй из экзешника
портабельно поставить. Я обычно щёлкаю по экзешнику правой, в контекстном меню 7-Zip > распаковать...ну тут на твоё
усмотрение куда...можно даже на флешку....на любой пользовательский раздел и т.д. Оттуда и запускаю...
Точней подсказать не могу, у меня лежит сборка от Алекса, но она другая, не как у тебя. Т.е. любую сборку, даже дефолтную
можно не инсталлировать в систему, а элементарно распаковать, найти в распакованной папке экзешник и запускать с него.
Тем более такие панели (инфа и рейтинг) я просто выбрасывал, менял на что-то другое ...
HTPC Termaltake, eGlobal i5-7200, Asrock Beebox J3160, Onkyo 525E, цап SMSL, фронт Yamaha 8900.
vladj M
Аватара
Откуда: Пермский край
Репутация: 422
С нами: 11 лет 7 месяцев


Вернуться в Есть вопрос!