
Комментарии 12
если однажды куплю такой джойстик, погляжу на досуге. выглядит несложно
Подпишусь на обновления. У меня геймпад xbox one bluetooth по проводу (я играю возле компа) и оставлять его с светящийся кнопкой после игровой сессии это как что-то незавершенное, а прожимать кнопку слишком долго, слишком. Могу предоставить свои дампы или побыть бета-тестером.
Полностью разделяю ваши ощущения. Видеть, как он лежит 15 минут включенный - режет глаза. Напишу вам, как снова возьмусь за это. Еще надеюсь, что в новых версиях GameInput, всё-таки, появится возможность отключать питание без танцев с бубном. В нулевой версии был метод PowerOff, видимо, изначально была идея давать это делать, может быть к этому вернутся
Достойный оверхэд, снимаю шляпу)
У меня тот же сценарий использования, сразу решил делать так (по пунктам проблем из статьи):
Переключаю видеовывод на тв по Win+P (легко вслепую, если отключен тв/монитор в этот момент) с монитора на тв и обратно в режим "Только экран компьютера" или "Только второй экран", вместе с переключением меняется и аудиовывод по умолчанию (при переключению видеовывода на тв звук тоже переключается на него и наоборот, запоминается последнее выбранное соответствие видео-звук, настраивается один раз при первом переключении)
Не использую Ночной свет по расписанию (для монитора всегда можно кликнуть кнопкой в панели у часов, если нужно)
Выключаю геймпад долгим нажатием (да, долго, но не настолько, чтобы что-то с этим делать)
Мы на то и разработчики\программисты, чтобы автоматизировать монотонные задачи. Не люблю держать кнопки и вообще делать одно и тоже за компом каждый раз, когда есть инструменты, позволяющие не делать это. Да и ковыряться во всем этом было достаточно интересно.
К тому же, у меня довольно сложная домашняя система, разные аудиоустройства, три монитора и пр. Автоматизация уже необходимость, а не прихоть
Сейчас качаю навыки C#, чтобы методы GameInput поизучать лучше.
А мне очень не хватает отключения подсветки для кнопки... Играя вечером, светит прямо в глаза. На XBox, насколько знаю, отключить можно. А вот в Windows - нет
Это тоже описывается в документации. Если подключить джойстик по простому проводу, то можно регулировать яркость кнопки Guide, я пока экспериментировал, убавлял ее на 50-80%. Меня тоже беспокоит яркость, ядерная) Так что если научимся выключать джойстик, то научимся и регулировать свет)
Два часа вайб-запросинга с КлодКодом выдали в конце такой результат (для контроллера, подключенного по BLE):
Скрытый текст
Всё проверено и не работает для стандартных Xbox контроллеров
на Windows:
┌───────────────────────────────────────┬──────────────────┐
│ Метод │ Причина провала │
├───────────────────────────────────────┼──────────────────┤
│ │ xusb22.sys │
│ HID output report (USB) │ перехватывает, │
│ │ caps output=0 │
├───────────────────────────────────────┼──────────────────┤
│ │ WSA 10050, │
│ Raw L2CAP BT │ Windows │
│ │ блокирует │
├───────────────────────────────────────┼──────────────────┤
│ │ Команды │
│ BLE GATT char 0x0004 │ принимаются, LED │
│ │ не меняется │
├───────────────────────────────────────┼──────────────────┤
│ GipGameControllerProvider.SendMessage │ Нет GIP │
│ │ контроллера │
├───────────────────────────────────────┼──────────────────┤
│ INexusApi.SetTempNexusBrightness │ Только для GIP, │
│ │ BT+USB = XUSB │
├───────────────────────────────────────┼──────────────────┤
│ IMessageApi / IMessageSender │ Только для │
│ │ GIP-аксессуаров │
└───────────────────────────────────────┴──────────────────┘
Вывод: Стандартные Xbox контроллеры (One/Series X/S) на
Windows всегда используют XUSB — и по USB (xusb22.sys), и по
BT (bthxhid.sys → XUSB bridge). GIP (и все связанные API
управления LED) доступен только для GIP-аксессуаров (Elite
Controller v2, гарнитуры) через xboxgip.sys. Смена яркости LED
кнопки Guide через Windows-software для стандартных
контроллеров невозможна известными методами.Интересная информация. Я сейчас изучаю именно вариант с GIP, при подключении по беспроводному адаптеру.
Насколько я знаю, при работе по блютуз - это совершенно другая история и данные там то ли шифруются, то ли передаются по-другому.
XUSB, насколько я знаю, это про старые джойстики иксбокс 360. Начиная с Xbox One, контроллеры работают по GIP. В случае с Series это подтвержается тем, что при работе по проводу USB команду из GIP-документации отрабатывают.GipGameControllerProvider.SendMessage - я пробовал. Там нужно каким-то образом ждать, чтобы появился контроллер. Даже если он уже подключен к ПК на момент запуска кода с этим методом, джойстик все равно определяется позже и я не смог разобраться как правильно получать к нему доступ. Наверное, попробую еще раз на досуге. Но само пространство имен Windows.Gaming.Input.Custom, как я понял, больше для кастомных геймпадов, у которых подразумевается дополнительный функционал.
ну у меня по проводу тоже получилось отключить подсветку кнопки.
однако при подключении по BLE (без донгла) - GIP не доступен. ну и отключив подсветку по проводу, при переключении на BLE кнопка снова "зажигается". заказал донгл, посмотрим как с ним. возможно через него будет доступен GIP
Цена обсессии или как я пытался программно выключить джойстик Xbox Series