задача следующая: необходимо указать в AudioPath каким синтезатор проигрывать миди (не хочу пользоваться только установленным по умолчанию). Код (Text): DMUS_PORTCAPS PortCaps; ZeroMemory(&PortCaps, sizeof(PortCaps)); PortCaps.dwSize = sizeof(PortCaps); pDirectMusic->EnumPort(iPort, &PortCaps) так я нашел 2 порта: - Realtek AC97 Audio - Microsoft Synthesizer если я буду задавать dmus_param.clsidDefaultSynth значением нужного мне порта, я фактически изменю используемый AudioPath'ом порт или нет? Код (Text): DMUS_AUDIOPARAMS dmus_param; ZeroMemory(&dmus_param, sizeof(dmus_param)); dmus_param.dwSize = sizeof(dmus_param); dmus_param.dwSampleRate = iRate; dmus_param.dwFeatures = DMUS_AUDIOF_ALL; dmus_param.clsidDefaultSynth = PortCaps.guidPort; pPerformance->InitAudio(&pDirectMusic, NULL, NULL, DMUS_APATH_DYNAMIC_MONO, 64, DMUS_AUDIOF_ALL, &dmus_param) pPerformance->CreateStandardAudioPath(DMUS_APATH_DYNAMIC_STEREO, 64, TRUE, &pAudioPath) По косвенным признакам определить какой испозуется порт не получается, так как нет хорошей звуковой, а у этих двух синтезаторов основные параметры совпадают (BitsPerSample, SamplePerSecond и тп)...
А раздел в help'e по dx 9 -> Using DirectMusic Ports может чем-то помочь? У performance есть метод PChannelInfo. Он даст указатель на интерфейс IDirectMusicPort а в нем можно вызвать GetCaps. Может быть можно после InitAudio посмотреть какой порт задействован?
keYMax А раздел в help'e по dx 9 -> Using DirectMusic Ports может чем-то помочь? не-а, первая фраза этой статьи: This section covers access to DirectMusic ports by applications that do not use audiopaths а мне нужно с audiopaths посмотрел с помощью PChannelInfo - работает только Microsoft Synthesizer. может я не правильно заполняю структуру DMUS_AUDIOPARAMS? В параметр (CLSID) DMUS_AUDIOPARAMS.clsidDefaultSynth пишу (GUID) DMUS_PORTCAPS.guidPort? Можно по GUID узнать CLSID?
еще такой нюанс: посмотрел с помощью GetCaps у "Realtek AC97 Audio" отсутствует флаг DMUS_PC_AUDIOPATH (установлены только 2 флага: DMUS_PC_DLS, DMUS_PC_SOFTWARESYNTH). судя по всему, не получится создать AudioPath для "Realtek AC97 Audio", а мне нужно идти покупать нормальную звуковуху?