aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/alsa/alsa-utils-bypath.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/alsa/alsa-utils-bypath.c')
-rw-r--r--plugins/alsa/alsa-utils-bypath.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/alsa/alsa-utils-bypath.c b/plugins/alsa/alsa-utils-bypath.c
index 2f22333..4c258c2 100644
--- a/plugins/alsa/alsa-utils-bypath.c
+++ b/plugins/alsa/alsa-utils-bypath.c
@@ -27,6 +27,7 @@
#include <sys/ioctl.h>
#include "alsa-softmixer.h"
+#include "alsa-bluez.h"
// extracted IOCTLs from <alsa/asoundlib.h>
#define _IOR_HACKED(type,nr,size) _IOC(_IOC_READ,(type),(nr),size)
@@ -63,6 +64,10 @@ PUBLIC AlsaPcmCtlT *AlsaByPathOpenPcm(SoftMixerT *mixer, AlsaDevInfoT *pcmDev, s
AlsaPcmCtlT *pcmCtl = calloc(1, sizeof (AlsaPcmCtlT));
char *cardid = NULL;
+ if (pcmDev->pcmplug_params) {
+ pcmDev->cardid = pcmDev->pcmplug_params;
+ }
+
if (!pcmDev->cardid) {
if (pcmDev->subdev) {
if (asprintf(&cardid, "hw:%i,%i,%i", pcmDev->cardidx, pcmDev->device, pcmDev->subdev) == -1)
@@ -115,7 +120,9 @@ PUBLIC snd_ctl_t *AlsaByPathOpenCtl(SoftMixerT *mixer, const char *uid, AlsaSndC
if (dev->cid.devpath)
cardInfo = AlsaByPathInfo(mixer, dev->cid.devpath);
else if (dev->cid.cardid)
- cardInfo = AlsaCtlGetInfo(mixer, dev->cid.cardid);
+ cardInfo = AlsaCtlGetCardInfo(mixer, dev->cid.cardid);
+ else if (dev->cid.pcmplug_params)
+ cardInfo = AlsaCtlGetCardInfo(mixer, dev->cid.pcmplug_params);
if (!cardInfo) {
AFB_ApiError(mixer->api,