I should have added the following: The wav adapter is enumerated by my bus driver. A possible solution would be for my bus driver to enumerate three wav adapters, each of which would register its particular wave subdevice/topology pair, but I'd like to know if there is another solution. Thanks. Philip Lukidis ----- Original Message ----- From: "Philip Lukidis" <pagefault0x0@xxxxxxxxxxx> To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Wednesday, July 02, 2003 1:47 PM Subject: [wdmaudiodev] problem with multiple subdevices and topology: help please > Hi all. > > I have an audio driver (port driver is portcls.sys), with 3 wave subdevices. > I want the user to be able to use sndvol32 to regulate the wave, CD and > SYNTH playback volumes for each wave subdevice. So the topology miniport > has to reflect this, and be properly connected to the wave subdevices. > > With WinXP, I have found at least 2 successful ways of doing this: > > a) I create 3 topology miniports, and connect them to their corresponding > wave miniports via PcRegisterPhysicalConnection. The topology miniports are > the same, and quite simple; in fact for now they > just have a wave volume and mute nodes declared. There are two pins to each > topology miniport, with the > first pin connected to the output of its WAVE subdevice (its category is > KSCATEGORY_AUDIO), and the second > serving as the output (its category is KSNODETYPE_SPEAKER). This method > also works with Win2k. > > b) I create 1 topology miniport, with 3 input pins. Each input pin is > connected to its corresponding WAVE > subdevice via PcRegisterPhysicalConnection. All these pins feed into a sum > node, which then feeds into the > wave volume and then the wave mute. Finally, the wave mute is connected to > the output pin, which is of > category KSNODETYPE_SPEAKER. > > Both these methods work fine under WinXP (method a is confirmed to work with > Win2k), except in the second > method I have an extra volume displayed, probably due to my sum node. I can > regulate the volumes for each > wave subdevice as expected. > > However, under Win98SE/ME, these methods do not work at all. While the > volumes for the first wave subdevice > are displayed OK in sndvol32, using them has no effect. Worse, there are no > other subevices in the playback > menu of sndvol32; the volumes for the last 2 subdevices cannot be displayed > at all. NewStream is not even > called when I try and use the MS supplied synth and my wave subdevice. > > When I tried a variant of method a), I had some success in 98SE/ME. The > variation was to create and connect > only 1 subdevice-topology pair at once. Creating and connecting more than 1 > pair results in the same > symptoms as I've described above. It therefore seems to me that my property > handlers are functioning OK. > > Could anyone give me some clue about what I am doing incorrectly? In the > past I have always had to deal with > 1 wave subdevice, which never have me any problems with the topology. > Thanks. > > Philip Lukidis > ****************** > > WDMAUDIODEV addresses: > Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx > Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe > Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe > Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx > > URL to WDMAUDIODEV page: > http://www.wdmaudiodev.de/ > > ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.de/