Skip to content

Commit 66eb2a0

Browse files
committed
AudioDriverWM8978Class
1 parent 5a26c03 commit 66eb2a0

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

src/Driver.h

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
#include "Driver/es8388/es8388.h"
1515
#include "Driver/tas5805m/tas5805m.h"
1616
#include "Driver/wm8960/mtb_wm8960.h"
17-
#include "Driver/wm8994/wm8994.h"
1817
#include "Driver/wm8978/WM8978.h"
18+
#include "Driver/wm8994/wm8994.h"
1919
#include "DriverPins.h"
2020

2121
namespace audio_driver {
@@ -1081,7 +1081,7 @@ class AudioDriverWM8960Class : public AudioDriver {
10811081
*/
10821082
class AudioDriverWM8978Class : public AudioDriver {
10831083
public:
1084-
AudioDriverWM8978Class() {}
1084+
AudioDriverWM8978Class() = default;
10851085

10861086
bool begin(CodecConfig codecCfg, DriverPins &pins) override {
10871087
bool rc = true;
@@ -1124,12 +1124,29 @@ class AudioDriverWM8978Class : public AudioDriver {
11241124
return true;
11251125
}
11261126

1127+
/// Mute line 0 = speaker, line 1 = headphones
1128+
bool setMute(bool mute, int line) override {
1129+
int scaled = mute ? 0 : map(volume, 0, 100, 0, 63);
1130+
switch (line) {
1131+
case 0:
1132+
wm8078.setSPKvol(scaled);
1133+
return true;
1134+
case 1:
1135+
wm8078.setHPvol(scaled, scaled);
1136+
return true;
1137+
default:
1138+
return false;
1139+
}
1140+
return false;
1141+
}
1142+
11271143
bool setMute(bool mute) override {
11281144
if (mute) {
1129-
int tmp = volume;
1130-
setVolume(0);
1131-
volume = tmp;
1145+
// set volume to 0
1146+
wm8078.setSPKvol(0);
1147+
wm8078.setHPvol(0, 0);
11321148
} else {
1149+
// restore volume
11331150
setVolume(volume);
11341151
}
11351152
return true;
@@ -1157,9 +1174,7 @@ class AudioDriverWM8978Class : public AudioDriver {
11571174

11581175
bool isInputVolumeSupported() override { return true; }
11591176

1160-
WM8978& driver() {
1161-
return wm8078;
1162-
}
1177+
WM8978 &driver() { return wm8078; }
11631178

11641179
protected:
11651180
WM8978 wm8078;

0 commit comments

Comments
 (0)