Имитация устройства MIDI - Windows - PullRequest
5 голосов
/ 01 июля 2010

Мне нужен совет по программированию Windows, MIDI и WDM. Я пытаюсь написать небольшое приложение, которое будет находиться в системном трее и будет объявлено в системе как устройство ввода / вывода MIDI, чтобы MIDI-программы могли отправлять на него, и оно будет конвертировать сообщения в другой формат. Я читал книгу Want Канта и искал информацию о написании драйверов устройств, но не знаю, пойду ли я по правильному пути. Я пока не вижу, как: -

a) зарегистрировать мой драйвер как поддерживающий MIDI (я прикрепляю ссылку на него в реестре и позволяю ОС направлять MIDI-вызовы на функциональность в dll?)

b) перенаправить MIDI-данные через драйвер my в мое приложение, которое, вероятно, будет слишком большим для самого драйвера.

Любой совет о том, с чего начать, будет высоко ценится. Спасибо, Пит

Ответы [ 3 ]

7 голосов
/ 23 декабря 2010

Драйверы Windows MIDI не нужно реализовывать в ядре, они могут быть полностью реализованы в пользовательском пространстве как библиотеки DLL.

MSDN имеет некоторую информацию о функциях, которые необходимо реализовать - Сообщения аудиоустройствадля MIDI - к сожалению, его несколько не хватает.

Раньше был образец кода для этого типа драйвера, как часть NT4 DDK, но, к сожалению, более поздние версии DDK / WDK этого не делаютвключите его больше.

Некоторую лучшую (хотя и более старую) документацию и пример кода можно найти после некоторого поиска:

1 голос
/ 01 июля 2010

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

На стороне водителя вы, вероятно, захотите взглянуть на документы MSDN . Это ответит на часть (а) вашего вопроса.

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

0 голосов
/ 14 июля 2010

Если вы ищете более простой способ для начала работы, существует драйвер обратной петли MIDI, и люди, которые делают его, также предлагают (или использовали, чтобы предложить) его версию, которая позволяет вашей программе общаться напрямую. с водителем. Это дает вам поведение, которое вы ищете, когда программа отображается как MIDI-устройство. Драйвер обратной связи находится по адресу http://nerds.de/en/loopbe1.html. Я больше не вижу страницу разработчика, но если вы свяжетесь с ними, вы сможете приобрести лицензию для драйвера, к которому вы можете получить прямой доступ без обратной связи.

...