Отправление запросов из приложения в драйвер
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

key _ midi - модуль отправления запросов из приложения в драйвер, находится в папке driverio.

Этот модуль содержит таблицу соответствий позиции клавиши к паре (скан-код, флаг).

#define KEY_MIDI_FILE "C:\\KeyMidi.dat"

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

HRESULT KeyGetScanCode(OUT PUCHAR ScanCode, OUT PUCHAR Flag,

IN UCHAR Position);

По позиции клавиши определяется её скан-код и флаг.

HRESULT KeySaveNote(IN LPCTSTR FileName, IN UCHAR ScanCode,

IN UCHAR Flag, IN UCHAR Position,

IN UCHAR Channel, IN UCHAR Instrument, IN UCHAR Note,

IN UCHAR Used);

Сохраняет в файле FileName музыкальную информацию о клавише.

HRESULT KeyGetNote(IN LPCTSTR FileName,

OUT PUCHAR ScanCode, OUT PUCHAR Flag, IN UCHAR Position,

OUT PUCHAR Channel, OUT PUCHAR Instrument,

OUT PUCHAR Note);

По позиции клавиши получает из файла FileName её музыкальную информацию.

HRESULT KeyDriverSendNote(IN UCHAR ScanCode, IN UCHAR Flag,

IN UCHAR Position, IN UCHAR Channel,

IN UCHAR Instrument, IN UCHAR Note,

IN UCHAR Used);

Сохраняет в драйвере музыкальную информацию о клавише.

HRESULT KeyDriverSendAllNotes(IN LPCTSTR FileName);

Сохраняет в драйвере музыкальную информацию обо всех клавишах, музыкальная информация о которых сохранена в файле FileName.

HRESULT SharePinWithDriver(IN HANDLE Pin);

Отправляет в драйвер HANDLE открытого пина.

 



Описание интерфейса пользователя

Установка

Для того чтобы установить или удалить драйвер необходимо открыть программу DriverControl.exe. Выбрать вкладку «Установка драйвера». Кнопки «Установить» и «Удалить» означают установку или удаление драйвера из системы (рис. 3.1). Для того, чтобы изменения вступали в силу, необходимо перезагружать компьютер.

В случае, если на компьютере не найдены нужные аудиоустройства, будет выведено сообщение «Невозможно открыть MIDI-пин». В этом случае драйвер установить можно будет, но назначить ноты для клавиши будет нельзя.

 

Рис.3.1. Установка драйвер

 

Управление

Для того чтобы можно было управлять драйвером, нужно выбрать в программе DrivcrControl.exe вкладку «Назначение звука». Выбирая кнопку, которая соответствует клавиши клавиатуры, можно для неё назначить канал, инструмент и ноту. Можно предварительно проверить звучание ноты, а потом сохранить музыкальную информацию в драйвере. Информация будет продублирована в файле C:\KeyMidi.dat.

 


Рис.3.2. Управление драйвером

 


Автозагрузка

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

Для этого было создано простое приложение, которое открывает пин, отправляет его в драйвер, отправляет в драйвер информацию обо всех музыкальных параметрах, созранённых в файле C:\KeyMidi.dat.

Проект этого приложения находится в папке DriverControl под названием DriverAutoloader. Скомпилированную программу DriverAutoloader.exe можно найти в папке DriverControl/Release. Эту программу по желанию можно сохранить в папке Startup, приложения из которой загружаются во время загрузки ОС Windows.

 

Дата: 2019-12-22, просмотров: 207.