diff options
Diffstat (limited to 'plugins/alsa/alsa-core-ctl.c')
-rw-r--r-- | plugins/alsa/alsa-core-ctl.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/plugins/alsa/alsa-core-ctl.c b/plugins/alsa/alsa-core-ctl.c index d128b6c..01e560f 100644 --- a/plugins/alsa/alsa-core-ctl.c +++ b/plugins/alsa/alsa-core-ctl.c @@ -25,6 +25,8 @@ for the specific language governing permissions and #define _GNU_SOURCE // needed for vasprintf #include "alsa-softmixer.h" +#include "alsa-bluez.h" + #include <pthread.h> #include <sys/syscall.h> @@ -279,12 +281,22 @@ OnErrorExit: // Clone of AlsaLib snd_card_load2 static function -PUBLIC snd_ctl_card_info_t *AlsaCtlGetInfo(SoftMixerT *mixer, const char *cardid) { +PUBLIC snd_ctl_card_info_t *AlsaCtlGetCardInfo(SoftMixerT *mixer, const char *cardid) { int error; snd_ctl_t *ctl; AFB_ApiNotice(mixer->api, "Looking for card '%s'", cardid); + /* "bluealsa" is the name of the control external plugin + * (https://www.alsa-project.org/alsa-doc/alsa-lib/ctl_external_plugins.html) + */ + if (strstr(cardid, "bluealsa")) { + cardid="bluealsa"; + alsa_bluez_init(); + } + + AFB_ApiNotice(mixer->api, "Opening card control '%s'", cardid); + if ((error = snd_ctl_open(&ctl, cardid, SND_CTL_READONLY)) < 0) { cardid = "Not Defined"; goto OnErrorExit; @@ -627,6 +639,8 @@ OnErrorExit: PUBLIC int AlsaCtlRegister(SoftMixerT *mixer, AlsaSndCtlT *sndcard, AlsaPcmCtlT *pcmdev, RegistryNumidT type, int numid) { int index; + AFB_ApiInfo(mixer->api,"%s: %d!\n", __func__, numid); + for (index = 0; index < sndcard->rcount; index++) { if (!sndcard->registry[index]) break; } |