Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

Acmformatdetails

typedef struct {

DWORD cbStruct;

DWORD dwFormatIndex;

DWORD dwFormatTag;

DWORD fdwSupport;

LPWAVEFORMATEX pwfx;

DWORD cbwfx;

char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];

} ACMFORMATDETAILS;

Переменные

  1. cbStruct — размер в байтах объекта структуры ACMFORMATDETAILS. Данная переменная должна быть инициализирована перед вызовом функций acmFormatDetails и acmFormatEnum. Размер, указанный в этой переменной должен быть достаточно большим, чтобы содержать базовую структуру ACMFORMATDETAILS. При выходе из функции acmFormatDetails в данной переменной содержится действительный размер возвращаемой информации. Размер возвращаемой информации никогда не превышает передаваемый в данной переменной размер.

  2. dwFormatIndex — индекс формата, параметры которого определяются. Индекс может принимать любое значение от нуля до величины, на единицу меньшей числа стандартных форматов, поддерживаемых драйвером ACM для данного типа формата. Число стандартных форматов, поддерживаемых драйвером для данного типа формата, содержится в переменной cStandardFormats структуры ACMFORMATTAGDETAILS. Переменная dwFormatIndex используется только при запросе информации по типам фильтрам, во всех остальных случаях данная переменная должна иметь нулевое значение. Следует также отметить, что данная переменная устанавливается в ноль при ответе ACM на запрос приложения о параметрах фильтра. То есть эта переменная используется только для ввода и никогда не возвращается ACM или драйвером ACM.

  3. dwFilterTag — идентификатор типа аудио формата, характеристики которого содержатся в данном объекте структуры ACMFORMATDETAILS. Значение этой переменной должно быть инициализировано перед использованием флага ACM_FORMATDETAILSF_INDEX. При установке флага ACM_FORMATDETAILSF_FORMAT в данной переменной должен содержаться тот же идентификатор формата, что и в переменной pwfltr. Для всех остальных флагов эта переменная должна содержать значение WAVE_FORMAT_UNKNOWN. Если функция acmFormatDetails успешно завершает свою работу, эта переменная всегда содержит корректное значение.

  4. fdwSupport — флаги поддержки драйверов, различные для различных фильтров. Эти флаги совпадают с флагами, определёнными для переменной fdwSupport в объекте структуры ACMDRIVERDETAILS. Определены следующие значения флагов:

  • ACMDRIVERDETAILS_SUPPORTF_ASYNC — драйвер допускает асинхронное преобразование.

  • ACMDRIVERDETAILS_SUPPORTF_CODEC — драйвер допускает преобразование между двумя различными типами представления данных. Например, этот флаг устанавливается в том случае, когда драйвер допускает преобразование формата WAVE_FORMAT_PCM в формат WAVE_FORMAT_ADPCM.

  • ACMDRIVERDETAILS_SUPPORTF_CONVERTER — драйвер допускает преобразование между двумя различными форматами одного типа представления данных. Например, этот флаг устанавливается в том случае, когда драйвер допускает изменение частоты дискретизации в формате WAVE_FORMAT_PCM.

  • ACMDRIVERDETAILS_SUPPORTF_FILTER — драйвер допускает использование фильтра (изменение данных при сохранении формата их представления). Например, этот флаг устанавливается в том случае, когда драйвер допускает изменение уровня воспроизведения и добавление эха в формате WAVE_FORMAT_PCM.

  • ACMDRIVERDETAILS_SUPPORTF_HARDWARE — драйвер позволяет производить аппаратный ввод, вывод или одновременный ввод и вывод через аудио устройство. Для получения идентификаторов устройств, связанных с поддерживаемым драйвером ACM приложение должно вызвать функцию acmMetrics с индексами метрики ACM_METRIC_HARDWARE_WAVE_INPUT и ACM_METRIC_HARDWARE_WAVE_OUTPUT.

  1. pwfx — указатель на объект структуры WAVEFORMATEX, в которую будут записаны характеристики формата. Если в функции acmFormatDetails не установлен флаг ACM_FORMATDETAILSF_FORMAT, то данный объект структуры не нуждается в инициализации. В противном случае значение переменной wFormatTag объекта структуры WAVEFORMATEX должно совпадать со значением переменной dwFormatTag объекта структуры ACMFORMATDETAILS.

  2. cbwfltr — размер в байтах, который может быть использован для записи информации в объект структуры, на который указывает переменная pwfx. Для определения максимального размера структуры, необходимого для хранения характеристик любого формата для указанного драйвера (или для всех установленных драйверов ACM) следует воспользоваться функциями acmMetrics и acmFormatTagDetails.

  3. szFormat — заканчивающаяся нулём строка, содержащая описание формата типа фильтра dwFormatTag. Если функция acmFormatDetails успешно завершает свою работу, эта переменная всегда содержит корректное значение.

Примечание

Объект структуры ACMFORMATDETAILS используется для передачи и хранения информации о характеристиках формата, определяемого типом формата, для драйвера ACM.

Описание данной структуры содержится в файле заголовка msacm.h. При работе с данным интерфейсом следует включить в проект библиотеку msacm32.lib.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]