summaryrefslogtreecommitdiffstats
path: root/plugins/alsa/alsa-softmixer.c
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2018-05-13 22:07:22 +0200
committerFulup Ar Foll <fulup@iot.bzh>2018-05-13 22:07:22 +0200
commit6f13e28ba698a2b0145acbb926b79cd569a31f44 (patch)
tree061e2daace484aea73200ab85db39b3fafeb95e4 /plugins/alsa/alsa-softmixer.c
parent0eb15da6365910ba3f290e3254719fd412ae0155 (diff)
First testable version.
Mixing with volume and mute per audio role works.
Diffstat (limited to 'plugins/alsa/alsa-softmixer.c')
-rw-r--r--plugins/alsa/alsa-softmixer.c82
1 files changed, 0 insertions, 82 deletions
diff --git a/plugins/alsa/alsa-softmixer.c b/plugins/alsa/alsa-softmixer.c
index bd9ee5e..23a01dd 100644
--- a/plugins/alsa/alsa-softmixer.c
+++ b/plugins/alsa/alsa-softmixer.c
@@ -33,85 +33,3 @@ CTLP_ONLOAD(plugin, callbacks) {
return NULL;
}
-CTLP_LUA2C(AlsaDmix, source, argsJ, responseJ) {
- json_object* subscribeArgsJ = NULL;
-
- int error = 0;
- wrap_json_pack(&subscribeArgsJ, "{ss}", "value", "location");
- AFB_ApiNotice(source->api, "lua2c router with %s", json_object_to_json_string_ext(subscribeArgsJ, JSON_C_TO_STRING_PRETTY));
-
- return error;
-}
-
-
-
-CTLP_LUA2C(AlsaRouter, source, argsJ, responseJ) {
- json_object *sndInJ, *sndOutJ, *paramsJ = NULL;
- AlsaPcmInfoT *sndIn, *sndOut;
- int error;
-
- // make sndIn/Out a pointer to get cleaner code
- sndIn = calloc(1, sizeof (AlsaPcmInfoT));
- sndOut = calloc(1, sizeof (AlsaPcmInfoT));
-
- // set pcm options to defaults
- AlsaPcmHwInfoT *pcmOpts;
- pcmOpts = calloc(1, sizeof (AlsaPcmHwInfoT));
- pcmOpts->format = SND_PCM_FORMAT_UNKNOWN;
- pcmOpts->access = SND_PCM_ACCESS_RW_INTERLEAVED;
-
- error = wrap_json_unpack(argsJ, "{s:o,s:o,s?o}", "devin", &sndInJ, "devout", &sndOutJ, "params", &paramsJ);
- if (error) {
- AFB_ApiNotice(source->api, "--lua2c-- AlsaRouter ARGS missing devIn|devOut args=%s", json_object_get_string(argsJ));
- goto OnErrorExit;
- }
-
- error = wrap_json_unpack(sndInJ, "{s?s,s?s,s?i,s?i,s?i}", "path", &sndIn->devpath, "id", &sndIn->cardid, "numid", &sndIn->numid, "dev", &sndIn->device, "sub", &sndIn->subdev);
- if (error || (!sndIn->devpath && !sndIn->cardid)) {
- AFB_ApiNotice(source->api, "--lua2c-- AlsaRouter DEV-IN missing 'path|id|dev|sub|numid' devin=%s", json_object_get_string(sndInJ));
- goto OnErrorExit;
- }
-
- error = wrap_json_unpack(sndOutJ, "{s?s,s?s,s?i,s?i, s?i}", "path", &sndOut->devpath, "id", &sndOut->cardid, "numid", &sndOut->numid, "dev", &sndOut->device, "sub", &sndOut->subdev);
- if (error || (!sndOut->devpath && !sndOut->cardid)) {
- AFB_ApiNotice(source->api, "--lua2c-- AlsaRouter DEV-OUT missing 'path|id|dev|sub' devout=%s", json_object_get_string(sndOutJ));
- goto OnErrorExit;
- }
-
- if (paramsJ) if ((error = wrap_json_unpack(paramsJ, "{s?i, s?i, s?i, s?i}", "format", &pcmOpts->format, "access", &pcmOpts->access, "rate", &pcmOpts->rate, "channels", &pcmOpts->channels)) != 0) {
- AFB_ApiNotice(source->api, "--lua2c-- AlsaRouter PARAMS missing 'format|access|rate|channels' params=%s", json_object_get_string(paramsJ));
- goto OnErrorExit;
- }
-
- AFB_ApiNotice(source->api, "--lua2c-- AlsaRouter devin=%s devout=%s rate=%d channel=%d", sndIn->devpath, sndOut->devpath, pcmOpts->rate, pcmOpts->channels);
-
- // Check sndOut Exist and build a valid cardid config
- error = AlsaByPathDevid(source, sndOut);
- if (error) goto OnErrorExit;
-
- // open capture PCM
- AlsaPcmInfoT *pcmIn = AlsaByPathOpenPcm(source, sndIn, SND_PCM_STREAM_CAPTURE);
- if (!pcmIn) goto OnErrorExit;
-
- AlsaPcmInfoT *pcmDmix = AlsaCreateDmix(source, "DmixPlugPcm", sndOut);
- if (!pcmDmix) goto OnErrorExit;
-
- //AlsaPcmInfoT *pcmVol = AlsaCreateVol(source, "SoftVol", sndIn, pcmDmix);
- //if (!pcmVol) goto OnErrorExit;
-
- //error = AlsaPcmCopy(source, pcmIn, pcmVol, pcmOpts);
- //if (error) goto OnErrorExit;
-
- // Registration to event should be done after pcm_start
- if (sndIn->numid) {
- error = AlsaCtlRegister(source, pcmIn, sndIn->numid);
- if (error) goto OnErrorExit;
- }
-
- return 0;
-
-OnErrorExit:
- AFB_ApiNotice(source->api, "--lua2c-- ERROR AlsaRouter sndIn=%s sndOut=%s rate=%d channel=%d", sndIn->devpath, sndOut->devpath, pcmOpts->rate, pcmOpts->channels);
- return -1;
-}
-