diff --git a/src/TinyGsmClientSIM800.h b/src/TinyGsmClientSIM800.h index 48857ce..5d37e58 100644 --- a/src/TinyGsmClientSIM800.h +++ b/src/TinyGsmClientSIM800.h @@ -445,6 +445,46 @@ class TinyGsmSim800 : public TinyGsmModem, protected: // No functions of this type supported + /* + * Audio functions + */ + public: + bool setVolume(uint8_t volume = 50){ + //Set speaker volume + sendAT(GF("+CLVL="), volume); + return waitResponse() == 1; + } + + uint8_t getVolume(){ + //Get speaker volume + sendAT(GF("+CLVL?")); + if (waitResponse(GF(GSM_NL)) != 1) { return 0; } + String res = stream.readStringUntil('\n'); + waitResponse(); + res.replace("+CLVL:", ""); + res.trim(); + return res.toInt(); + } + + bool setMicVolume(uint8_t channel, uint8_t level){ + if(channel > 4){ + return 0; + } + sendAT(GF("+CMIC="), level); + return waitResponse() == 1; + } + + bool setAudioChannel(uint8_t channel){ + sendAT(GF("+CHFA="), channel); + return waitResponse() == 1; + } + + bool playToolkitTone(uint8_t tone, uint32_t duration){ + sendAT(GF("STTONE="), 1, tone); + delay(duration); + sendAT(GF("STTONE="), 0); + return waitResponse(); + } /* * Time functions */