PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   АвтоЗвук (http://pccar.ru/forumdisplay.php?f=16)
-   -   Сборка 4iCar аудиоплеера foobar2000 [обсуждение] (http://pccar.ru/showthread.php?t=25942)

seriousstas 20.07.2017 16:18

Цитата:

Сообщение от dk-fsb (Сообщение 389935)
я про это "стоит сказать про OpenAL Soft Binary Distribution. Этот софт тоже требует для работы тот самый пакет от Creative, так что увы это не более новая версия. Установив пакет от Creative, точно также скачиваем необходимый компонент для самого Foobar2k, можно через интерфейс, но мне удобнее ручками. Тут главное в нужную папку положить. Настройка немножко отличается от ASIO. В устройствах вывода звука мы ставим «Отсутствует» или Null в английской версии, а вот в эффектах DSP уже выбираем наш OpenAL. На всякий случай перезагружаем плеер и пробуем. Теперь музыка играет через OpenAl. Мне тоже показался он таким же чистым как ASIO, а в качестве бонуса — OpenAl не блокирует аудиокарту, то есть остальные программы могут по прежнему выводить звук обычным способом. Так что для жизни, наверное удобнее использовать OpenAl" что и куда ложит:dntknw:

Интересно .. найду время обязательно поробую .
или это способ вывода от Creative с его железом ?
тогда врядли.., не на чем)

dk-fsb 20.07.2017 16:51

Цитата:

Сообщение от seriousstas (Сообщение 389937)
Интересно .. найду время обязательно поробую .
или это способ вывода от Creative с его железом ?
тогда врядли.., не на чем)

если я правильно понял из этой статьи http://izzylaif.com/ru/как-улучшить-качество-звука-пк/ что можно настроить с любой звучкой

seriousstas 21.07.2017 03:09

Цитата:

Сообщение от dk-fsb (Сообщение 389939)
если я правильно понял из этой статьи http://izzylaif.com/ru/как-улучшить-качество-звука-пк/ что можно настроить с любой звучкой

пробовал на домашнем - играет какое-то время и вешает фубар ..
Думаю нужна либо поддержка железом :
Цитата:

For Hardware Accelerated sound (Windows Vista/7/8/8.1) Your sound card must have also "native" openal driver
либо это древний компонент , который криво работает с последними версиями Фубара ..

sirota 25.07.2017 11:29

Вложений: 1
Цитата:

Сообщение от dk-fsb (Сообщение 389939)
если я правильно понял из этой статьи http://izzylaif.com/ru/как-улучшить-качество-звука-пк/ что можно настроить с любой звучкой

Нужно попробовать затестить OpenAL

Цитата:

Очень мягкий и без характерных искажений Asio. Не скажу как там с выводом OpenAL в иных проигрывателях, но у Foobar2000 соответствующая ДДЛ-ка имеется: foo_dsp_openal.dll. Организовывал изначально на Creative посредством установки OpenAL v.2.0.7 (у Foobar2000 надо выбирать Null Out в Output Device).



Позже нашел CrystalMixer и перешёл на него: появилась строка OpenAL в выборе модуля. При этом никаких ресемплеров 192->96 эта схема не требует! Т.е. виниловые рипы слушаю как есть, в 192 кГЦ/24-32 бит в режиме карты ЕМ!
Позже делал у товарища эксперимент и на Асусе! Завелась данная схема!!! И там, да, Asio монополен, звук не регулируется вообще. С Creative в этом плане Asio регулировка имеется, можно WMC-пультом даже управлять. smile

dk-fsb 25.07.2017 12:07

http://crystal-mixer.sourceforge.net

sirota 25.07.2017 12:24

Цитата:

Сообщение от dk-fsb (Сообщение 390066)

Хочешь сказать, что это по серьезней будет?

dk-fsb 25.07.2017 12:46

Цитата:

Сообщение от sirota (Сообщение 390069)
Хочешь сказать, что это по серьезней будет?

все побывать надо

sirota 25.07.2017 13:38

Цитата:

Сообщение от dk-fsb (Сообщение 390070)
все пробывать надо

Поставил, завилось, как смог в DSP настроил, звук пошел, при выборе следующего трека происходит зависание с вылетом фубара.

avic 25.07.2017 13:57

Есть предложение (возможно в дальнейшем). В центрифуге была удобная кнопочка перебора плейлистов. просто перебирала по кругу последние игравшиеся плейлисты (5 или 10). понятно, что можно организовать в текущей сборке хоткеями, но рулевые клавиши итак все задействованы на хоткеи для других нужд.
Также было бы удобно на основе вида экрана с обложкой (где слева обложка ) создать новое представление, куда вынести часто используемые кнопки (чтобы тыкать удобно было) - перебора плейлистов, добавления трека в избранное, удаления трека и т.п.

seriousstas 25.07.2017 14:57

avic
Кнопок добавить можно - просто даю 100%
будут те , которые будут просить кнопки удалить .. Проходили))
+ если добавлять панель кнопок слева - будут уменьшены остальные панели ,
на 7 ` это не допустимо ..
Сейчас Евгений работает над удалением большинства кнопок и интеграции последней версии сборки в Икар.

В любом случає можно подумать (блже к осени) , но Ты на фотошопь вначале , ок ?

avic 25.07.2017 15:03

Кнопки имею ввиду в том месте, где слева отображается обложка. Т.е. как один из вариантов представления. Кому кнопки не нужны - могут не использовать данное представление. ОК попробую прикинуть

seriousstas 25.07.2017 15:34

Цитата:

Сообщение от avic (Сообщение 390077)
Кнопки имею ввиду в том месте, где слева отображается обложка. Т.е. как один из вариантов представления. Кому кнопки не нужны - могут не использовать данное представление. ОК попробую прикинуть

Хорошо ! )

bukaxa 28.08.2017 00:31

классная сборка, подскажите как перенести сборку в автокомпьютер. Допустим мне легче под себя допилить дома на стационаре, а затем уже в авто скинуть. а тут инсталятор, он гдето следы оставляет еще? И как полностью удалить?

seriousstas 28.08.2017 01:32

Цитата:

Сообщение от bukaxa (Сообщение 391502)
классная сборка, подскажите как перенести сборку в автокомпьютер. Допустим мне легче под себя допилить дома на стационаре, а затем уже в авто скинуть. а тут инсталятор, он гдето следы оставляет еще? И как полностью удалить?

Инсталятор делался для удобства добавленя пары функций :
1 - передача тегов из плеера в IcarDS ( на главном экране вывод информации ).
2 - добавления аватарок для онлайн пролушивания .
Те , если нет Икара и нет інтернета - добавления не нужны ..
В остальном - сборка полностью портабельна и переносится удаляется папкой , куда загружена .
В реестре лишь парочка записей о месторасположении папки.

avic 28.08.2017 12:37

Есть предложение по реорганизации случайного режима прослушивания. Сейчас, если слушаешь в случайном порядке, и захочешь вернуться на одну-две песни (или радиостанции) назад (ещё раз послушать) - не получится, потому что обратно тоже идет случайный порядок.
В Centrafuse если по трекам идти назад - включается последовательный режим. И можешь послушать то, что раньше слушал.

seriousstas 29.08.2017 01:04

Цитата:

Сообщение от avic (Сообщение 391523)
Есть предложение по реорганизации случайного режима прослушивания. Сейчас, если слушаешь в случайном порядке, и захочешь вернуться на одну-две песни (или радиостанции) назад (ещё раз послушать) - не получится, потому что обратно тоже идет случайный порядок.
В Centrafuse если по трекам идти назад - включается последовательный режим. И можешь послушать то, что раньше слушал.

Имеем Shuffle и Random
Первый возвращает к предидущему треку (как в предложении ..).
Второй - только вперед .
Обе ф-ции зашиты в сам плеер и изменять их поведение может только его разработчик Peter Pawlowski

bukaxa 29.08.2017 23:11

настроил сборку на стационаре, поставил свои настройки и скопировал в авто, все супер только размер окна подстроил. сборка работает шустро и красиво.
теперь к теме не относится, вчера баловался на домашнем - дай думаю через наушники попробую поиграться с озоном. наушники под рукой блютузовские нокиа 504 пытаюсь подключить а наушники тупо зависают только сброс настроек помогает, с любыми другими приложениями работают, с фубарами различных сборок тоже без проблем, а именно с этим и прошлыми версиями 4Icar сразу ступор, не знаю кто наушникам не дает работать, фубару ничего! а наушники в ребут)))

seriousstas 29.08.2017 23:38

Цитата:

Сообщение от bukaxa (Сообщение 391641)
настроил сборку на стационаре, поставил свои настройки и скопировал в авто, все супер только размер окна подстроил. сборка работает шустро и красиво.
теперь к теме не относится, вчера баловался на домашнем - дай думаю через наушники попробую поиграться с озоном. наушники под рукой блютузовские нокиа 504 пытаюсь подключить а наушники тупо зависают только сброс настроек помогает, с любыми другими приложениями работают, с фубарами различных сборок тоже без проблем, а именно с этим и прошлыми версиями 4Icar сразу ступор, не знаю кто наушникам не дает работать, фубару ничего! а наушники в ребут)))

А я вчера как-раз на работе поставил MeeGoPad T09 ( c 10 кой) и скрестил с малюткой JBL GO - Без проблем . Запустил любимую станцию из 4Icar .
Посмотри, проверь , что там у тебя в Output ..
JBL GO кстати подойдет для свободных рук в авто (можно и музыку слушать с тела без искажений) ..
Оч не плохой звук для таких размеров .

bukaxa 30.08.2017 09:51

выход смотрел в первую очередь, все варианты перебрал. да ладно останется в домашке винтаж https://youtu.be/2pT4V3nlg50

Евген_21 30.08.2017 19:45

Стас, привет. По панелями идёт работа или пока нет времени. А то я тоже встал, или подскажи где поменять размеры панелей . И ещё вопрос в mps.панели есть перерисовка кнопок?

seriousstas 30.08.2017 20:15

Цитата:

Сообщение от Евген_21 (Сообщение 391672)
Стас, привет. По панелями идёт работа или пока нет времени. А то я тоже встал, или подскажи где поменять размеры панелей . И ещё вопрос в mps.панели есть перерисовка кнопок?

Привет Евгений! Сразу после 1-го.. )

Евген_21 30.08.2017 22:56

Цитата:

Сообщение от seriousstas (Сообщение 391675)
Привет Евгений! Сразу после 1-го.. )

Хорошая новость, ждемс.

seriousstas 03.09.2017 23:11

Цитата:

Сообщение от Евген_21 (Сообщение 391684)
Хорошая новость, ждемс.

Сегодня открыл , нормально потестил и понял , какую огромную работу Ты проделал ..
Есть сырые места , но думаю это вопрос времени ..
Вобщем - Респект !

Панели опустил , посмотрю , что можно сделать с кнопкой стерео/моно для VU
....
получилось . повесил на NUM7
=> отправил в ЛС

Евген_21 04.09.2017 16:59

Вложений: 3
Цитата:

Сообщение от seriousstas (Сообщение 391793)
Сегодня открыл , нормально потестил и понял , какую огромную работу Ты проделал ..
Есть сырые места , но думаю это вопрос времени ..
Вобщем - Респект !

Панели опустил , посмотрю , что можно сделать с кнопкой стерео/моно для VU
....
получилось . повесил на NUM7
=> отправил в ЛС

Стас, привет. Вот теперь полная картина.
Есть, пару нюансов.
На кнопке, где иконка динамика была функция вызова панели регулировки звука фубара (родная) а при повторном нажатии панель сибкара. Можно это будет реализовать.
Вложение 48072
Вот пример, на скрине ниже. Вставил старый кусок кода, но вызывается только сибкар.
Вложение 48073
И на панели vumeter,убрать то что стрелкой отмечено или поднять индикаторы выше. А так , вообще нормуль смотрится. Самому нравиться:smile1:
Вложение 48074
Цитата:

Есть сырые места , но думаю это вопрос времени ..
А,здесь подскажи. Может я уже что то не замечаю. Буду признателен.
Моно, стерео (Numpad7) уже повесил на кнопку скина.

seriousstas 05.09.2017 11:44

Цитата:

На кнопке, где иконка динамика была функция вызова панели регулировки звука фубара (родная) а при повторном нажатии панель сибкара.
Было и сломалось или это в планах ?
Что нужно сделать , что-б хоткеем менялись звук-сикбар, по очереди ?

vladj 05.09.2017 16:26

Цитата:

Сообщение от seriousstas (Сообщение 391867)
Что нужно сделать , что-б хоткеем менялись звук-сикбар, по очереди ?

У меня в одной из сборок при тапе по кнопке громкости панелька просто
встает поверх сикбара, положение их прописано одинаково...
$movepanel_c(VB,60,2,$sub(%ps_width%,180),52)
$movepanel_c(SB,60,8,$sub(%ps_width%,180),46)
и прописана кнопка вызова панельки громкости для интерфейса этой сборки
//---------vol button
$if($isvisible_c(VB),
$textbutton($sub(%ps_width%,200),$sub(%ps_height%, 60),100,60,,,
PANELSHOW:VB:0;$drawimage($sub(%ps_width%,200),$su b(%ps_height%,60),100,60,%img_path%\volumeh.png,no keepaspect,,)
REFRESH)
,
$textbutton($sub(%ps_width%,200),$sub(%ps_height%, 60),100,60,,,
PANELSHOW:VB:1;$drawimage($sub(%ps_width%,200),$su b(%ps_height%,60),100,60,%img_path%\volume.png,nok eepaspect,,)
REFRESH)
)

Евген_21 06.09.2017 16:30

Цитата:

Сообщение от seriousstas (Сообщение 391867)
Было и сломалось или это в планах ?
Что нужно сделать , что-б хоткеем менялись звук-сикбар, по очереди ?

Скинул в личку , правленый код (mps_panel). Сделал , теперь при нажатии кнопки громкости вызываются панели поочередно. Но, когда активен сибкар, если нажать на прицел (т.е. иконка перезагрузка) он не скрывается. На панели регулировки звука такой проблемы нет. И еще при вызове панели рег. звука, можно как то сделать чтоб она не поднимала другие панели а налаживалась поверх. И хотелось бы автоскрытие их же :blush:
На днях буду тестить в машине.

seriousstas 07.09.2017 18:10

Цитата:

Сообщение от Евген_21 (Сообщение 391951)
Скинул в личку , правленый код (mps_panel). Сделал , теперь при нажатии кнопки громкости вызываются панели поочередно. Но, когда активен сибкар, если нажать на прицел (т.е. иконка перезагрузка) он не скрывается. На панели регулировки звука такой проблемы нет. И еще при вызове панели рег. звука, можно как то сделать чтоб она не поднимала другие панели а налаживалась поверх. И хотелось бы автоскрытие их же :blush:
На днях буду тестить в машине.

ок, на выходных посмотрю ..
....
на этих доделаю )), чтоб и сик и звук поверх были нужно было панели все смещать..

Евген_21 15.09.2017 15:54

Закинул, сборку в машину с новым шаблоном. Тестирую , пока. Как вся эта система будет работать после сна и гибернации. А так доволен как слон:tease: На днях скину видео как все работает.Стас, и как мои хотелки:whistle:
И ещё можно почистить код сибкара от (даты, артиста и.т.д.)

seriousstas 15.09.2017 16:34

С хотелками думаю будет норм,
а сик зачаем чистить ? тапнул (дважды) и отключил лишнее или все полностью ..
Да и без надписей со звуком легче спутать ..

Евген_21 15.09.2017 17:55

Цитата:

Сообщение от seriousstas (Сообщение 392237)
С хотелками думаю будет норм,
а сик зачаем чистить ? тапнул (дважды) и отключил лишнее или все полностью ..
Да и без надписей со звуком легче спутать ..

Я по сибкару так и сделал ,просто подумал что меньше всяких заморочек будет и проблем и нагрузок на фубар.
Кстати много чего поправил в шаблоне, как только дождусь от тебя твоей работы скину финал , (так думаю финал ) скина.

seriousstas 16.09.2017 15:12

Цитата:

Сообщение от Евген_21 (Сообщение 392238)
Я по сибкару так и сделал ,просто подумал что меньше всяких заморочек будет и проблем и нагрузок на фубар.
Кстати много чего поправил в шаблоне, как только дождусь от тебя твоей работы скину финал , (так думаю финал ) скина.

Посмотри, может пропустил чего ..
PHP код:

function RGBA(rgba) {
    return ((
<< 24) | (<< 16) | (<< 8) | (b));
}
function 
RGB(rgb) {
    return (
0xff000000 | (<< 16) | (<< 8) | (b));
}
var 
DT_TOP 0x00000000;
var 
DT_WORDBREAK 0x00000010;
var 
DT_CALCRECT 0x00000400;
var 
DT_CALCRECT 0x00000400;
var 
DT_NOPREFIX 0x00000800;
var 
DT_LEFT 0x00000000;
var 
DT_RIGHT 0x00000002;
var 
DT_CENTER 0x00000001;
var 
DT_VCENTER 0x00000004;
var 
DT_SINGLELINE 0x00000020;
var 
DT_WORD_ELLIPSIS 0x00040000;
var 
font gdi.Font("Segoe MDL2 Assets"40);
var 
font_big gdi.Font("Segoe MDL2 Assets"50);
var 
font2 gdi.Font("Segoe UI Symbol"25);
var 
g_font gdi.Font("Arial"230);
var 
Path fb.FoobarPath;
var 
g_img gdi.Image(Path "\\themes\\resize_img.png");
var 
is_VU window.GetProperty("is_VU")
var 
WshShell = new ActiveXObject("WScript.Shell");
var 
ctrl_exe "ctrl.exe";
var 
ww window.Width;
var 
wh window.Height;
var 
flag false;
var 
name "4Icar";
var 
imgPath fb.FoobarPath "Themes\\" name "\\Images\\";
try {
    var 
btn_type window.GetProperty("SYS.Button Folder""btn_set_1");
};
catch (
e) {}
var 
is_rr_on true;
try {
    var 
rr = new ActiveXObject("RideRunner.sdk");
} catch (
e) {
    
is_rr_on false;
}
var 
foob_window_title_prev "";
//var FoobarWindowTitle = "";
//var FoobarTrimTitle = "";
var foob_media_info "";
var 
foob_trim_title "";
var 
foob_ttrim_title "";
var 
foob_strim_title "";

is_rr_on title_check_timer window.CreateTimerInterval(500) : title_check_timer false && title_check_timer.Dispose;


function 
on_metadb_changed() {
is_rr_on && title_set();
}

var 
m_t window.GetProperty("Mouse_touch"1);
var 
rot1 gdi.Image(imgPath "Buttons\\" btn_type "\\rot1.png")
    var 
rot2 gdi.Image(imgPath "Buttons\\" btn_type "\\rot2.png")
    var 
rot3 gdi.Image(imgPath "Buttons\\" btn_type "\\rot3.png")
    var 
rot4 gdi.Image(imgPath "Buttons\\" btn_type "\\rot4.png")
    var 
DSP_S_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\dsp_s.png")
    var 
gdi.Image(imgPath "Buttons\\" btn_type "\\BUTTON.png");
var 
ZERRO gdi.Image(imgPath "Buttons\\" btn_type "\\ZERRO.png");
var 
ANIM_BUT gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT.png");
var 
ANIM_BUT_L gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_L.png");
var 
ANIM_BUT_R gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_R.png");
var 
ANIM_BUT_L1 gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_L1.png");
var 
ANIM_BUT_L2 gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_L2.png");
var 
ANIM_BUT_L2 gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_L2.png");
var 
ANIM_BUT_R1 gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_R1.png");
var 
ANIM_BUT_R2 gdi.Image(imgPath "Buttons\\" btn_type "\\ANIM_BUT_R2.png");
var 
NEXT_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\NEXT_ICO.png");
var 
PREV_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\PREV_ICO.png");
var 
PLAY_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\PLAY_ICO.png");
var 
PAUSE_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\PAUSE_ICO.png");
var 
STOP_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\STOP_ICO.png");
var 
SEARCH_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\search.png");
var 
LIBRARY1_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\lib1.png");
var 
LIBRARY2_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\lib2.png");
var 
CLEAR_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\clear.png");
var 
CLOSE_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\close.png");
var 
DEL_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\del.png");
var 
DSP_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\dsp.png");
var 
MILK_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\milk.png")
    var 
PLAYLIST_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\playlist.png");
var 
PREF_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\pref.png");
var 
SEARCH_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\search.png");
var 
SHOWNPL_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\show_now_pl.png");
var 
TAB_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\tab.png");
var 
TOOLBAR_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\toolbar_on.png");
var 
TOOLBAR_ICO_OFF gdi.Image(imgPath "Buttons\\" btn_type "\\toolbar_off.png"); ;
var 
ROTATE_ICO gdi.Image(imgPath "Buttons\\" btn_type "\\rotate.png");
var 
WshShell = new ActiveXObject("WScript.Shell");
var 
CtrlDown ShiftDown button_timer xy false;
var 
button_timeout;
var 
hbtn;
var 
dbtn;
var 
rbtn_up true;
var 
tooltip window.CreateTooltip();
function 
Button(xywhimgimg2onclick) {
    
this.x;
    
this.y;
    
this.w;
    
this.h;
    
this.img img;
    
this.img2 img2;
    
this.onclick onclick;
    
this.state 0;
    
this.opacity 0;
    
this.refresh 0;
    
this.xy = function (xy) {
        return (
this.<= x) && (<= this.this.w) && (this.<= y) && (<= this.this.h);
    }
    
this.changeState = function (state) {
        if (!
button_timer)
            
button_timer window.CreateTimerInterval(60);
        
window.RepaintRect(this.2this.2this.4this.4);
        
this.state state;
        
this.refresh 1;
    }
    
this.draw = function (gr) {
        var 
state this.state;
        var 
op this.opacity;
        
on_draw(grxywhimgimg2opstate);
    }
    
this.Opacity = function () {
        if (
this.state == && this.opacity 255)
            
this.opacity Math.min(this.opacity 10255);
        if (
this.state == && this.opacity 0)
            
this.opacity Math.max(0this.opacity 10);
        if (
this.opacity == 0) {
            
this.refresh 0;
            
button_timeout window.CreateTimerTimeout(0);
        }
    };
    
this.onClick = function () {
        
this.onclick && this.onclick();
    }
}
buttons_on_mouse_move = function (xy) {
    
xy false;
    for (var 
0$buttons.lengthi++)
        if (
$buttons[i].xy(xy)) {
            
xy true;
            if (
hbtn != $buttons[i]) {
                if (
hbtn)
                    
hbtn.changeState(0);
                
hbtn $buttons[i];
                
hbtn.changeState(m_t);
            };
        }
    if (
xy == false) {
        if (
hbtn) {
            
hbtn.changeState(0);
            
hbtn undefined;
        };
    }
}
buttons_on_mouse_lbtn_down = function (xy) {
    if (
hbtn) {
        
dbtn hbtn;
        
dbtn.changeState(2);
    }
}
buttons_on_mouse_lbtn_up = function (xy) {
    if (
dbtn) {
        
dbtn.changeState(1);
        
dbtn.onClick();
        
dbtn undefined;
    }
}
buttons_on_mouse_leave = function () {
    if (
hbtn) {
        
hbtn.changeState(0);
        
hbtn undefined;
    }
}
buttons_on_timer = function (id) {
    if (
button_timeout && id == button_timeout.ID) {
        if (
button_timer)
            
window.KillTimer(button_timer);
        
button_timer false;
    }
    for (var 
0$buttons.lengthi++) {
        if (
$buttons[1].refresh) {
            
$buttons[1].Opacity();
        }
    }
}
SYS_check();
function 
on_playback_stop(reason) {
    switch (
reason) {
    case 
0:
    case 
1:
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
        break;
    case 
2:
        break;
    };
};

window.NotifyOthers("SYS.Button Folder"btn_type)
var 
set_path fb.ProfilePath "\\settings\\";
var 
CTRL_prop window.GetProperty("_CTRL_Time_Wait"15000)
    
window.SetProperty("_CTRL_Time_Wait"CTRL_prop);
utils.WriteINI(set_path 'settings.ini''ctrl_timer''TimeWait'CTRL_prop)
utils.WriteINI(set_path 'settings.ini''plmanager''plmanager_status'0)
if (
Man_set_off utils.ReadINI(set_path 'settings.ini''close_man''man_off') == 2) {
    
utils.WriteINI(set_path 'settings.ini''close_man''man_off'0);
    
f
}
var 
man window.GetProperty("SYS.Man Switch"0);
// прогрессбар
function default_layout() {
pss.GetPanel(c_panel).Show();
pss.GetPanel(c_panel).Move(0ywwwh-5true);  
//pss.GetPanel(0).Show(false); 
//pss.GetPanel(0).Move(bw * 3, wh - bh - 3, ww - bw * 6, bh - 2, false);  //было true
if (panel == 9)
{
pss.GetPanel(c_panel).Show();
pss.GetPanel(c_panel).Move(00wwwh bhtrue);  

pss.GetPanel(7).Show();
pss.GetPanel(7).Move(0wh bhwwwhtrue); // было true
}
};

SM_CXVSCROLL 2;
SM_CYHSCROLL 3;
var 
VK_BACK 0x08;
var 
VK_RETURN 0x0D;
var 
VK_SHIFT 0x10;
var 
VK_CONTROL 0x11;
var 
VK_ALT 0x12;
var 
VK_ESCAPE 0x1B;
var 
VK_PGUP 0x21;
var 
VK_PGDN 0x22;
var 
VK_END 0x23;
var 
VK_HOME 0x24;
var 
VK_LEFT 0x25;
var 
VK_UP 0x26;
var 
VK_RIGHT 0x27;
var 
VK_DOWN 0x28;
var 
VK_INSERT 0x2D;
var 
VK_DELETE 0x2E;
var 
VK_SPACEBAR 0x20;
var 
VK_Z 0x5A;
var 
VK_X 0x58;
var 
VK_Q 0x51;
var 
VK_A 0x41;
var 
VK_I 0x49;
var 
VK_E 0x45;
var 
VK_J 0x4A;
var 
VK_T 0x54;
var 
VK_U 0x55;
var 
VK_Y 0x59;
var 
VK_NUMPAD0 0x60
    
var VK_NUMPAD1 0x61
    
var VK_NUMPAD2 0x62
    
var VK_NUMPAD3 0x63
    
var VK_NUMPAD4 0x64
    
var VK_NUMPAD7 0x67
    
var VK_NUMPAD9 0x69
    
var KMask = {
    
none0,
    
ctrl1,
    
shift2,
    
ctrlshift3,
    
ctrlalt4,
    
ctrlaltshift5,
    
alt6
};
function 
GetKeyboardMask() {
    var 
utils.IsKeyPressed(VK_CONTROL) ? true false;
    var 
utils.IsKeyPressed(VK_ALT) ? true false;
    var 
utils.IsKeyPressed(VK_SHIFT) ? true false;
    var 
ret KMask.none;
    if (
&& !&& !s)
        
ret KMask.ctrl;
    if (!
&& !&& s)
        
ret KMask.shift;
    if (
&& !&& s)
        
ret KMask.ctrlshift;
    if (
&& && !s)
        
ret KMask.ctrlalt;
    if (
&& && s)
        
ret KMask.ctrlaltshift;
    return 
ret;
};
var 
autolibtopl window.GetProperty("Auto Library to Playlist"false)
    var 
WshShell = new ActiveXObject("WScript.Shell");
var 
fso = new ActiveXObject("Scripting.FileSystemObject")
    var 
NOW_prop 1600;
var 
TAB_prop window.GetProperty("_TAB_Timer"10) * 1000;
var 
SEEK_VOL_prop window.GetProperty("_TAB_Timer"10) * 1000;
var 
DEL_prop window.GetProperty("_DEL_Timer"25) * 1000;
var 
LIB_prop window.GetProperty("_LIB_Timer"20) * 1000;
var 
VU_prop window.GetProperty("_VU_Timer"5) * 1000;
var 
Milk_prop window.GetProperty("_Milk_Timer"6) * 1000;
var 
swbt window.GetProperty("swbt"3);
var 
swvk window.GetProperty("swvk"0);
var 
SEEK_VOL_Timer false;
var 
Milk_Timer false;
var 
DEL_Timer false;
var 
LIB_Timer false;
var 
TAB_Timer false;
var 
VU_Timer false;
var 
NOW_Timer false;
var 
toolbar_timer false;
var 
click_timer false;
var 
btn_switch_timer false;
var 
butt_type window.GetProperty("PROP.Button_type""space.exe");
var 
butt_type2 window.GetProperty("PROP.Button_type2""shift.exe");
var 
toolbar_prop window.GetProperty("PROP.Toolbar_Timer"10) * 1000;
var 
click_prop window.GetProperty("PROP.Click_Timer"30);
var 
btn_switch_prop window.GetProperty("PROP.Button_Switch_Timer"3) * 900;
var 
pb_font_name_prop window.GetProperty("Playback Time Font Name""Segoe UI");
var 
pb_font_size_prop window.GetProperty("Playback Time Font Size"25);
var 
window.GetProperty("SYS.Button Switch"1);
var 
set_path_wsh_data fb.ProfilePath "\\wsh_data\\";
var 
set_path2_wsh_data download_folder "\\wsh_data\\";
var 
download_folder window.GetProperty("Download to Disk""D:\\")
    var 
custom_folder window.GetProperty("Download to Custom Folder|Disk"false);
var 
sw_vu window.GetProperty("VU buttons auto hide"false);
var 
sw_lib window.GetProperty("LIB buttons_Status"true);
var 
window.GetProperty("swsq"0), swsq
//if (panel == 5) {
//}

try {
    var 
btn_type window.GetProperty("SYS.Button Folder""btn_set_1");
};
catch (
e) {
    var 
btn_type "btn_set_1";
};
var 
imgPath fb.FoobarPath "Themes\\" name "\\Images\\";
var 
= new Date();
var 
g_font gdi.Font(pb_font_name_proppb_font_size_prop0);
var 
g_font2 gdi.Font(pb_font_name_proppb_font_size_prop 20);
var 
dsp_color RGBA(210210210100);
var 
dsp_off 0;
var 
bw B.width;
var 
bh B.height;
var 
background_color window.GetProperty("COLOR.Background""RGB(0,0,0)");
var 
bottom_gradient_color window.GetProperty("COLOR.Bottom Gradient 1""RGBA(15,15,15,200)");
var 
bottom_gradient_color2 window.GetProperty("COLOR.Bottom Gradient 2""RGBA(50,50,50,200)");
var 
bottom_gradient_color_angle1 window.GetProperty("COLOR.Bottom Gradient 1 Angle", -90);
var 
bottom_gradient_color_angle2 window.GetProperty("COLOR.Bottom Gradient 2 Angle"90);
var 
bottom_gradient_color_angle3 window.GetProperty("COLOR.Bottom Gradient 3 Angle", -90);
var 
g_background_color 0g_bottom_gradient_color 0g_bottom_gradient_color2 0;
function 
get_colors() {
    if (
background_color.length 0)
        
g_background_color = eval(background_color);
    if (
bottom_gradient_color.length 0)
        
g_bottom_gradient_color = eval(bottom_gradient_color);
    if (
bottom_gradient_color2.length 0)
        
g_bottom_gradient_color2 = eval(bottom_gradient_color2);
};
function 
on_colors_changed() {
    
get_colors();
    
CollectGarbage();
    
window.Repaint();
};
get_colors();
var 
sac saci lbtn_down false;
var 
anim_time_step window.GetProperty("SYS.Animation keyb Time Step setup"3);
var 
anim_step window.GetProperty("SYS.Animation keyb Panel Step setup"8);
var 
animation_status window.GetProperty("SYS.Animation_Status"false);
var 
a_timer anim_time_step;
var 
panel window.GetProperty("SYS.panel"6);
var 
c_panel paneln_panel;
var 
panels 12;
var 
old_panel panel;
var 
dir_movemove false;
var 
3;
var 
is_plmanager 0;
var 
c_x 0;
var 
n_x 0;
var 
c_ww 0;
var 
n_ww 0;
var 
timer_anim false;
var 
step_c anim_step;
var 
step_n anim_step;
var 
toolbar_open 0;
var 
on_mouse false;
function 
recalc_dimensions() {
    
animation_status window.GetProperty("SYS.Animation_Status")
        
window.GetProperty("swsq");
    
ww window.Width;
    
wh window.Height;
    
bh B.height;
    
bw B.width;
    
bx B.width;
    
//by = wh - ANIM_BUT.height / 3 - 4;
    
by wh ANIM_BUT.height 4;
    var 
ROT_var;
    if (
panel == 6) {
        
ROT_var rot1;
        
swbt 3;
    } else if (
panel == 10) {
        
swbt 3;
        
ROT_var rot1;
    } else if (
panel == 11) {
        
swbt 3;
        
ROT_var rot1;
    } else if (
panel == 13) {
        
ROT_var rot2;
    } else if (
panel == 9) {
        
ROT_var rot1;
    } else {
        
ROT_var rot3;
    }
    
toolbar_open == t_ico TOOLBAR_ICO_OFF t_ico TOOLBAR_ICO;
    
$buttons = [new Button(0by 1B.widthB.heightANIM_BUTPREV_ICO, function () {
            
fb.Prev();
            
recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);            
        }), new 
Button(bxby 1B.widthB.heightANIM_BUTfb.IsPlaying ? (fb.IsPaused PLAY_ICO PAUSE_ICO) : PLAY_ICO, function () {
            
fb.PlayOrPause();
            
recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);
        }), new 
Button(bx 2by 1B.widthB.heightANIM_BUTNEXT_ICO, function () {
            
fb.Next();
            
recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);
        }), new 
Button(ww bx 2by 1B.widthB.heightANIM_BUTSHOWNPL_ICO, function () {                    
            if (
NOW_Timer)
                
NOW_Timer.Dispose()
                
pss.GetPanel(1).Show(false)
                
pss.GetPanel(c_panel).Move(0ywwwh bh 5true);
            if (
panel == 6) {
                if (!
NOW_Timer) {
                    try {
                        
WshShell.Run(set_path "click.exe");
                    } catch (
e) {}
                    
DEF_check()
                    
window.NotifyOthers("SYS.Butt_state""chkBt");
                } else if (
NOW_Timer) {
                    
q++;
                    if (
2)
                        
0;
                    
window.SetProperty("swsq"q);
                    
DEF_check()
                    
CollectGarbage();
                    
swbt 3;
                    
window.SetProperty("SYS.VU_buttons_status"false);
                    try {
                        
WshShell.Run(set_path "click.exe");
                    } catch (
e) {}
                }
                
NOW_Timer false;
                
NOW_Timer window.CreateTimerInterval(NOW_prop);
            } else {
                if (
animation_status) {
                    
animation_status false;
                    
window.SetProperty("SYS.Animation_Status"animation_status);
                    
flag true
                
}
                
DEF_check()
                
pss.GetPanel(14).Show(false);
                
pss.GetPanel(c_panel).Show();
                
pss.GetPanel(c_panel).Move(0ywwwh bh 5true);
                
panel 6;
                
dir_move panel old_panel "right" "right";
                if (
old_panel != panel) {
                    
move_panel();
                    
old_panel panel
                        
try {
                            
WshShell.Run(set_path "click.exe");
                        } catch (
e) {}
                }
            }
            
SYS_check()
            
recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);
            
swbt 3;
            
NOW_Timer window.CreateTimerInterval(NOW_prop);
        }), new 
Button(ww bxby 1B.widthB.heightANIM_BUTROT_var, function () {
            if (
panel == 6) {
                if (
animation_status) {
                    
animation_status false;
                    
window.SetProperty("SYS.Animation_Status"animation_status);
                    
flag true
                
}
            } 
//3panel
            
pss.GetPanel(1).Show(false);
            
pss.GetPanel(1).Move(bw 4wh bh 4ww bw 8bh 2true);
            if (
move == false) {
                
swbt++;
                if (
swbt 3)
                    
swbt 1
            
} else
                return;
            
window.SetProperty("swbt"swbt)

            if (
swbt == 1) {
                
SYS_check();
                
utils.WriteINI(set_path 'settings.ini''bio''panel'0);
                
window.SetProperty("SYS.VU_buttons_status"false);
                
panel 13
                    dir_move 
panel old_panel "left" "right";
                if (
old_panel != panel) {

                    
move_panel();
                    
old_panel panel
                
}
                if (
sw_lib window.GetProperty("LIB buttons_Status") == true) {
                    
pss.GetPanel(2).Show(true);
                    
pss.GetPanel(2).Move(ww bw 15wh bh 3bwbh 5true);
                    
LIB_Timer window.CreateTimerInterval(LIB_prop);
                }
                
recalc_dimensions();
                
window.Repaint();
            }
            if (
swbt == 2) {
                
window.SetProperty("SYS.VU_buttons_status"false);
                
panel 12;
                
dir_move panel old_panel "left" "right";
                if (
old_panel != panel) {
                    
move_panel();
                    
old_panel panel
                
}
                
pss.GetPanel(2).Show(false);
                
//SYS_check();
            
}
            if (
swbt == 3) {
                
panel 9;
                
dir_move panel old_panel "left" "right";
                if (
old_panel != panel) {
                    
move_panel();
                    
old_panel panel
                
}
                
SYS_check();
                
pss.GetPanel(8).Move(0wh bh 5wwbhfalse); // было true
                
pss.GetPanel(8).Show(false); // было true
                
if (sw_vu window.GetProperty("VU buttons auto hide") == true) {   // было true
                    
VU_Timer window.CreateTimerInterval(VU_prop);
                }
            }
            
//recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);
            
// кнопка доп панели
        
}), new Button(ww bx 3by 1B.widthB.heightANIM_BUTt_ico, function () {
            if (
toolbar_timer)
                
toolbar_timer.Dispose();
            if (
VU_Timer)
                
VU_Timer.Dispose();
            if (
LIB_Timer)
                
LIB_Timer.Dispose();
            
utils.WriteINI(set_path 'settings.ini''close_ctrl''ctrl'1)
            
toolbar_open++
            if (
toolbar_open 1) {
                
toolbar_open 0
            
}
            if (
toolbar_open == 0) {
                
pss.GetPanel(c_panel).Move(0ywwwh bh 5true//было true
                
pss.GetPanel(1).Show(false);
                
pss.GetPanel(5).Show(false);
                
pss.GetPanel(2).Show(false);
                
pss.GetPanel(3).Show(false)
                
pss.GetPanel(4).Show(false);
                
pss.GetPanel(7).Show(false);
                
pss.GetPanel(8).Show(false);
                
SEARCH false
                    window
.SetProperty("SYS.SEARCH_panel_status"SEARCH)
            } else {
                
//pss.GetPanel(13).Show(true)     //было true
                //pss.GetPanel(13).Move(bw * 4, wh - bh * 2 - 4, ww - bw * 8, bh - 2, true);    //было true 
                
pss.GetPanel(c_panel).Show();
                
pss.GetPanel(c_panel).Move(0ywwwh bh 5true);    //было true 
                
pss.GetPanel(13).Show(false)   // было false
                
pss.GetPanel(4).Show(false// было false ложь
                
pss.GetPanel(c_panel).Move(0ywwwh bh 5true)  // было true двойная панель
                
toolbar_timer window.CreateTimerInterval(toolbar_prop);
            }
            
window.RepaintRect(0wh bh 4wwbh 2);
            
recalc_dimensions();
        }), new 
Button(0by B.height 2B.widthB.heightANIM_BUTDEL_ICO, function () {
            if (
animation_status) {
                
animation_status false;
                
window.SetProperty("SYS.Animation_Status"animation_status);
                
flag true
            
}
            
panel 6
                dir_move 
panel old_panel "left" "left";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
SYS_check()
            
pss.GetPanel(4).Show(true);
            
pss.GetPanel(4).Move(ww bwwh bh 2wwbh 3true);
            
pss.GetPanel(c_panel).Move(0ywwwh bh 5true);
            
DEL_Timer window.CreateTimerInterval(DEL_prop);
            
swbt 3;
            
recalc_dimensions();
            
window.Repaint();
        }), new 
Button(bxby B.height 2B.widthB.heightANIM_BUTDSP_S_ICO, function () {
            try {
                
fb.RunMainMenuCommand("View/DSP/DSP #2 config");
            } catch (
e) {};
        }), new 
Button(bx 2by B.height 2B.widthB.heightANIM_BUTDSP_ICO, function () {
            
pss.GetPanel(1).Show(false)
            
pss.GetPanel(c_panel).Move(0ywwwh bh 5true)
            
toolbar_open 0
                
if (animation_status) {
                    
animation_status false;
                    
window.SetProperty("SYS.Animation_Status"animation_status);
                    
flag true
                
}
                
panel 10;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
SYS_check()
            
swbt 3;
            
recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);
            
// кнопка milk
        
}), new Button(bx 3by B.height 2B.widthB.heightANIM_BUTMILK_ICO, function () {
            
pss.GetPanel(1).Show(false);
            
pss.GetPanel(0).Show(false);
            
pss.GetPanel(c_panel).Show();
            
//pss.GetPanel(c_panel).Move(0, y, ww, wh - y - bh - 5, true) не понятно
            
pss.GetPanel(c_panel).Move(0ywwwh bh 5true)
            
toolbar_open 0
                panel 
11;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
SYS_check()
            
Milk_Timer window.CreateTimerInterval(Milk_prop);
            
pss.GetPanel(3).Show(false);  // было true
            
pss.GetPanel(3).Move(0wh bh 4wwbhfalse);  // было true
            // кнопка выход
        
}), new Button(ww bxby B.height 2B.widthB.heightANIM_BUTCLOSE_ICO, function () {
            
CollectGarbage();
            if (
DEL_Timer)
                
DEL_Timer.Dispose();
            if (
toolbar_timer)
                
toolbar_timer.Dispose();
            if (
VU_Timer)
                
VU_Timer.Dispose();
            if (
LIB_Timer)
                
LIB_Timer.Dispose();
            
fb.RunMainMenuCommand("File/Exit");
        }), new 
Button(ww bx 2by B.height 2B.widthB.heightANIM_BUTPREF_ICO, function () {
            
fb.ShowPreferences();
            
// поиск
        
}), new Button(ww bx 4by B.height 2B.widthB.heightANIM_BUTSEARCH_ICO, function () {
            if (
animation_status) {
                
animation_status false;
                
window.SetProperty("SYS.Animation_Status"animation_status);
                
flag true
            
}
            
panel 6
                dir_move 
panel old_panel "left" "left";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
SYS_check();
            
pss.GetPanel(5).Show() == true pss.GetPanel(5).Show(false) : pss.GetPanel(5).Show(true) & pss.GetPanel(5).Move(0wh bh 301ww299true); ;
            
pss.GetPanel(1).Show(false)
            
pss.GetPanel(c_panel).Move(0ywwwh bh 5true);
            
swbt 3
                recalc_dimensions
();
        }), new 
Button(ww bx 3by B.height 2B.widthB.heightANIM_BUTTAB_ICO, function () {
            if (
animation_status) {
                
animation_status false;
                
window.SetProperty("SYS.Animation_Status"animation_status);
                
flag true
            
}
            
toolbar_open 0
                
if (toolbar_timer)
                    
toolbar_timer.Dispose();
                
pss.GetPanel(1).Show(false)
                
pss.GetPanel(c_panel).Move(0ywwwh bh 5true)
                
panel 5;
            
dir_move panel old_panel "right" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 3;
            
SYS_check()
            
recalc_dimensions()
            
window.RepaintRect(0wh bh 4wwbh);
            
window.NotifyOthers("SYS.Butt_tool""tool")
        })]
}
recalc_dimensions();
function 
on_draw(grxywhimgimg2opstate) {
    
gr.DrawImage(imgMath.ceil(x), Math.ceil(y), Math.ceil(w), Math.ceil(h), 0state hMath.ceil(w), Math.ceil(h), 0255);
    
gr.DrawImage(img2Math.ceil(x), Math.ceil(y), Math.ceil(w), Math.ceil(h), 0state hMath.ceil(w), Math.ceil(h), 0255);
}
function 
on_paint(gr) {
    
gr.FillSolidRect(00wwwhg_background_color);
    
//gr.FillGradRect(0, wh - bh - 5, ww, bh + 5, bottom_gradient_color_angle1, g_bottom_gradient_color, g_bottom_gradient_color2);
    
for (var 06i++) {
        
//$buttons[i].draw(gr);   //ккнопки
    
}
    if (
toolbar_open) {
        
gr.FillGradRect(0wh bh 5wwbhbottom_gradient_color_angle1g_bottom_gradient_colorg_bottom_gradient_color2);
        for (var 
6$buttons.lengthi++) {
            
$buttons[i].draw(gr); //ккнопки
        
}
        
//    var dsp = utils.ReadINI(set_path + 'settings.ini', 'dsp', 'preset')
    
}
}
var 
resize_time_prop window.GetProperty("SYS.PANEL_RESIZE_TIMER"300);
var 
resize_delay_timer false;
function 
on_size() {
    if (
resize_delay_timer)
        
resize_delay_timer.Dispose();
    
ww window.Width;
    
wh window.Height;
    
//default_layout2()
    
resize_delay_timer window.CreateTimerTimeout(resize_time_prop);
    
recalc_dimensions();
};
function 
on_mouse_move(xy) {
    
buttons_on_mouse_move(xy);
}
function 
on_mouse_lbtn_down(xy) {
    
buttons_on_mouse_lbtn_down(xy);
};
function 
on_mouse_lbtn_up(xy) {
    
1;
    
lbtn_down false;
    
buttons_on_mouse_lbtn_up(xy);
}
function 
on_mouse_leave() {
    
m_t window.GetProperty("Mouse_touch")
        
buttons_on_mouse_leave();
}
function 
on_playback_pause(state) {
    
recalc_dimensions();
    
recalc_dimensions();
    
window.RepaintRect(0wh bh 4wwbh);
}

function 
check_btns() {
    
btn_type window.GetProperty("SYS.Button Folder");
    if (
utils.ReadINI(set_path 'settings.ini''Button Folder''Button Folder') != btn_type) {
        
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder'btn_type);
        
btn_switch_timer window.CreateTimerInterval(btn_switch_prop);
    };
};
function 
move_panel() {
    
n_panel panel;
    
n_ww ww;
    
c_ww ww;
    if ((
dir_move == "right" panel != 5) ? n_x n_ww n_x c_ww);
    
move true;
    
toolbar_open 0
        
//window.Repaint();
    //pss.GetPanel(n_panel).Show(false);
    
pss.GetPanel(c_panel).Move(0yn_wwwh 5true);
    
pss.GetPanel(n_panel).Show(true);

    
timer_anim window.CreateTimerInterval(a_timer);
}
function 
on_timer(id) {

    if (
resize_delay_timer && id == resize_delay_timer.ID) {
        if (!
window.Width || !window.Height) {
            return;
        }
        
toolbar_open 0
            bw 
B.width;
        
bh B.height;
        
bx B.width;
        
by wh ANIM_BUT.height 4;
        
default_layout();
        
resize_delay_timer.Dispose();
        
resize_delay_timer false;
        
recalc_dimensions();

        
//   if (panel != 5) {
        //DEF_check();
        //}
        
window.Repaint();
    }

    if (
timer_anim && id == timer_anim.ID) {
            if (
move) {

if (
panel == 9) {
//pss.GetPanel(c_panel).Move(0, y, ww, wh - bh - 5, true);
pss.GetPanel(n_panel).Move(0ywwwh  bh 5true);
} else { 
pss.GetPanel(c_panel).Move(0ywwwh 5true);
pss.GetPanel(n_panel).Move(0ywwwh  5true);
}                
                
pss.GetPanel(c_panel).Show(false);
                
c_panel n_panel;
                
c_x 0;
                
n_x 0;
                
timer_anim.Dispose();
                
CollectGarbage();
                
move false;
                
window.SetProperty("SYS.panel"panel);

                        
window.RepaintRect(0ywwwh bh 5);
            }
        }
    if (
title_check_timer && id == title_check_timer.ID) {
title_set();

}
    if (
toolbar_timer && id == toolbar_timer.ID) {
        if (
toolbar_timer)
            
toolbar_timer.Dispose();
        if (
DEL_Timer)
            
DEL_Timer.Dispose();
        if (
VU_Timer)
            
VU_Timer.Dispose();
        
SYS_check()
        
toolbar_open 0
            
if (toolbar_timer)
                
toolbar_timer.Dispose();
            
pss.GetPanel(c_panel).Move(0ywwwh5true)
            
window.RepaintRect(0wh bh 4wwbh 2);
        
recalc_dimensions();
    }
    if (
click_timer && id == click_timer.ID) {
        
click_timer.Dispose();
        
fb.RunMainMenuCommand("View/Show now playing in playlist");
    }
    if (
TAB_Timer && id == TAB_Timer.ID) {
        
SYS_check();
        
swbt 3;
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    }
    if (
Milk_Timer && id == Milk_Timer.ID) {
        if (
Milk_Timer)
            
Milk_Timer.Dispose();
        try {
            
WshShell.Run(set_path "MilEs.exe");
        } catch (
e) {};
        
pss.GetPanel(3).Show(false);
        
milk_btn false
            pss
.GetPanel(c_panel).Move(0ywwwh  5true)
            
swbt 3
            pss
.GetPanel(0).Show(true);
        
DEF_check()
        
recalc_dimensions()
        
window.RepaintRect(0wh bh 4wwbh);
    }
    if (
NOW_Timer && id == NOW_Timer.ID) {
        if (
NOW_Timer)
            
NOW_Timer.Dispose();
        
NOW_Timer false;
    }
    if (
DEL_Timer && id == DEL_Timer.ID) {
        
SYS_check();
        
recalc_dimensions();
        
CollectGarbage();
        
pss.GetPanel(c_panel).Move(0ywwwh  5true);
        
window.Repaint();
    }
    if (
LIB_Timer && id == LIB_Timer.ID) {
        
pss.GetPanel(2).Show(false);
        
SYS_check();
        
recalc_dimensions();
        
CollectGarbage();
        
window.Repaint();
    }
    if (
VU_Timer && id == VU_Timer.ID) {
        
VU_Timer.Dispose();
        
pss.GetPanel(7).Show(false);
        
pss.GetPanel(8).Show(false);
        
pss.GetPanel(1).Show(false)
        
window.SetProperty("SYS.VU_buttons_status"false);
        
VU_btn false
            window
.SetProperty("SYS.Channel spectrum panel_status"false);
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    }
        if (
SEEK_VOL_Timer && id == SEEK_VOL_Timer.ID) {
        
SEEK_VOL_Timer.Dispose();
                
pss.GetPanel(c_panel).Show(true);                
                
pss.GetPanel(c_panel).Move(0ywwwhfalse);
                
pss.GetPanel(0).Show(false);
                
pss.GetPanel(1).Show(false);
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    }
    if (
window.GetProperty("VU buttons auto hide") == true) {
        if (
VU_set_off utils.ReadINI(set_path 'settings.ini''VU''VU_off') == 1) {
            
vu_switch_check()
        }
    }
    if (
utils.ReadINI(set_path 'settings.ini''VU''VU_off') == 2) {
        
CollectGarbage();
        
vu_switch_check2()
    }
    if (
utils.ReadINI(set_path 'settings.ini''lib''lib_off') == 1) {
        
utils.WriteINI(set_path 'settings.ini''lib''lib_off'0);
        if (
autolibtopl) {
            
pss.GetPanel(1).Show(false)
            
pss.GetPanel(c_panel).Move(0ywwwh  5true);
            if (
animation_status) {
                
animation_status false;
                
window.SetProperty("SYS.Animation_Status"animation_status);
                
flag true
            
}
            
SYS_check();
            
DEF_check()
            
pss.GetPanel(1).Show(false);
            
pss.GetPanel(c_panel).Show();
            
pss.GetPanel(c_panel).Move(0ywwwh  5true);
            
panel 6;
            
dir_move panel old_panel "right" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
                    
try {
                        
WshShell.Run(set_path "click.exe");
                    } catch (
e) {}
            }
            
SYS_check()
        }
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
        
swbt 3;
    }
    if (
utils.ReadINI(set_path 'settings.ini''milk''milk_off') == 1) {
        
milk_switch_check();
    }
    if (
utils.ReadINI(set_path 'settings.ini''dsp''dsp_off') == 1) {
        
dsp_switch_check();
    }
    if (
utils.ReadINI(set_path 'settings.ini''del''del_off') == 1) {
        
del_switch_check();
    };
    if (
utils.ReadINI(set_path 'settings.ini''lib''lib_next') == 1) {
        
lib_switch_check();
    };
    if (
click_timer && id == click_timer.ID) {
        
click_timer.Dispose();
        
fb.RunMainMenuCommand("View/Show now playing in playlist");
    }
    if (
btn_switch_timer && id == btn_switch_timer.ID) {
        
btn_switch_timer.Dispose();
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
    };
    
buttons_on_timer();
}

function 
on_mouse_rbtn_up(xy) {
    
MF_SEPARATOR 0x00000800;
    
MF_ENABLED 0x00000000;
    
MF_GRAYED 0x00000001;
    
MF_DISABLED 0x00000002;
    
MF_UNCHECKED 0x00000000;
    
MF_CHECKED 0x00000008;
    
MF_STRING 0x00000000;
    
MF_POPUP 0x00000010;
    
MF_MENUBARBREAK 0x00000020;
    
MF_MENUBREAK 0x00000040;
    var 
_menu window.CreatePopupMenu();
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_1" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type1"Small • << My >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_2" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type2"Small • << Dark >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_3" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type3"Small • << Silver >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_4" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type4"Small • << Classic >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_5" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type5"Middle • << My >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_6" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type6"Middle • << Dark >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_7" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type7"Middle • << Silver >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_8" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type8"Middle • << Classic >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_9" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type9"Big • << My >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_10" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type10"Big • << Dark >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_11" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type11"Big • << Silver >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    var 
btn_type window.GetProperty("SYS.Button Folder") == "btn_set_12" MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(btn_type12"Big • << Classic >>");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    
autolibtopl window.GetProperty("Auto Library to Playlist") == true MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(autolibtopl15"Auto Go to Playlist [Library] ");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    
m_t window.GetProperty("Mouse_touch") == MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(m_t16"Touch • ON");
    
_menu.AppendMenuItem(MF_SEPARATOR00);
    
sw_vu window.GetProperty("VU buttons auto hide") == true MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(sw_vu18"VU Buttons Auto Hide • ON");
    
_menu.AppendMenuItem(MF_SEPARATOR00);

    
sw_lib window.GetProperty("LIB buttons_Status") == true MF_CHECKED MF_ENABLED;
    
_menu.AppendMenuItem(sw_lib19"LIB buttons • ON");
    
_menu.AppendMenuItem(MF_SEPARATOR00);

    
_menu.AppendMenuItem(MF_ENABLED20"Properties");
    
_menu.AppendMenuItem(MF_ENABLED30"Configure ...");
    
ret _menu.TrackPopupMenu(xy);
    switch (
ret) {
    case 
1:
        
window.SetProperty("SYS.Button Folder""btn_set_1");
        
window.NotifyOthers("SYS.Button Folder""btn_set_1");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_1');
        };
        catch (
e) {};
        
on_size();
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
2:
        
window.SetProperty("SYS.Button Folder""btn_set_2");
        
window.NotifyOthers("SYS.Button Folder""btn_set_2");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_2');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
3:
        
window.SetProperty("SYS.Button Folder""btn_set_3");
        
window.NotifyOthers("SYS.Button Folder""btn_set_3");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_3');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
4:
        
window.SetProperty("SYS.Button Folder""btn_set_4");
        
window.NotifyOthers("SYS.Button Folder""btn_set_4");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_4');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
5:
        
window.SetProperty("SYS.Button Folder""btn_set_5");
        
window.NotifyOthers("SYS.Button Folder""btn_set_5");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_5');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
6:
        
window.SetProperty("SYS.Button Folder""btn_set_6");
        
window.NotifyOthers("SYS.Button Folder""btn_set_6");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_6');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
7:
        
window.SetProperty("SYS.Button Folder""btn_set_7");
        
window.NotifyOthers("SYS.Button Folder""btn_set_7");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_7');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
8:
        
window.SetProperty("SYS.Button Folder""btn_set_8");
        
window.NotifyOthers("SYS.Button Folder""btn_set_8");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_8');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
9:
        
window.SetProperty("SYS.Button Folder""btn_set_9");
        
window.NotifyOthers("SYS.Button Folder""btn_set_9");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_9');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
10:
        
window.SetProperty("SYS.Button Folder""btn_set_10");
        
window.NotifyOthers("SYS.Button Folder""btn_set_10");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_10');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
11:
        
window.SetProperty("SYS.Button Folder""btn_set_11");
        
window.NotifyOthers("SYS.Button Folder""btn_set_11");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_11');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
12:
        
window.SetProperty("SYS.Button Folder""btn_set_12");
        
window.NotifyOthers("SYS.Button Folder""btn_set_12");
        try {
            
utils.WriteINI(set_path 'settings.ini''Button Folder''Button Folder''btn_set_12');
        };
        catch (
e) {};
        try {
            
fb.RunMainMenuCommand("File/Restart");
        };
        catch (
e) {};
        break;
    case 
15:
        
autolibtopl = !autolibtopl
            window
.SetProperty("Auto Library to Playlist"autolibtopl)
            break;
    case 
16:
        
m_t window.GetProperty("Mouse_touch")
            
m_t == m_t m_t 1
            window
.SetProperty("Mouse_touch"m_t)
            try {
                
utils.WriteINI(set_path 'settings.ini''Mouse_touch''set'm_t);
            };
        catch (
e) {};
        
rbtn_up true
            
break;
    case 
17:
        
animation_status = !animation_status;
        
window.SetProperty("SYS.Animation_status"animation_status);
        
m_t window.GetProperty("Mouse_touch")
            
rbtn_up true
            
break;
    case 
18:
        
sw_vu = !sw_vu
            window
.SetProperty("VU buttons auto hide"sw_vu)
            
m_t window.GetProperty("Mouse_touch")
            
rbtn_up true
            
break;
    case 
19:
        
sw_lib window.GetProperty("LIB buttons_Status")
            
sw_lib = !sw_lib
            window
.SetProperty("LIB buttons_Status"sw_lib)
            
sw_lib pss.GetPanel(2).Show(true) : pss.GetPanel(2).Show(false)
            if (
sw_lib) {
                
LIB_Timer window.CreateTimerInterval(LIB_prop)
            }
            
m_t window.GetProperty("Mouse_touch")
            
rbtn_up true
            recalc_dimensions
();
        
CollectGarbage();
        
window.Repaint();
        break;
    case 
20:
        
window.ShowProperties();
        break;
    case 
30:
        
window.ShowConfigure();
        break;
    }
    
_menu.Dispose();
    return 
true;
}
function 
on_key_down(vkey) {
    var 
mask GetKeyboardMask();
    if (
vkey == VK_SPACEBAR) {
        if (
animation_status) {
            
animation_status false;
            
window.SetProperty("SYS.Animation_Status"animation_status);
            
flag true
        
}
        
toolbar_open 0
            
if (toolbar_timer)
                
toolbar_timer.Dispose();
            
pss.GetPanel(1).Show(false//было false
            
pss.GetPanel(c_panel).Move(0ywwwh 5true)
            
panel 6;
        
dir_move panel old_panel "right" "right";
        if (
old_panel != panel) {
            
move_panel();
            
old_panel panel
        
}
        
swbt 3;
        
SYS_check()
        
recalc_dimensions()
        
window.RepaintRect(0wh bh 4wwbh);
        
window.NotifyOthers("SYS.Butt_tool""tool")
    }
    
//VK_J
            
if (vkey == VK_J) {
SEEK_VOL_Timer window.CreateTimerInterval(SEEK_VOL_prop);                
//звук  
        
SYS_check()
        
swvk++;
        if (
swvk 2)
            
swvk 1
                window
.SetProperty("swvk"swvk);

        if (
swvk == 2
                { 
                
pss.GetPanel(0).Show(false);
                
pss.GetPanel(1).Show(true);
                
pss.GetPanel(1).Move(wh -  bh-10 wwbh +10true);

        }        
                if (
swvk == 1
                {                
                
pss.GetPanel(1).Show(false);
                
pss.GetPanel(0).Show(true); 
                
pss.GetPanel(0).Move(wh bh-10 ww bh +10true);
        }
 else {
            
pss.GetPanel(2).Show(false);
        }
        
window.SetProperty("swbt"swbt);
        
window.SetProperty("swvk"swvk);
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    }
    if (
vkey == VK_I) {  //дсп  
        
SYS_check()
            
panel 10;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}

    }

    if (
vkey == VK_U) {  // радио 3 панели
        
SYS_check()
        
swvk++;
        if (
swvk 1)
            
swvk 1
                window
.SetProperty("swvk"swvk);                    
            if (
NOW_Timer)
                
NOW_Timer.Dispose()
                
pss.GetPanel(1).Show(false)
                
pss.GetPanel(c_panel).Move(0ywwwh 5true);
            if (
panel == 6) {
                if (!
NOW_Timer) {
                    try {
                        
WshShell.Run(set_path "click.exe");
                    } catch (
e) {}
                    
DEF_check()
                    
window.NotifyOthers("SYS.Butt_state""chkBt");
                } else if (
NOW_Timer) {
                    
q++;
                    if (
2)
                        
0;
                    
window.SetProperty("swsq"q);
                    
DEF_check()
                    
CollectGarbage();
                    
swbt 3;
                    
window.SetProperty("SYS.VU_buttons_status"false);
                    try {
                        
WshShell.Run(set_path "click.exe");
                    } catch (
e) {}
                }
                
NOW_Timer false;
                
NOW_Timer window.CreateTimerInterval(NOW_prop);
            } else {
                if (
animation_status) {
                    
animation_status false;
                    
window.SetProperty("SYS.Animation_Status"animation_status);
                    
flag true
                
}
                
DEF_check()
                
pss.GetPanel(1).Show(false);
                
pss.GetPanel(c_panel).Show();
                
pss.GetPanel(c_panel).Move(0ywwwh  5true);
                
panel 6;
                
dir_move panel old_panel "right" "right";
                if (
old_panel != panel) {
                    
move_panel();
                    
old_panel panel
                        
try {
                            
WshShell.Run(set_path "click.exe");
                        } catch (
e) {}
                }
            }
            
SYS_check()
            
recalc_dimensions();
            
window.RepaintRect(0wh bh 4wwbh);
            
swbt 3;
            
NOW_Timer window.CreateTimerInterval(NOW_prop);
        }
    
    if (
vkey == VK_NUMPAD3) {
        
SYS_check()
        
swvk++;
        if (
swvk 1)
            
swvk 1
        window
.SetProperty("swvk"swvk);
        if (
swvk == 1) {
            
pss.GetPanel(12).Show(false);     // было false
            
panel 9;
                
dir_move panel old_panel "right" "right";
                if (
old_panel != panel) {
                    
move_panel();
                    
old_panel panel
                
}


pss.GetPanel(7).Show();
pss.GetPanel(7).Move(0wh bhwwwhtrue); // было true
            
swbt 3
        
}else {
            
pss.GetPanel(2).Show(false);
        }
        
window.SetProperty("swbt"swbt);
        
window.SetProperty("swvk"swvk);
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    }
    
    
//***********************************************************************************************************    
    
if (vkey == VK_NUMPAD4) {  // поиск
        
SYS_check()

            
panel 6
                dir_move 
panel old_panel "left" "left";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
}
            
pss.GetPanel(5).Show() == true pss.GetPanel(5).Show(false) : pss.GetPanel(5).Show(true) & pss.GetPanel(5).Move(0wh 299ww299true); 
            
pss.GetPanel(1).Show(false)
            
pss.GetPanel(0).Show(false)
            
pss.GetPanel(c_panel).Move(0ywwwh 5true);
                
recalc_dimensions();
        
    }
//***********************************************************************************************************    
        
if (vkey == VK_E) { //библ
        
SYS_check()
            
panel 13
                dir_move 
panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            if (
sw_lib window.GetProperty("LIB buttons_Status") == true) {
                
pss.GetPanel(2).Show(true);
                
pss.GetPanel(2).Move(ww bw 15wh bh 3bwbh 5true);
            }

        }

    if (
vkey == VK_T) {         //столбики
        
SYS_check()
            
panel 12;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}

    }
    if (
vkey == VK_Y) {         //визи
        
SYS_check()
            
panel 11;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}

    
    }
    
    if (
vkey == VK_NUMPAD9) {
        
SYS_check()
        
swvk++;
        if (
swvk 5)
            
swvk 1
                window
.SetProperty("swvk"swvk);
        if (
swvk == 1) {
            
panel 5;
            
dir_move panel old_panel "right" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 3
                window
.Repaint();
        }
        if (
swvk == 2) {
            
panel 10;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 1
        
}
        if (
swvk == 3) {
            
panel 12;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 2
        
}
        if (
swvk == 4) {
            
pss.GetPanel(12).Show(false);
            
pss.GetPanel(7).Move(bw 3wh bh 4ww bw 6bh 2true);
            
pss.GetPanel(7).Show(true);
            
pss.GetPanel(8).Move(0wh bh 5wwbhtrue);
            
pss.GetPanel(8).Show(true);
            
panel 9;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            if (
sw_vu window.GetProperty("VU buttons auto hide") == true) {
                
VU_Timer window.CreateTimerInterval(VU_prop);
            }
            
swbt 3
        
}
        if (
swvk == 5) {
            
panel 13
                dir_move 
panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
        }
        if (
panel == 13) {
            if (
sw_lib window.GetProperty("LIB buttons_Status") == true) {
                
pss.GetPanel(2).Show(true);
                
pss.GetPanel(2).Move(ww bw 15wh bh 3bwbh 5true);
            }
            
swbt 2;
        } else {
            
pss.GetPanel(2).Show(false);
        }
        
window.SetProperty("swbt"swbt);
        
window.SetProperty("swvk"swvk);
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    }    
    if (
vkey == VK_NUMPAD7) {
fdelay();
try {
is_VU == window.SetProperty("is_VU",0)&fso.deleteFileset_path "VU_" "*" ) : window.SetProperty("is_VU",1)& fso.deleteFileset_path "VU_" "*" ); ;
is_VU window.GetProperty("is_VU")  
fso.CreateTextFileset_path "VU_" is_VU );
} catch(
e) {};
RefreshPSS();
}
    if (
vkey == VK_NUMPAD0) {
        
SYS_check()
        
swvk--
        if (
swvk 1)
            
swvk 5
                window
.SetProperty("swvk"swvk);
        if (
swvk == 1) {
            
panel 6;
            
dir_move panel old_panel "right" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 3
                window
.Repaint();
        }
        if (
swvk == 2) {
            
panel 10;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 1
        
}
        if (
swvk == 3) {
            
panel 12;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            
swbt 2
        
}
        if (
swvk == 4) {
            
pss.GetPanel(12).Show(false);
            
pss.GetPanel(7).Move(bw 3wh bh 4ww bw 6bh 2true);
            
pss.GetPanel(7).Show(true);
            
pss.GetPanel(8).Move(0wh bh 5wwbhtrue);
            
pss.GetPanel(8).Show(true);
            
panel 9;
            
dir_move panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
            if (
sw_vu window.GetProperty("VU buttons auto hide") == true) {
                
VU_Timer window.CreateTimerInterval(VU_prop);
            }
            
swbt 3
        
}
        if (
swvk == 5) {
            
panel 13
                dir_move 
panel old_panel "left" "right";
            if (
old_panel != panel) {
                
move_panel();
                
old_panel panel
            
}
        }
        if (
panel == 13) {
            if (
sw_lib window.GetProperty("LIB buttons_Status") == true) {
                
pss.GetPanel(2).Show(true);
                
pss.GetPanel(2).Move(ww bw 15wh bh 3bwbh 5true);
            }
            
swbt 2;
        } else {
            
pss.GetPanel(2).Show(false);
        }
        
window.SetProperty("swbt"swbt);
        
window.SetProperty("swvk"swvk);
        
recalc_dimensions();
        
window.RepaintRect(0wh bh 4wwbh);
    };
}
function 
on_notify_data(nameinfo) {
    if (
name == "DEF_check") {
        
DEF_check()
    }
}
function 
del_switch_check() {
    if (
DEL_Timer)
        
DEL_Timer.Dispose();
    
DEL_Timer window.CreateTimerInterval(DEL_prop);
    
utils.WriteINI(set_path 'settings.ini''del''del_off'0)
}
function 
lib_switch_check() {
    if (
LIB_Timer)
        
LIB_Timer.Dispose();
    
LIB_Timer window.CreateTimerInterval(LIB_prop);
    
utils.WriteINI(set_path 'settings.ini''lib''lib_next'0)
}
function 
milk_switch_check() {
    if (
Milk_Timer)
        
Milk_Timer.Dispose();
    
Milk_Timer window.CreateTimerInterval(Milk_prop);
    
utils.WriteINI(set_path 'settings.ini''milk''milk_off'0)

}
function 
tab_switch_check() {
    if (
TAB_Timer)
        
TAB_Timer.Dispose();
    
window.SetProperty("SYS.Man Switch"0);
    
swbt 3;
    
recalc_dimensions();
    
window.RepaintRect(0wh bh 5wwbh);
    
utils.WriteINI(set_path 'settings.ini''close_man''man_off'0);
}
function 
tab_switch_check2() {
    if (
TAB_Timer)
        
TAB_Timer.Dispose();
    
TAB_Timer window.CreateTimerInterval(TAB_prop);
    
utils.WriteINI(set_path 'settings.ini''time_man''man_off'0);
}
function 
vu_switch_check() {
    if (
VU_Timer)
        
VU_Timer.Dispose();
    if (
sw_vu window.GetProperty("VU buttons auto hide") == true) {
        
VU_Timer window.CreateTimerInterval(VU_prop);
    }
    
utils.WriteINI(set_path 'settings.ini''VU''VU_off'0)
}
function 
vu_switch_check2() {
    
SYS_check();
    
pss.GetPanel(1).Show(false)
    
pss.GetPanel(7).Show(false);
    
pss.GetPanel(8).Show(false);
    
window.SetProperty("SYS.Channel spectrum panel_status"false);
    
window.SetProperty("SYS.VU_buttons_status"false)
    
toolbar_open 0
        pss
.GetPanel(c_panel).Move(0ywwwh 5true);
    
utils.WriteINI(set_path 'settings.ini''VU''VU_off'0)
};
function 
SYS_check() {
    
CollectGarbage();
    
window.GetProperty("swsq");
    if (
utils.ReadINI(set_path 'settings.ini''lib_panel''lib_panel') == 1) {
        
utils.WriteINI(set_path 'settings.ini''lib_panel''lib_panel'13);
    }
    
toolbar_open 0
        
if (DEL_Timer)
            
DEL_Timer.Dispose();
        if (
toolbar_timer)
            
toolbar_timer.Dispose();
        if (
VU_Timer)
            
VU_Timer.Dispose();
        if (
LIB_Timer)
            
LIB_Timer.Dispose();
        
pss.GetPanel(1).Show(false);
    
pss.GetPanel(5).Show(false);
    
pss.GetPanel(2).Show(false);
    
pss.GetPanel(3).Show(false)
    
pss.GetPanel(4).Show(false);
    
pss.GetPanel(7).Show(false);
    
pss.GetPanel(8).Show(false);
    
SEARCH false
        window
.SetProperty("SYS.SEARCH_panel_status"SEARCH)

}
function 
DEF_check() {
    
window.GetProperty("swsq");
    if (
== 0) {
        
window.NotifyOthers("SYS.Butt_state""dn");
    }
    if (
== 1) {
        
window.NotifyOthers("SYS.Butt_state""up");
        
//window.NotifyOthers("SYS.Butt_state", "wt");
    
}
    if (
== 2) {
        
window.NotifyOthers("SYS.Butt_state""3p");

    };
    
/*
    if (q == 3) {
    window.NotifyOthers("SYS.Butt_state", "3p");

    };
     */
}
function 
dsp_switch_check() {
    if (
utils.ReadINI(set_path 'settings.ini''dsp''dsp_off') == 1) {
        
swbt 3
            panel 
6;
        
dir_move panel old_panel "right" "right";
        if (
old_panel != panel) {
            
move_panel();
            
old_panel panel
        
}
        
DEF_check()
        
utils.WriteINI(set_path 'settings.ini''dsp''dsp_off'0);
        try {
            
WshShell.Run(set_path "click.exe");
        } catch (
e) {}
    }
    
recalc_dimensions()
    
window.RepaintRect(0wh bh 4wwbh);
}
check_btns();
function 
title_set() {
    
tf_info fb.TitleFormat("[$info(encoding)][ • $info(codec)][ $info(codec_profile)][ • $info(bitrate) kbps][ • $info(samplerate) Hz][ • $info(bitspersample) bps][ • $channels()]$if($stricmp($ext(%filename_ext%),cue), • '['cue']',[ • %filesize_natural%])$if($strcmp($info(cue_embedded),yes), • '['embedded cue']',)").Eval();
    
tf_artist fb.TitleFormat("$upper([%artist%])").Eval();
    
tf_title fb.TitleFormat("$upper([%title%])").Eval();
    
tf_txt tf_artist + (tf_artist != "" " – " "") + tf_title;
    
tf_timer fb.TitleFormat("%playback_time_remaining%").Eval();
    
tf_ttimer fb.TitleFormat("%playback_time%").Eval();
    
tf_stimer fb.TitleFormat("$muldiv(%_time_elapsed_seconds%,100,%_time_total_seconds%)").Eval();
    
foob_window_title tf_txt;    
    
foob_media_info tf_info;
    
foob_trim_title tf_timer;
    
foob_ttrim_title tf_ttimer;
    
foob_strim_title tf_stimer;
    
    try {
    
foob_window_title_prev rr.getinfo("=$CurrentSkinMediaTitle$");    
    
//foob_media_info_prev = rr.getinfo("=$CurrentSkinMediaInfo$");    
    
foob_media_info_prev rr.getinfo("=!foobar_Info");
    
foob_trim_title_prev rr.getinfo("=!foobar_rtracktime");
    
foob_ttrim_title_prev rr.getinfo("=!foobar_tracktime");
    
foob_strim_title_prev rr.getinfo("=!foobar_trackpos");
};
catch (
e) {
    
foob_window_title_prev ""
    
foob_media_info_prev "";    
    
foob_trim_title_prev "";
    
foob_ttrim_title_prev "";
    
foob_strim_title_prev "";
};
    try {
    if (
foob_window_title_prev != foob_window_title) {
        
rr.execute("SETVAR;CurrentSkinMediaTitle;" foob_window_title); 
        
foob_window_title_prev foob_window_title;
    }
    if(
foob_media_info_prev != foob_media_info){
        
rr.execute("SetLabel;!foobar_Info;" foob_media_info);
        
foob_media_info_prev foob_media_info;     
    }
    if (
foob_trim_title_prev != foob_trim_title) {            //SetLabel;!foobar_rtracktime 
        
rr.execute("SetLabel;!foobar_rtracktime;"  foob_trim_title);
        
foob_trim_title_prev foob_trim_title;
    }
    if (
foob_ttrim_title_prev != foob_ttrim_title) {            //SetLabel;!foobar_trackpos
        
rr.execute("SetLabel;!foobar_tracktime;"  foob_ttrim_title);
        
foob_ttrim_title_prev foob_ttrim_title;
    }
    if (
foob_strim_title_prev != foob_strim_title) {            //SetLabel;!foobar_trackpos
        
rr.execute("SetLabel;!foobar_trackpos;"  foob_strim_title);
        
foob_strim_title_prev foob_strim_title;
    }
};
catch (
e) {};
}
function 
ch_state_btb(){
    
g_timer window.SetTimeout(function() { 
        if(
fso.FileExistsset_path "VU_1")) {
            
fso.deleteFileset_path "VU_" "*" );
            
fso.CreateTextFileset_path "VU_0" )
            
is_VU 0;
            
window.Repaint();
            
RefreshPSS();
        }   
    }, 
seconds); 
}

function 
RefreshPSS() {
    if (
fb.IsPlaying || fb.IsPaused) {   
        
fb.RunMainMenuCommand("Playback/Play or Pause");
        
fb.RunMainMenuCommand("Playback/Play or Pause");
    } else {
        
fb.RunMainMenuCommand("Playback/Play");
        
fb.RunMainMenuCommand("Playback/Stop");
    }

}
  function 
fdelay() {
    
//var delay_timer = window.SetTimeout(function () {
        
utils.WriteINIset_path 'settings.ini''VU''VU_off');
            
//window.ClearTimeout(delay_timer);
        //}, 1000);
}; 


Евген_21 17.09.2017 21:34

Цитата:

Сообщение от seriousstas (Сообщение 392256)
Посмотри, может пропустил чего ..

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

seriousstas 18.09.2017 01:00

Вложений: 2
Цитата:

Сообщение от Евген_21 (Сообщение 392293)
Проверил, заработало но не сразу. Позже дошло что панель громкости надо было поднять.:yes4:
Во общем все получается отлично.

Странно, у меня все на своих местах(скрины ниже)
Цитата:

И подправил вызов панелей поиска и диспетчера
И тут все работало ..

В цикле (кнопка громкость) можно отключать все , наример первое нажатие всегда громкость,
второе сик, третье - выкл все .
Можно так-же убирать лишнее и на других панелях .
Скажем убрать кнопки с панели "Менеджер плейлистов"
они ведь есть по Твоей кнопке .
Икар версию можно добавить в инсталятор (только плеер)
...
Проверь что у Тебя с кнопкой пауза .
У меня просто перезапускается игра трека..

Евген_21 18.09.2017 07:13

Вложений: 1
Цитата:

Сообщение от seriousstas (Сообщение 392295)
Странно, у меня все на своих местах(скрины ниже)

И тут все работало ..

Я все делал еще на той сборке что ты мне в личку скидывал.
Может, много что изменилось с того времени.

Цитата:

В цикле (кнопка громкость) можно отключать все , например первое нажатие всегда громкость,
второе сик, третье - выкл все .
Так по любому будет лучше , но это мпс панель надо править.

Цитата:

Можно так-же убирать лишнее и на других панелях .
Скажем убрать кнопки с панели "Менеджер плейлистов"
они ведь есть по Твоей кнопке .
Скажу за себя, они мне точно больше не нужны.

Цитата:

Икар версию можно добавить в инсталятор (только плеер)
С этим не понял, сборку фубара внедрить в инсталлятор iCarDS?

Цитата:

Проверь что у Тебя с кнопкой пауза .
У меня просто перезапускается игра трека..
Если непосредственно на экране фубара, посмотри файлы foobar_player1.txt, foobar_player3.txt, foobar_player4.txt. команда на кнопке play/pause должна быть B,130,518,126,80,"SET_Foobar_MODE",.
А если на любом другом экране , то пропиши команду SET_Foobar_MODE
отметил на скрине.
Вложение 48142

seriousstas 18.09.2017 10:12

Цитата:

сборку фубара внедрить в инсталлятор iCarDS?
Нет в мой инсталятор добавить выбор версии галкой ,
для Икара или отдельно ..
Цитата:

команда на кнопке play/pause должна быть
ок, но ты лучше бросай свой Финал - посмотрю уже вживую)

Евген_21 18.09.2017 11:09

Цитата:

Сообщение от seriousstas (Сообщение 392301)
Нет в мой инсталятор добавить выбор версии галкой ,
для Икара или отдельно ..

Логично.
Цитата:

ок, но ты лучше бросай свой Финал - посмотрю уже вживую)
Сегодня или завтра закину. Еще раз проверю все файлы.

seriousstas 18.09.2017 23:39

Вложений: 1
Цитата:

заработало но не сразу
Верно !
Забыл сказать , что нужно поднять панель звука в сплиттере , но Ты уже отлично разбираешся в фубаре , раз сам догадался!
Размер панели поиска думаю нужно увелилить - слишком мелкие кнопки будут на 7`

Есть вопрос по шаблону - куда-то пропала шапка шаблона - совсем (просто полоса серая - нижние кнопки на месте) ))
Ставил все с 0-ля, Евгений, проверь этот момент..

плейлисты переключает не по-порядку а рендомно ?

Евген_21 19.09.2017 12:11

Цитата:

Сообщение от seriousstas (Сообщение 392317)
Есть вопрос по шаблону - куда-то пропала шапка шаблона - совсем (просто полоса серая - нижние кнопки на месте) ))
Ставил все с 0-ля, Евгений, проверь этот момент..

Повторил,все тоже самое, поставил все с нуля. Ошибка повторилась,давай файлы проверять, все на месте. Голову чуть не сломал:blink2:, а всего то надо было включить фубар, в список доступных медиа источников.:smile2:
Цитата:

плейлисты переключает не по-порядку а рендомно ?
у меня переключаются последовательно, даже не знаю почему так.
Цитата:

Размер панели поиска думаю нужно увелилить - слишком мелкие кнопки будут на 7
Сегодня у себя посмотрю как на 8 выглядит, а так то делай.

seriousstas 19.09.2017 12:36

Цитата:

у меня переключаются последовательно, даже не знаю почему так.
да перепрыгивает через два на третий .. (открой менеджер и переключай)
.........
кажется понял - почему-то все скрипты запускаются множественно ..
После нажатия на кнопку - старт несколько раз .. не знаю что за глюк..(попробуй в эмуляторе win8)
И еще ,если поднимать панель (звука), то нужно изменить цифру здесь
uie_jscript_panel_class6 на нужную ..Узнать можно через C:\Program Files (x86)\AutoIt3\Au3Info.exe
У тебя это файл
VK_U_RADIO.exe .Чтоб заработал автопереход на трек при первом нажатии.
Слава у себя сделал это через ini - у меня руки не дошли)

И еще на домашнем текст налазит немного на прогрессбар в полноэкранном режиме


Часовой пояс GMT +4, время: 22:49.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot