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

Acmfilterdetails

typedef struct {

DWORD cbStruct;

DWORD dwFilterIndex;

DWORD dwFilterTag;

DWORD fdwSupport;

LPWAVEFILTER pwfltr;

DWORD cbwfltr;

char szFilter[ACMFILTERDETAILS_FILTER_CHARS];

} ACMFILTERDETAILS;

Переменные

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

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

  3. dwFilterTag — идентификатор аудио фильтра, описываемого в данном объекте структуры ACMFILTERDETAILS. Эту переменную следует инициализировать при установке флага ACM_FILTERDETAILSF_INDEX. При установке флага ACM_FILTERDETAILSF_FORMAT в данной переменной должен содержаться тот же идентификатор аудио фильтра, что и в переменной pwfltr. Для всех остальных флагов эта переменная должна содержать значение WAVE_FILTER_UNKNOWN. Если функция acmFilterDetails успешно завершает свою работу, эта переменная всегда содержит корректное значение.

  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. pwfltr — указатель на объект структуры WAVEFILTER, в которую будут записаны характеристики фильтра. Если в функции acmFilterDetails не установлен флаг ACM_FILTERDETAILSF_FILTER, то данный объект структуры не нуждается в инициализации. В противном случае значение переменной dwFilterTag объекта структуры WAVEFILTER должно совпадать со значением переменной dwFilterTag объекта структуры ACMFILTERDETAILS.

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

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

Примечание

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

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

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