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)

seriousstas 02.05.2016 20:34

Цитата:

Сообщение от duzzy (Сообщение 359610)
seriousstas
Ну окно ввода я уже вывожу)))... посмотрим что дальше получится:)
http://jpegshare.net/thumbs/a4/5c/a4...8f97060055.jpg

-----------------------------------
загонять значения тоже уже могу, сейчас посмотрим получится устройство поменять или нет...

класс! через пропертиз меняет хорошо ..

duzzy 02.05.2016 21:12

seriousstas

Посмотри мой прошлый пост я там видос снял как воркает при ручном вводе...

Сейчас соберу код в кучу и выложу тут с примером на две кнопки в панели ДСП...

Пример переключения в панели ДСП...

две кнопки
------------------------------------------------------
// 2
new TextButton(0, 0, bw, bh, font, dev ? g_color_on : g_color_off, device_name, function () {
dev = true;
dev2 = false;
window.SetProperty("Device ON",dev);
window.SetProperty("Device2 ON",dev2);
window.GetProperty("Device ON");
window.GetProperty("Device2 ON");

if(utils.IsKeyPressed(0x11)){
var device_name = window.GetProperty("Device Name");

var ddd = input_box(p_text, d_text, w_title);
window.SetProperty("Device Name",ddd);
fb.trace("Device Name : "+ddd)

}else{

var device_name = window.GetProperty("Device Name");

fb.RunMainMenuCommand("Playback/Device/" + device_name);

recalc_dimensions();
}
}),
// 3
new TextButton(bw, 0, bw, bh, font, dev2 ? g_color_on : g_color_off, device_name2, function () {
dev = false;
dev2 = true;
window.SetProperty("Device2 ON",dev2);
window.SetProperty("Device ON",dev);
window.GetProperty("Device ON");
window.GetProperty("Device2 ON");

if(utils.IsKeyPressed(0x11)){
var device_name2 = window.GetProperty("Device Name2");

var ddd2 = input_box(p_text, d_text, w_title);
window.SetProperty("Device Name2",ddd2);
fb.trace("Device Name : "+ddd2)

}else{

var device_name2 = window.GetProperty("Device Name2");

fb.RunMainMenuCommand("Playback/Device/" + device_name2);

recalc_dimensions();
};
}),
------------------------------------------------------
это дописать в конце скрипта

var device_name = window.GetProperty("Device Name","Первичный звуковой драйвер");
var device_name2 = window.GetProperty("Device Name2","Null output");
var dev = window.GetProperty("Device ON");
var dev2 = window.GetProperty("Device2 ON");
var p_text ="Выбор Устройтва Вывода";
var w_title ="Output Device";
var d_text ="";

function input_box(p_text, d_text, w_title){
vbe = new ActiveXObject('ScriptControl');
vbe.Language = 'VBScript';
return vbe.eval( "InputBox(\"" + p_text + "\",\"" + w_title + "\",\"" + d_text + "\")");
}

:rolleyes2:

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

device_name --- пишет на кнопке название введенного в диалоге устройства №1

device_name2 --- пишет на кнопке название введенного в диалоге устройства №2

переключатель состояния вкл/выкл устройства на кнопке

dev = true; --- вкл и выкл индикацию состояния устройства на кнопке
dev2 = false; --- ---//---
...

seriousstas 02.05.2016 21:22

Цитата:

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

Посмотри мой прошлый пост я там видос снял как воркает при ручном вводе...

Сейчас соберу код в кучу и выложу тут с примером на две кнопки в панели ДСП...

Ок - именно так это и представлял .

Вчера в Генин скрипт с Твоими кнопками добавил авто-переключение
языка текста . Кнопку переключения убрал . Она не нужна совсем - кроме переключения автоматом есть и двойной клик , который Ты делал ...
Убрал и кнопку поднятия текста - повесил на двойной клик "по шапке" )) Всего 8 кнопок получилось . Норм.
Если всё будет гладко до утра будет 4Icar_13_5_MPS_UNI :yes4:

duzzy 02.05.2016 21:42

seriousstas

Да я тоже подумал и решил что так будет проще и вводить и переключать ;)

Молодцом :good:
Цитата:

авто-переключение
не всегда гуд, потому как био на русском не всегда есть и оно иногда очень сильно отличается от англицкого варианта.

Цитата:

Убрал и кнопку поднятия текста
Ну ты же знаешь я люблю кнопки))):big:(пусть лучше будут а если нужно то всегда можно переделать как нужно)

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

Цитата:

до утра будет 4Icar_13_5_MPS_UNI
Класс !!!! Уже хочу пощупать))) Всегда люблю что то новое гонять :great:

seriousstas 02.05.2016 21:48

Цитата:

авто-переключение
не всегда гуд, потому как био на русском не всегда есть и оно иногда очень сильно отличается от англицкого варианта.
Работает так :
если нет русского - грузит инглиш .
Если нужен инглиш при найденном русском - просто двойной клик по тексту ...

Сейчас убегаю ... Все буду собирать в полночь :)

duzzy 02.05.2016 21:50

seriousstas
Ок понял...

...подождем полночи :vampire:

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

seriousstas 03.05.2016 04:02

Давно думал про переключалку вывода , поэтому со сборкой задержусь немного ..
duzzy

1.Если последний вариант - нужен релоад здесь для немедленного отображения введённого :
Код:

if(utils.IsKeyPressed(0x11)){
var device_name2 = window.GetProperty("Device Name2");

var ddd2 = input_box(p_text, d_text, w_title);
window.SetProperty("Device Name2",ddd2);
fb.trace("Device Name : "+ddd2)
window.Reload();
}

2. При выборе в диалоге "Отмена" - настройки почему-то слетают .
3 .Кнопка всё-таки пусть отображает одно общее название, например (тогда первый пункт не актуален) :
DS
WASAPI
DSD : WASAPI
или ASIO

иначе на кнопке "каша" из-за длинного имени (а введённое название пусть уходит в "свойства").
Так кстати и было сделано первначально через case 1,2,3...
Поправишь ?
и возможно получится отображать введённое ранее (при вызове окна) , хотя сомневаюсь ..
да , и по дефолту "Первичный звуковой драйвер" не заработает , добавь DS :

duzzy 03.05.2016 04:15

seriousstas
Не торопись главное чтоб все работало как хочется ;)

1. А зачем там релоад ?
2. Обнуляются или что то другое ?
3. Тут выбор не велик:) могу предложить только ручной ввод через Пропертиз.
Цитата:

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

seriousstas 03.05.2016 04:25

1. А без него не обновляется кнопка после ввода.
Только если-зайти-выйти из пропертиз или после рестарта .
2. "Обнуляются" на Твои дефолтные (что при первой установке скрипта)
3. Так больше и не нужно , можно и вообще без пропертиз . Сразу прописать, что будет поверх (хотя первый удобнее ..) . Сунеш команды из кнопки в case ?

duzzy 03.05.2016 05:17

seriousstas

1. релоадом решил работает без него.
2. обнуление убрал, прошлое устройство тоже теперь показывает при вводе... вот так...
http://jpegshare.net/thumbs/c8/8c/c8...2e5421a036.jpg

3. так там же просто берется название из Пропертис...
смотри...
это кнопка жирным синим отметил переменную текста на кнопке, ее нужно просто заменить в скрипте на ту что была до нее, в этой кнопке это dsp_2
//2
new TextButton(0, 0, bw, bh, font, dev ? g_color_on : g_color_off, device_name, function () {...}
в //3 кнопке это dsp_3

вот новый вариант...

в рекалк добавишь это(нужно для обновления переменной и отображения обновленного названия на кнопке)...

function recalc_dimensions() {
ww = window.Width;
wh = window.Height;

dsp = window.GetProperty("dsp");

device_name = window.GetProperty("Device Name");
device_name2 = window.GetProperty("Device Name2");

.............

далее....
пример из двух кнопок...

// 2
new TextButton(0, 0, bw, bh, font, dev ? g_color_on : g_color_off, device_name, function () {
dev = true;
dev2 = false;
window.SetProperty("Device ON",dev);
window.SetProperty("Device2 ON",dev2);
window.GetProperty("Device ON");
window.GetProperty("Device2 ON");

if(utils.IsKeyPressed(0x11)){
device_name = window.GetProperty("Device Name");
var nl = "\" + chr(10) + \"";
var ddd = input_box(p_text + nl + nl +device_name, device_name, w_title);
if(ddd == undefined){
window.SetProperty("Device Name",device_name);
}else{
window.SetProperty("Device Name",ddd);
recalc_dimensions();
};
fb.trace("Device Name : "+ddd)

}else{

var device_name = window.GetProperty("Device Name");

fb.RunMainMenuCommand("Playback/Device/" + device_name);

recalc_dimensions();
}
}),
// 3
new TextButton(bw, 0, bw, bh, font, dev2 ? g_color_on : g_color_off, device_name2, function () {
dev = false;
dev2 = true;
window.SetProperty("Device2 ON",dev2);
window.SetProperty("Device ON",dev);
window.GetProperty("Device ON");
window.GetProperty("Device2 ON");

if(utils.IsKeyPressed(0x11)){
device_name2 = window.GetProperty("Device Name2");
var nl = "\" + chr(10) + \"";
var ddd2 = input_box(p_text + nl + nl +device_name2, device_name2, w_title);
if(ddd2 == undefined){
window.SetProperty("Device Name2",device_name2);
}else{
window.SetProperty("Device Name2",ddd2);
recalc_dimensions();
};
fb.trace("Device Name : "+ddd2)

}else{

var device_name2 = window.GetProperty("Device Name2");

fb.RunMainMenuCommand("Playback/Device/" + device_name2);

recalc_dimensions();
};
}),

трэйс(fb.trace) можешь убрать он не нужен для работы

жирным синим отметил переменную текста на кнопке, ее нужно просто заменить в скрипте на ту что была до нее,
во //2 кнопке это dsp_2
в //3 кнопке это dsp_3
...


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

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