+static EDataFlow GetDeviceFlow(IMMDevice *dev)
+{
+ void *pv;
+
+ if (FAILED(IMMDevice_QueryInterface(dev, &IID_IMMEndpoint, &pv)))
+ return false;
+
+ IMMEndpoint *ep = pv;
+ EDataFlow flow;
+
+ if (SUCCEEDED(IMMEndpoint_GetDataFlow(ep, &flow)))
+ flow = eAll;
+ IMMEndpoint_Release(ep);
+ return flow;
+}
+
+static IAudioClient *GetClient(demux_t *demux, bool *restrict loopbackp)