Технологии программирования миди

 Навигация:

 Поиск:

 Новости:

17.02.2007
Полностью переработан дизайн сайта.

6.01.2007
Добавлен раздел Наработки Полезные и интересные программы и их исходники от автора.

19.11.2006
Функции WriteVarLen и ReadVarLen портированы с СИ на Delphi читать

14.11.2006
Появилась cтатья Midi-протокол глазами программиста

24.10.2006
Написана вторая часть MMSystem Функции midiOutGetVolume midiOutSetVolume midiOutMessage midiOutShortMsg и midiOutLongMsg

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

1.09.2006
Добавлен раздел MMSystem в котором находятся
подробные опсания функций winmm.dll, определенных в модуле mmSystem.pas,
с примерами их использования в Delphi.

13.08.2006
Опубликован исходник приложения, записывающего игру на клавиатуре
в стандартный midi-файл SMF - 0

4.07.2006
Добавлен раздел Структура формата миди-файла

 Счетчики:
Rambler's Top100 Яндекс цитирования Rambler's Top100
 Контент:

Интерфейс управляющих сообщений MCI

Более тесное и гибкое взаимодействие между разработанным с ис-пользованием языка С/C++ приложением и устройством мультимедиа можно достичь при использовании интерфейса управляющих сообщений; при этом используется функция mciSendCommand, которой в качестве второго параметра передается код соответствующего управляющего сооб-щения.

Прототип функции mciSendCommand (см. файл mmsystem.h) приве-ден ниже

DWORD
mciSendCommand(UINT wDeviceID, // идентификатор устройства
UINT wMessage, // код сообщения
DWORD dwParam1, // флаги команды
DWORD dwParam2); // указатель на структуру параметров

Здесь wDeviceID -идентификатор управляемого устройства (для со-общения MCI_OPEN не используется, т.к. идентификатор создается в ре-зультате выполнения именно этой команды), wMessage -код сообщения, dwParam1 -флаги команды, dwParam2 -указатель на структуру парамет-ров (формат коей зависит от кода сообщения).

Функция mciSendCommand возвращает нуль при нормальном завер-шении или код ошибки (текстовое описание ошибок можно получить с по-мощью функции mciGetErrorString, передав ей этот код в качестве пара-метра).

Нижеприведенный фрагмент кода открывает устройство ‘waveaudio’ (будет открыт файл, путь к которой записан в переменной szFileAudio)

// определение переменных
MCI_OPEN_PARMS mciOpen;
DWORD dwFlags, dwRc;

// заполнение полей структуры mciOpen
mciOpen.lpstrDeviceID = (LPSTR) "waveaudio";
mciOpen.lpstrElementName = (LPSTR) szFileName;
mciOpen.dwCallback = 0;
mciOpen.wDeviceID = 0;
mciOpen.wReserved = 0;
mciOpen.lpstrAlias = NULL;
dwFlags = MCI_OPEN_TYPE | MCI_OPEN_ELEMENT | MCI_WAIT;

// собственно открытие файла с помощью функции mciSendCommand
dwRc = mciSendCommand(0, MCI_OPEN, dwFlags,
(DWORD) (LPVOID) &mciOpen);

После выполнения данного фрагмента в переменную dwrc будет занесен код результата завершения; при успешном выполнении в поле wDeviceID структуры mciOpen заносится идентификатор открытого устройства.

В следующем примере закрывается мультимедиа -устройство с определенным ранее идентификатором mciOpen.wDeviceID

// определение переменных
MCI_GENERIC_PARMS mciGen;
DWORD dwRc;

// заполнение полей структуры mciOpen
mciGen.dwCallback = 0;

// собственно выполнение функции mciSendCommand
dwRc = mciSendCommand(mciOpen.wDeviceID, MCI_CLOSE, MCI_WAIT,
(DWORD) (LPMCI_GENERIC_PARMS) &mciGen);

Содержание
 Bash.org.ru:

 Реклама:

 ©Copyright:
http://www.last.h16.ru - программирование миди. Идея, разработка и поддержка : Mo-skin © 2006-2007
X