Разъем для наушников Event (Windows XP) с Realtek ALC888

Как обнаружить событие разъем для наушников, вставленных / удаленных на Realtek ALC888?

Есть ли какой-нибудь SDK или lib?

Глобальный вопрос: как обнаружить это же событие под Windows XP?
Глобальный ответ: не существует универсального решения. Но Realtek аудио знаю. Как?

9

Решение

В Windows XP есть устаревшая функция

waveInGetNumDevs(void)

это должно возвращать 0, если разъем для наушников не подключен. В любом случае, точное поведение зависит от фактического аппаратного драйвера. Смотрите также: http://msdn.microsoft.com/en-us/library/ms713732%28VS.85%29.aspx

Есть некоторые звуковые карты, где это не будет работать, но если драйвер поставляется с утилитой, которая запускается, когда что-то подключено к разъему для наушников (т.е. некоторые карты имеют общий разъем для наушников / микрофона, и если вы вставляете устройство, оно спросит вас, какое устройство вы только что подключили) — чем вы могли бы написать свое собственное «приложение обнаружения»,
который сообщает как-то (например, сокеты, каналы, разделяемая память), если что-то подключено к вашему основному приложению. Обычно в каталоге установки драйвера есть exe-файл — вы можете просто заменить его на «приложение обнаружения», которое запускается, если что-то было подключено автоматически таким образом.

Боюсь, что помимо этих двух «решений» (или лучшего обходного пути для второго), в Windows XP нет способа обнаружить, подключено ли устройство к разъему для наушников. В Windows Vista и более новых версиях этих событий существует новый интерфейс, называемый IKsJackDescription.

3

Другие решения

Также может быть запущен WM_DEVICECHANG.

1

По вопросам рекламы [email protected]