diff --git a/reactos/lib/drivers/sound/mmixer/controls.c b/reactos/lib/drivers/sound/mmixer/controls.c index a92c1e82032..2328cb7aedd 100644 --- a/reactos/lib/drivers/sound/mmixer/controls.c +++ b/reactos/lib/drivers/sound/mmixer/controls.c @@ -468,12 +468,15 @@ MMixerCountMixerControls( /* get next nodes */ MMixerGetNextNodesFromPinIndex(MixerContext, Topology, PinId, bUpStream, &NodesCount, Nodes); - if (NodesCount > 1) + if (NodesCount == 0) { - /* FIXME: the pin is connected by several nodes */ - DPRINT1("Topology split detected at Pin %lu bUpStream %lu NodesCount %lu", PinId, bUpStream, NodesCount); - for(NodeIndex = 0; NodeIndex < NodesCount; NodeIndex++) - DPRINT1("Pin Connected from Node %lu", Nodes[NodeIndex]); + /* a pin which is not connected from any node + * a) it is a topology bug (driver bug) + * b) the request is from an alternative mixer + alternative mixer code scans all pins which have not been used and tries to build lines + */ + DPRINT1("MMixerCountMixerControls PinId %lu is not connected by any node\n", PinId); + MMixerPrintTopology(Topology); return MM_STATUS_UNSUCCESSFUL; } diff --git a/reactos/lib/drivers/sound/mmixer/priv.h b/reactos/lib/drivers/sound/mmixer/priv.h index d5446b81b37..9cfab6ebaba 100644 --- a/reactos/lib/drivers/sound/mmixer/priv.h +++ b/reactos/lib/drivers/sound/mmixer/priv.h @@ -523,3 +523,6 @@ MMixerGetConnectedFromLogicalTopologyPins( IN ULONG NodeIndex, OUT PULONG OutPinCount, OUT PULONG OutPins); + +VOID +MMixerPrintTopology();