aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/alsa/alsa-softmixer.h
diff options
context:
space:
mode:
authorMark Farrugia <mark.farrugia@fiberdyne.com.au>2019-02-12 12:11:26 +1100
committerMark Farrugia <mark.farrugia@fiberdyne.com.au>2019-02-12 12:12:38 +1100
commitd5ac69750d6d16c88ee009e0106bfd6eeffaa695 (patch)
tree56026a1dc912f49d76ebc24fa3c27b2c9a7e82dd /plugins/alsa/alsa-softmixer.h
parentd5cc09d1ef5c58bb8d34e3a47c391a10d8b48181 (diff)
Add support for AVIRT
Leverage the new AVIRT driver for a more secure, more dynamically configurable loopback sound driver. To use, replace the file smixer-4a-default.json with smixer-4a-avirt.json, at /usr/libexec/agl/smixer/etc. The snd-avirt drivers are installed in AGL by default as of 6.99.2. The existing snd-aloop configuration is not broken by this change. Change-Id: I827636656c109a7393ad77997e05069a2462ea46 Signed-off-by: Mark Farrugia <mark.farrugia@fiberdyne.com.au>
Diffstat (limited to 'plugins/alsa/alsa-softmixer.h')
-rw-r--r--plugins/alsa/alsa-softmixer.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/plugins/alsa/alsa-softmixer.h b/plugins/alsa/alsa-softmixer.h
index b6c0e5b..2fb9370 100644
--- a/plugins/alsa/alsa-softmixer.h
+++ b/plugins/alsa/alsa-softmixer.h
@@ -242,7 +242,7 @@ typedef struct {
typedef struct {
char * uid;
- int index;
+ int index; // AVIRT: parent PCM index (Since subdev idx is always 0)
int numid;
struct cds_list_head list;
} AlsaLoopSubdevT;
@@ -251,10 +251,11 @@ typedef struct {
struct SoftMixerT_;
typedef struct AlsaSndLoopT {
+ bool avirt; // AVIRT: Is this loop AVIRT?
const char *uid;
struct SoftMixerT_ * mixer; /* owner */
- int playback;
- int capture;
+ int playback; // AVIRT: UNUSED
+ int capture; // AVIRT: UNUSED
AlsaSndCtlT *sndcard;
int nbSubdevs;
AlsaLoopSubdevT subdevs;
@@ -368,7 +369,7 @@ PUBLIC AlsaPcmCtlT* AlsaCreateDmix(SoftMixerT *mixer, const char* pcmName, AlsaS
// alsa-api-*
-PUBLIC int ApiLoopAttach(SoftMixerT *mixer, afb_req_t request, const char *, json_object * argsJ);
+PUBLIC int ApiLoopAttach(SoftMixerT *mixer, afb_req_t request, const char *, json_object * argsJ, json_object *streamsJ);
PUBLIC int ApiSourceAttach(SoftMixerT *mixer, afb_req_t request, const char *, json_object * argsJ);
PUBLIC int ApiSinkAttach(SoftMixerT *mixer, afb_req_t request, const char *, json_object * argsJ);
PUBLIC int ApiStreamAttach(SoftMixerT *mixer, afb_req_t request, const char * uid, const char *prefix, json_object * argsJ);