# HG changeset patch # User Mychaela Falconia # Date 1686000873 0 # Node ID d32ac4edb6349602bce2842a6005f8b09efe8ded # Parent 4bb5772a05a3d06f5b34b28a926de326e0d0df2f aci: add AT%MSCAP command for tinkering with /pcm/MSCAP diff -r 4bb5772a05a3 -r d32ac4edb634 src/g23m-aci/aci/aci_cmh.h --- a/src/g23m-aci/aci/aci_cmh.h Sun May 21 21:43:10 2023 +0000 +++ b/src/g23m-aci/aci/aci_cmh.h Mon Jun 05 21:34:33 2023 +0000 @@ -552,6 +552,7 @@ AT_CMD_AT_BZSTOP, AT_CMD_AT_VIBR, AT_CMD_AT_VIBS, + AT_CMD_P_MSCAP, AT_CMD_P_SPVER, /* terminator */ AT_CMD_MAX, /* maximum command id */ diff -r 4bb5772a05a3 -r d32ac4edb634 src/g23m-aci/aci/ati_cmd.c --- a/src/g23m-aci/aci/ati_cmd.c Sun May 21 21:43:10 2023 +0000 +++ b/src/g23m-aci/aci/ati_cmd.c Mon Jun 05 21:34:33 2023 +0000 @@ -790,6 +790,8 @@ EXTERN T_ATI_RSLT atAtVIBR (char *cl, UBYTE srcId); EXTERN T_ATI_RSLT atAtVIBS (char *cl, UBYTE srcId); #endif +EXTERN T_ATI_RSLT atPercentMSCAP (char *cl, UBYTE srcId); +EXTERN T_ATI_RSLT queatPercentMSCAP (char *cl, UBYTE srcId); EXTERN T_ATI_RSLT atPercentSPVER (char *cl, UBYTE srcId); EXTERN T_ATI_RSLT queatPercentSPVER (char *cl, UBYTE srcId); @@ -1275,6 +1277,8 @@ {"@VIBR", AT_CMD_AT_VIBR, atAtVIBR, 0, 0, 0}, {"@VIBS", AT_CMD_AT_VIBS, atAtVIBS, 0, 0, 0}, #endif + {"%MSCAP", AT_CMD_P_MSCAP, atPercentMSCAP, test_gen, queatPercentMSCAP, + "%s: (00-FF),(00-FF),(00-FF),(00-FF),(00-FF),(00-FF)"}, {"%SPVER", AT_CMD_P_SPVER, atPercentSPVER, test_gen, queatPercentSPVER, "%s: (0,1),(0-5),(0-5),(0-5),(0-5),(0-5)"}, /* terminator */ diff -r 4bb5772a05a3 -r d32ac4edb634 src/g23m-aci/aci/ati_fcmisc.c --- a/src/g23m-aci/aci/ati_fcmisc.c Sun May 21 21:43:10 2023 +0000 +++ b/src/g23m-aci/aci/ati_fcmisc.c Mon Jun 05 21:34:33 2023 +0000 @@ -107,6 +107,39 @@ return (ATI_CMPL); } +/* AT%MSCAP - tinker with /pcm/MSCAP settings */ +GLOBAL T_ATI_RSLT atPercentMSCAP (char *cl, UBYTE srcId) +{ + EF_MSCAP mscap; + + TRACE_FUNCTION("atPercentMSCAP()"); + + mscap.featLst1 = 0; + mscap.featLst2 = 0; + mscap.featLst3 = 0; + cl = parse(cl, "XXXxxx", &mscap.chnMode, &mscap.datCap1, &mscap.datCap2, + &mscap.featLst1, &mscap.featLst2, &mscap.featLst3); + if (!cl) + return (ATI_FAIL); + pcm_WriteFile((UBYTE *) EF_MSCAP_ID, SIZE_EF_MSCAP, (UBYTE *) &mscap); + return (ATI_CMPL); +} + +GLOBAL T_ATI_RSLT queatPercentMSCAP (char *cl, UBYTE srcId) +{ + EF_MSCAP mscap; + UBYTE version; + char *me="%MSCAP: "; + + pcm_ReadFile((UBYTE *) EF_MSCAP_ID, SIZE_EF_MSCAP, (UBYTE *) &mscap, + &version); + sprintf(g_sa, "%s%02X,%02X,%02X,%02X,%02X,%02X", me, mscap.chnMode, + mscap.datCap1, mscap.datCap2, mscap.featLst1, mscap.featLst2, + mscap.featLst3); + io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT); + return (ATI_CMPL); +} + /* AT%SPVER - set custom speech version list */ GLOBAL T_ATI_RSLT atPercentSPVER (char *cl, UBYTE srcId) {