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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   АвтоЗвук (http://pccar.ru/forumdisplay.php?f=16)
-   -   сборка/тема foobar 2000 для CarPС (http://pccar.ru/showthread.php?t=19671)

duzzy 03.05.2016 16:45

seriousstas

Я тут немного переделал опрос по закрытию панели ДСП через МПС после выбора пресета, снизил нагрузку на проц при обращении к диску в on_paint... теперь работает по интервальному таймеру :)

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

Код:

var dsp_switch_check_timer = false;
var dsp_switch_check_timer_on = window.GetProperty("SYS.DSP Switch Check Interval ON",true);
var dsp_switch_check_timer_count = window.GetProperty("SYS.DSP Switch Check Interval(ms)",5000);

dsp_switch_check_timer_on ? dsp_switch_check_timer = window.CreateTimerInterval(dsp_switch_check_timer_count) : dsp_switch_check_timer = false;

в on_timer(id) это в конце по аналогии с предыдущим кодом пропиши...

Код:

// ============= dsp switch interval
        if(dsp_switch_check_timer && id == dsp_switch_check_timer.ID){
                dsp_switch_check();
                //dsp_switch_check_timer.Dispose();
                fb.trace("...DSP SWITCH CHECK...");
        };

функцию можешь в конец срипта пихнуть...

Код:

function dsp_switch_check(){
                //================ DSP switch
        if (dsp_off = utils.ReadINI(set_path + 'settings.ini', 'dsp', 'dsp_off') == 1) {
                panel = 4;
                        dir_move = panel > old_panel ? "left" : "right";

        if (old_panel != panel) {
                        move_panel();
                        old_panel = panel
                }

                utils.WriteINI(set_path + 'settings.ini', 'dsp', 'dsp_off', 0);
                fb.trace("...DSP SWITCH WriteINI...");
        };
};

после проделанных манипуляций удали код проверки из on_paint();
его начало в on_paint();
if (dsp_off = utils.ReadINI(set_path + 'settings.ini', 'dsp', 'dsp_off')....

fb.trace(); можно удалить на работу функций не влияет

:whistle:

проигрывание мп3-ки с ресемплером в дсп и в состоянии покоя...
http://jpegshare.net/images/6a/ff/6a...58c4a72968.png
...

duzzy 03.05.2016 16:59

Евген_21

Да это я просто seriousstas мысли вслух озвучил по поводу копирования сборок в системные папки винды, в системных папках нужны права на работу с файлами и иногда возникают проблемы при записи/удалении в них.
И тут же вспомнилась одна проблема при использовании кириллицы в имени пользователя... как то так.

Цитата:

Чтоб потом хотелок не возникало.
Почти все хотелки вроде исполняются :)

По опросу, я просто не так спросил... скорее правильно будет так...
Что опрашивать ???

Я например не совсем понимаю какие вопросы в опроснике писать... и о чем опрашивать.

Если хочешь попробуй сделай опрос.:smile2:

seriousstas 03.05.2016 17:03

duzzy
Цитата:

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

Евген_21 03.05.2016 17:12

Цитата:

Сообщение от duzzy (Сообщение 359694)
Евген_21

Да это я просто seriousstas мысли вслух озвучил по поводу копирования сборок в системные папки винды, в системных папках нужны права на работу с файлами и иногда возникают проблемы при записи/удалении в них.
И тут же вспомнилась одна проблема при использовании кириллицы в имени пользователя... как то так.


Почти все хотелки вроде исполняются :)

По опросу, я просто не так спросил... скорее правильно будет так...
Что опрашивать ???

Я например не совсем понимаю какие вопросы в опроснике писать... и о чем опрашивать.

Если хочешь попробуй сделай опрос.:smile2:

Вот на пример в твоей сборке нравиться переключение по времени.КРУТО А Стас этого делать не хочет (мелькания не нравиться) а мне например это надо. Вот это хотелка. Давай опрос создадим, кто что бы хотел видеть в сборке fooobar.
Если я буду создовать опрос, подмоги как правильно тему создать. яяяя в теме берусь.
Слущаю Сектор газа

duzzy 03.05.2016 17:12

seriousstas

В 10-ке вообще такой х...ни намудрили с правами просто жесть, там многое работает через одно место...

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

Евген_21 03.05.2016 17:40

Цитата:

Сообщение от duzzy (Сообщение 359697)
seriousstas

В 10-ке вообще такой х...ни намудрили с правами просто жесть, там многое работает через одно место...

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

Для меня только 7-64

duzzy 03.05.2016 17:54

Евген_21
Цитата:

Вот на пример в твоей сборке нравиться переключение по времени.
Я сейчас стараюсь делать универсальные фунции(на сколько это возможно)... например как вот эта оптимизация опроса файла настроек достаточно сделать как я написал и все будет воркать...

В сборках код почти одинаковый, применить автосмену по времени не так сложно как кажется потому как функции по смене так же как и в примере выше почти самостоятельные...

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

Цитата:

Если я буду создовать опрос, подмоги как правильно тему создать
))) Я тут всего один раз тему создавал "Готовых сборок..."... я в этом не спец... вот код поковырять и что то переделать это да я могу...
И ты же вроде создавал уже тему...

120705 03.05.2016 20:37

Уважаемые duzzy и seriousstas Подскажите пож... где хранятся (или куда положить) плейлисты формата m3u в Ваших последних версиях сборок??? Спасибо..:blush:

seriousstas 03.05.2016 21:31

Цитата:

Сообщение от 120705 (Сообщение 359721)
Уважаемые duzzy и seriousstas Подскажите пож... где хранятся (или куда положить) плейлисты формата m3u в Ваших последних версиях сборок??? Спасибо..:blush:

y:\4Icar_13_5_MPS_UNI\foobar2000\themes\4Icar\Radi oPl\Основные радиостанции.m3u
y:\4Icar_13_5_MPS_UNI\foobar2000\themes\4Icar\Radi oPl\Rадио Relax.fpl
y:\4Icar_13_5_MPS_UNI\foobar2000\themes\4Icar\Radi oPl\RADIO.fpl
y:\4Icar_13_5_MPS_UNI\foobar2000\themes\4Icar\Radi oPl\RADIO Best (320).fpl
y:\4Icar_13_5_MPS_UNI\foobar2000\themes\4Icar\Radi oPl\Radio Jazz FM.m3u

seriousstas 03.05.2016 21:34

Евген_21
Евген - не вижу смысла в новых темах (опросах каких-то) - совсем :)

seriousstas 03.05.2016 23:06

duzzy
Ок - хорошая оптимизация ..
Называется найди два отличия :
Цитата:

dsp_switch_check_timer_on ? dsp_switch_check_timer = window.CreateTimerInterval(dsp_switch_check_timer_ count) : dsp_switch_check_timer = false;
Первое тут : dsp_switch_check_timer_on == true ?
Второе - форум постарался - сунул пробел : window.CreateTimerInterval(dsp_switch_check_timer_ count)
со вторым - сразу и не заметишь ))

duzzy 03.05.2016 23:21

seriousstas

Гуд хорошо что получилось разобраться, а то постоянное обращение к диску не есть гуд :)

Про два отличия, да не вроде правильно... сейчас тут в тэг код вставлю сравним)))

Код:


dsp_switch_check_timer_on ? dsp_switch_check_timer = window.CreateTimerInterval(dsp_switch_check_timer_count) : dsp_switch_check_timer = false;

dsp_switch_check_timer_on ? --- это так и должно быть

а вот в (dsp_switch_check_timer_count) --- вставляет пробел если без тега код :smile1:

а потом очень долго кто то будет искать где ошибка...

Извиняй это я поленился в код пихать сейчас поправлю пост...

-------------------

поправил пост по Оптимизация проверки ДСП

seriousstas 04.05.2016 03:12

Цитата:

да не вроде правильно...
Не знал, что и так можно проверять - вот тут пробел помог обрести знания ))

duzzy 04.05.2016 12:15

seriousstas

ну это почти одинаковые варианты, просто этот короче)))

dsp_switch_check_timer_on ?
dsp_switch_check_timer_on == true
if(dsp_switch_check_timer_on){...}

seriousstas 06.05.2016 17:25

Сегодня "обкатываю" в авто (пока - всё хорошо работает)
Что ещё сделано :
1. Space.exe (ТАB) ушли в прошлое ...
Добавил пару записей в ini и вышло в итоге "умное автозакрытие" (пока кликаем - менеджер "ждет")
При этом сохранил возможность открывать-закрывать через пробел.
Примерно так-же сделал автозакрытие менеджера и в двойной панели .

2 . Выбор output device . Добавил 4-е кнопки (места достаточно) для выбора нужного устройства.

Евген_21 06.05.2016 20:55

Цитата:

Сообщение от seriousstas (Сообщение 360010)
Сегодня "обкатываю" в авто (пока - всё хорошо работает)
Что ещё сделано :
1. Space.exe (ТАB) ушли в прошлое ...
Добавил пару записей в ini и вышло в итоге "умное автозакрытие" (пока кликаем - менеджер "ждет")
При этом сохранил возможность открывать-закрывать через пробел.
Примерно так-же сделал автозакрытие менеджера и в двойной панели .

2 . Выбор output device . Добавил 4-е кнопки (места достаточно) для выбора нужного устройства.

Когда релиз

dk-fsb 07.05.2016 08:01

уважаемые когда ждать выход этого https://youtu.be/S7kQ_45oLoI

seriousstas 07.05.2016 23:04

dk-fsb
Евген_21

Постараюсь сегодня оформить ...

seriousstas 08.05.2016 01:51

последний foobar2000 v1.3.10 final
На скринах - разный вид кнопок , контекстное меню .. :
http://rgho.st/92MJFlnYM/thumb.png
http://rgho.st/6mBxQszZj/thumb.png
http://rgho.st/8lgWlwtBg/thumb.png
http://rgho.st/7fDZchxm9/thumb.png
http://rgho.st/6Rd7fBQSK/thumb.png
http://rgho.st/76cRy7nYh/thumb.png
http://rgho.st/79QMzqjks/thumb.png
В авто :

На ПК :


Инсталл (желательно) в корень диска : d:\4Icar_13_5_MPS_UNI\ (для отображения логотипов радиостанций ),
либо поправить путь на свой на вкладке "Display" в настройках .В названиях папки куда установлен плеер не должно быть пробелов.
Начинать с добавления верхней папки с альбомами в разделе настроек Фубара "Media Library" .
Далее перейти в панель библиотеки (нижняя правая кнопка) и двойным кликом по альбому создать авто-плейлист "Library view" ,
либо создать плейлист в любом из двух менеджеров - левая кнопка сверху и выборочно добавить альбомы.
Для визуализации нужен DirectX 9 : https://www.microsoft.com/ru-ru/down....aspx?id=34429
Для переключения вывода звука на панели DSP добавить свое устройство CTRL+клик :
http://rgho.st/7gyGcvkDv/thumb.png

• При помощи отдельной кнопки CTRL (таймер меняется через "Попертиз" , моргающая индикация) можно :
---1. Выбрать отдельно нужные альбомы и отправить их в плейлист .
---2.+ движение мыши, пальца : Уменьшать-увеличивать размеры шрифтов (других элементов) (движение пальца)
---3. Выборочно удалять треки (кнопка "Корзина") .
---4.+ЛКМ Включать-выключать фоновые картинки скриптов (одиночный клик).
---5. +dblm (двойной клик)Изменять положения переключателей на двойной панели (двойной клик) .
---6. +ЛКМ - Ввести название Вашего устройства(только название!, как на вкладке Output)
для быстрого перезапуска типа вывода на DSP панели (4-е кнопки справа).
• При помощи Shift с клавиатуры можно :
вызвать настройки основного плейлиста,
+ движение мыши, пальца - изменить высоту колонок в доп. менеджере плейлистов на двойной панели .
• Мультитач - можно увеличивать шрифты и размер строк двумя пальцами , переключать индикаторы VU метра .

Два вида "картинок" .
1-й От Марка : кроме основных кнопок есть (отключаемая) - автоочистка при нажатии на выход из плеера .
Добавлена кнопка показывать - не показывать миниатюры .
2 От Гены : Работает авто-выбор русского . При отсутствии переход на инглиш (двойной клик - смена языка).
Старт "био" одним тычком .
12 пресетов 4(вида)x3(размера) . Если наловчились вызывать ПКМ пальцем - можно без проблем переключать пресеты удержание чуть более секунды на основных кнопках (см. видео "В авто") .
Там-же в меню : вкл-выкл анимации и два типа нажатия (Тач - Мышь)
• Менеджеры плейлистов с авто-закрытием (таймер 10 сек) .
Если ткнуть в главный менеджер либо список треков JS плейлиста - таймер обнулится и запустится снова . Вызов этого менеджера теперь без AHK скрипта :)
• Автозапуск открытого плейлиста (только в менеджере JS плейлиста) .
• По приципу перезапуска таймеров работают теперь все авто-закрываемые панели . То-есть , пока есть нажатие - "ожидание" .
4 состояния отображения сикбара (бегущей строки) - переключается двойным тычком - кликом.
• Экспериментально - одна MPS панель внутри другой.

Задержка из-за довольно сложной конструкции ..
Спасибо всем доброжелателям - отдельное :
Евген_21 , duzzy , kgena_ua
Ну и жду багрепорты !
4Icar_13_5_MPS_UNI (Яндекс.Диск)

Евген_21 09.05.2016 11:02

Вложений: 2
Есть вопрос по расположении кнопок.Вложение 43685

Вложение 43686 и что красным отмечено. Кнопка чуть выше. Где поправить. Пока все.

Евген_21 09.05.2016 16:17

Еще заметил одну проблему, песня 13 минут и 32 сек. До половины прогресс бара довожу и переключается на следующую песню. И это скорей не к сборке, было и до этого на других. Пропадает звук на секунду, и порой на одной песне не раз. А, на других например токового нет.

seriousstas 09.05.2016 17:47

Кнопки поправим - остальное опиши по-подробней. Ничего не понял (выложи на rg проблемные треки).
У меня этот плеер сейчас играет круглосуточно и все форамты )
Цитата:

А, на других например токового нет.
других треках , других сборках, других версиях Фубара , других чего??

Евген_21 09.05.2016 17:57

Цитата:

Сообщение от seriousstas (Сообщение 360222)
Кнопки поправим - остальное опиши по-подробней. Ничего не понял .

Попробую объяснить , трек длиною 13 минут 38 секунд. переключаю на 3 минуты ,все ок. На 5 ,тоже все ок. Стоит перевалить за 7 минут ,переключает на следующий трек. Музыка в MP3. Это для информации. Трек сейчас скину. Тоже все форматы играет без проблем, и не один час. Блин, на других не побывал, сейчас попробую.
Попробовал, на предыдущей , такая же фигня. Скидываю трек.

seriousstas 09.05.2016 18:07

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

Евген_21 09.05.2016 18:13

Все, этим разобрался. Показывал время оставившего трека 13 минут, а на самом деле 6 минут. На другом плеере попробовал. Вот сам посмотри.https://cloud.mail.ru/public/Hpzz/LMBffzM13

Евген_21 09.05.2016 18:18

Цитата:

Сообщение от seriousstas (Сообщение 360224)
По (заиканиям) не сталкивался , но советую тестиить всегда на DS (первичный драйвер) и без ДСП ,
пробуй также немного менять буфер .

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

seriousstas 09.05.2016 18:28

Цитата:

Сообщение от Евген_21 (Сообщение 360225)
Все, этим разобрался. Показывал время оставившего трека 13 минут, а на самом деле 6 минут. На другом плеере попробовал. Вот сам посмотри.https://cloud.mail.ru/public/Hpzz/LMBffzM13

На самом деле 4 минуты - кто-то криво рипнул - это не по-теме ...

Цитата:

не на всех треках такое есть
ты снова загадками - клади сюда проблемные треки

Евген_21 09.05.2016 18:34

https://www.youtube.com/watch?v=VQ1Ap10ZuRM
Слушал, много-много раз, Всех С Великой ПОБЕДОЙ

Евген_21 09.05.2016 18:42

Цитата:

Сообщение от seriousstas (Сообщение 360227)
На самом деле 4 минуты - кто-то криво рипнул - это не по-теме ...


ты снова загадками - клади сюда проблемные треки

Помонитору, скину......

seriousstas 10.05.2016 00:23

Цитата:

Всех С Великой ПОБЕДОЙ
Взаимно!
Кнопки поправил - тянуть там-же :
http://pccar.ru/showpost.php?p=360109&postcount=1739

Garen 10.05.2016 11:42

Цитата:

Сообщение от Евген_21 (Сообщение 360228)
https://www.youtube.com/watch?v=VQ1Ap10ZuRM
Слушал, много-много раз, Всех С Великой ПОБЕДОЙ

Взаимно!!!

seriousstas 10.05.2016 17:38

Евген_21
duzzy

Есть вопрос по запуску менеджера для JS плейлиста , как сейчас это работает без AHK ?
Так-же интересует старт (скорость) плеера - учитывая проверки тем цветов для градиентов регуляторов сик и звука и тд ..
Евген_21
еще Tы спрашивал как-то за регулировку индикаторов кнопками в 7-ке .
попробуй те файлы , что по пути:
4Icar_13_5_MPS_UNI\foobar2000\Emul\Windows_7\Wheel D.exe
4Icar_13_5_MPS_UNI\foobar2000\Emul\Windows_7\Wheel Up.exe
заметить в папку Emul

duzzy 11.05.2016 14:33

seriousstas
Только до нормального компа добрался)))

в секции преппроцессора...
pss.GetPanel(11); /*PANEL: [milk]*/// ==PREPROCESSOR==

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

работает шустро, стартует тоже быстро, вроде все как должно быть...

Заметил загрузку проца примерно до 10% процентов при проигрывании и покое но это не критично с учетом кол-ва скриптов и бегущей строки.(тяжелые скрипты можно поставить в отсроченную загрузку "Delay Load" галка в редакторе скрипта)

Вопрос, а чего не сделал автопереключение по времени ? Я пробовал с Икаром работает очень даже не плохо:yes2:

Цитата:

Есть вопрос по запуску менеджера для JS плейлиста , как сейчас это работает без AHK ?
Работает хорошо и вроде без проблем, погонял вызовы, потыкал в менеджер)))
Расскажи плиз схему работы вызова вкратце... интересно как устроено:smile2:

seriousstas 11.05.2016 15:08

Цитата:

Только до нормального компа добрался)))
отдохнули друг от друга .
Цитата:

в секции преппроцессора..
ага - занесло слегка ))

Цитата:

Вопрос, а чего не сделал автопереключение по времени ?
Ну сборку в первую очередь для себя ведь пилил - и потребности такой нет .
Экран утоплен слегка - запас яркости у этого старичка-Самсунга предостаточный,
чтоб четко видеть все элементы даже при прямом солнце .. + есть небольшой отвлекающий момент . Может со временем, когда победим рестарт .. :)
Цитата:

Заметил загрузку проца до 10% процентов
При старте на долю секунды ? я смотрел диспетчер в разных условиях,
получается в среднем 1-2%(проц купил 8 лет назад))), если первый запуск и состояние покоя - опускается до 0.3 иногда (если не сложно сними что-то типа ,что-б понять, где нагрузка максимальная) :

Цитата:

Расскажи плиз схему работы вызова вкратце... интересно как устроено
сейчас залезу - посмотрю, что и куда..

seriousstas 11.05.2016 16:03

На кнопке простой переключатель (два состояния) :
Код:

man++;
if (man > 1)
    man = 0;
                if (man == 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', 1);

                                }
                                }
if (man == 1) {
       
                                if (Man_set_off= utils.ReadINI( set_path + 'settings.ini', 'start_man', 'man_off')==0){
                                utils.WriteINI( set_path + 'settings.ini', 'start_man', 'man_off', 1);
                                                                TAB_Timer = window.CreateTimerInterval(TAB_prop);

                        }
                        }
window.SetProperty("SYS.Man Switch", man);

первое положение покоя - все флаги обнулены :[
Код:

[start_man]
man_off=0
[close_man]
man_off=0
[time_man]
man_off=0

Далее в основном срипте разбил одну функцию на две :
Код:

function togglePlaylistManager_1(){
.......} и
function togglePlaylistManager_2(){
............}

Соответственно закрыть-открыть .
При вызове пишу единицу, а самой функции (JS) её обнуляю, что-б не грузить проц :
utils.WriteINI( set_path + 'settings.ini', 'start_man', 'man_off', 0);
Далее - это для кнопки "закрыть" (ты её рисовал - знешь где :) ) :
utils.WriteINI( set_path + 'settings.ini', 'close_man', 'man_off', 2); - внутри function togglePlaylistManager_2() - показываю открытую панель,
при закрытии - обнуляю .

в WSHplaylistmanager.js пишу тройку при закрытии (крестиком) :
utils.WriteINI( set_path + 'settings.ini', 'close_man', 'man_off', 3);
В МПС принимаю и обнуляю эту тройку здесь (это чтоб переключатель window.SetProperty("SYS.Man Switch", man); стал в правильное положение) :
if (TAB_set_off = utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==3){
tab_switch_check()
}

Здесь смотрим за значениями в главном скрипте JS :
Код:

function on_paint(gr) {
        if (utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==1){
                            togglePlaylistManager_1();

                    }
   
    if (utils.ReadINI( set_path + 'settings.ini', 'start_man', 'man_off')==1){
                            togglePlaylistManager_2();

                    }
    ........

Это в JS что-б сбросить таймер при одиночном клике :
Код:

p.playlistManager.check("down", x, y);
                                            var set_path = fb.ProfilePath + "\\settings\\";
                                            if(cPlaylistManager.visible) {
                                utils.WriteINI( set_path + 'settings.ini', 'time_man', 'man_off', 3);
                                }

В МПС принимаю и обнуляю таймер и тройку здесь :
Код:

    function on_timer(id) {
                                    if ( utils.ReadINI( set_path + 'settings.ini', 'time_man', 'man_off')==3){
tab_switch_check2()
                }

Возможно что-то забыл))

duzzy 11.05.2016 18:34

seriousstas

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

Интересная схема ;)

Цитата:

Здесь смотрим за значениями в главном скрипте JS :
И теперь я понял откуда ноги растут))) с нагрузкой на проц...
смотри у тебя опрос стоит в on_paint(gr)... лучше заменить на интервальный таймер например с опросом каждые пять секунд, тем самым уберешь нагрузку на проц и графику и постоянный опрос файла settings.ini на диске... а в таком варианте

function on_paint(gr) {
if (utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==1){
togglePlaylistManager_1();

получается постоянное чтение файла с диска из функции он_паинт что может подтормаживать графику на медленных системах... я у себя переделал по таймеру и лишняя нагрузка ушла...

Мой совет лучше сделай отдельную функцию опроса, что то вроде этой...

Код:

var time_to_refresh = window.GetProperty("Check_Pl_Manager", 5000);
var t_to_refresh = false;

function pl_manager_check() {
    window.ClearInterval(t_to_refresh);
    t_to_refresh = window.SetInterval(function() {
   
  if (utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==1){
                            togglePlaylistManager_1();

                    }
   
    if (utils.ReadINI( set_path + 'settings.ini', 'start_man', 'man_off')==1){
                            togglePlaylistManager_2();

                    }

    }, time_to_refresh);
};

pl_manager_check();


seriousstas 11.05.2016 19:08

спасибо за видео - очень наглядно !
Цитата:

Я у себя переделал по таймеру и лишняя нагрузка ушла...
Ты имеешь ввиду DSP внутри MPS ? (function on_timer(id) )
Цитата:

Мой совет лучше сделай отдельную функцию опроса, что то вроде этой..
Я просто не понимаю , как это применить в моём случае (просто заменить проверку на код выше? или вниз скрипта...) .
Я ведь показываю 1-цу и сразу прячу , как-бы это работало в общей схеме ? Нажимаю - жду 5 сек - появляется менеджер ,
но даже если так, как он появится ,если я уже обнулил 1-цу) ?
Судя и по видео и по моим тестам - в покое особой нагрузки нет тк нет действий, кроме опроса ини .
Допустим если-бы при 0-ле скрипт всегда пытался закрыть панель - тогда да - растет нагрузка ..

duzzy 11.05.2016 20:06

seriousstas

Пожалуйста !

Да я имею в виду так же как я делал с панелью ДСП при переключении пресета...
Т.е. постоянно работает интервальный таймер например на на 5-ть секунд, и каждые 5-ть секунд идет опрос файла settings.ini на предмет смены флага...

т.е. по сути нужно просто заменить это в JS...

Код:

function on_paint(gr) {
        if (utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==1){
                            togglePlaylistManager_1();

                    }
   
    if (utils.ReadINI( set_path + 'settings.ini', 'start_man', 'man_off')==1){
                            togglePlaylistManager_2();

                    }
    ........

на отдельную функцию вне фунции он_паинт на эту...(прописать можно в конец или куда удобно)

Код:

var time_to_refresh = window.GetProperty("Check_Pl_Manager", 5000);
var t_to_refresh = false;

function pl_manager_check() {
    window.ClearInterval(t_to_refresh);
    t_to_refresh = window.SetInterval(function() {
   
  if (utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==1){
                            togglePlaylistManager_1();

                    }
   
    if (utils.ReadINI( set_path + 'settings.ini', 'start_man', 'man_off')==1){
                            togglePlaylistManager_2();

                    }

    }, time_to_refresh);
};

pl_manager_check();

Цитата:

как-бы это работало в общей схеме ? Нажимаю - жду 5 сек - появляется менеджер ,
Не совсем так... например 5-ти секундный постоянный интервал, при котором происходит опрос файла по смене флагов, далее жмем кнопку закрыть, пишем флаг в файл закрыть, и в зависимости от того на сколько отсчитал таймер произойдет считывание и закрытие менеджера...

Т.е. закрытие менеджера может произойти как через 1-ну секунду может через две, три или через 5-ть... зависит от того до какого времени отмотался таймер как в примере установленный на 5-ть секунд.

По сути ты будешь делать тоже самое что было ранее в он_паинт в JS но по установленному тобой интервалу времени, а не постоянно как было в он_паинт...
Просто как мне кажется это постоянная лишняя нагрузка которой можно избежать, тем более что менеджер-плейлистов не так часто вызывается.

--------------------------------

только что проверил в твоей сборке, все работает как надо... :)

не забудь только потом проверку из он_паинт убрать

интервал 5-ть сек. и опрос итервал 5-ть сек. и опрос... и т.д.

твоя сборка в режиме стоп... ;)
http://jpegshare.net/images/a6/dd/a6...ed48866f50.png
загрузка проца 0%

seriousstas 11.05.2016 21:16

Цитата:

интервал 5-ть сек. и опрос итервал 5-ть сек. и опрос... и т.д.
Верно - только придется ждать все-таки пару сек после нажатия (вызова менеджера) , при 100-200мс
мгновнно, но даже при таком опросе уже меньше грузит проц (оставлю так)...
Цитата:

Т.е. закрытие менеджера может произойти как через 1-ну секунду может через две, три или через 5-ть
у меня так происходит открытие (примерно на третюю секунду ) ...

Интересно , почему function on_timer(id) { в МПС
ничего не грузит (если ты заметил , там несколько проверок) , хотя так-же отслеживает изменения в ini онлайн , без таймеров

duzzy 12.05.2016 02:04

seriousstas
Цитата:

Верно - только придется ждать все-таки пару сек после нажатия (вызова менеджера) , при 100-200мс
мгновнно...
Ну тут как говорится, как тебе больше нравится если тех. возможности позволяют :)
Но я бы все же поставил хотя бы 3000 мс - 3 сек. потому как 100-200 мс это ооочень часто... можешь сам посмотреть в консоли трейсом --- fb.trace("тут пишем что угодно"); прописываешь трейс в функцию опроса затем открываешь консоль и видишь в ней количество вызовов этой функции...
прописать можно сюда...
...
}
fb.trace("тут пишем что угодно, текст который будет отображаться в консоли");
}, time_to_refresh);
};

Цитата:

у меня так происходит открытие (примерно на третюю секунду ) ...
Ну тут время тяжело предсказать, потому что интервальный таймер независимый и молотит свое установленное время постоянно, а ты при нажатии просто попадаешь в какую то часть его цикла... т.е. опишем работу интервального таймера на примере 5-ти сек. --- 5 сек. опрос, 5 сек. опрос, 5 сек. опрос... и получается что нам не известно в какую часть цикла мы попадаем при вызове/закрытии менеджера... т.е. можно попасть и в начало цикла(будем ждать 5 сек. до опроса), можно в середину(будем ждать 2,5 - 3 сек. до опроса), можно попасть в конец цикла(к примеру за 1сек. до опроса)... т.е. время до опроса будет всегда рандомное.

Цитата:

Интересно , почему function on_timer(id) { в МПС
ничего не грузит...
Пока сам не до конца понимаю сей процесс, но как мне кажется это что то схожее как например с запуском разных процессов в эксплорере... т.е. менеджер один а процессы в нем можно запустить разные... пример фиговенький но отображает суть.
Создаются таймеры по ID которые работают изолированно друг от друга и поэтому не оказывают влияния на другие процессы.
Цитата:

если ты заметил , там несколько проверок
Фигня в том что при использовании такого варианта в on_timer(id) будет обрабатываться каждое обращение к функции on_timer(id)... тут надо смотреть имеет ли смысл так делать или прописать в отдельный таймер а не в общую функцию...
И у тебя там еще window.RepaintRect(...) прописан для каких-то целей... тоже постоянно что то перерисовывающий, по хорошему его бы тоже в таймер нужно прописать а не в общую функцию, либо прописать там где нужен репаинт в зависимости от события... я бы подсказал куда прописать но не знаю для чего нужен репаинт...
:)


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

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