@@ -119,6 +119,13 @@ void BoxDAC::begin() {
119
119
120
120
Log.info (" ...done" );
121
121
122
+ uint8_t headsetDetect = readByte (ADDR_P0_SERIAL::HEADSET_DETECT);
123
+ Log.info (" Headset detect=%B" , headsetDetect); // Always no Headset detected?! TODO
124
+ if ((headsetDetect & 0b00100000 ) == 0b00100000 ) {
125
+ Events.handleHeadphoneEvent (HeadphoneEvent::INSERTED);
126
+ } else {
127
+ Events.handleHeadphoneEvent (HeadphoneEvent::REMOVED);
128
+ }
122
129
// samSay("Hackiebox by Team Revvox!");
123
130
}
124
131
void BoxDAC::opusTest () {
@@ -778,6 +785,36 @@ void BoxDAC::initDACI2C() {
778
785
send (ADDR_P1_DAC_OUT::L_VOL_TO_SPK, 128 );
779
786
}
780
787
788
+
789
+ void BoxDAC::muteSpeaker (bool mute) {
790
+ send (ADDR::PAGE_CONTROL, PAGE::DAC_OUT_VOL);
791
+ uint8_t state = readByte (ADDR_P1_DAC_OUT::SPK_DRIVER);
792
+
793
+ if (mute) {
794
+ state &= ~(0b00000100 );
795
+ } else {
796
+ state |= 0b00000100 ;
797
+ }
798
+
799
+ send (ADDR_P1_DAC_OUT::SPK_DRIVER, state);
800
+ }
801
+ void BoxDAC::muteHeadphones (bool mute) {
802
+ send (ADDR::PAGE_CONTROL, PAGE::DAC_OUT_VOL);
803
+ uint8_t stateL = readByte (ADDR_P1_DAC_OUT::HPL_DRIVER);
804
+ uint8_t stateR = readByte (ADDR_P1_DAC_OUT::HPR_DRIVER);
805
+
806
+ if (mute) {
807
+ stateL &= ~(0b00000100 );
808
+ stateR &= ~(0b00000100 );
809
+ } else {
810
+ stateL |= 0b00000100 ;
811
+ stateR |= 0b00000100 ;
812
+ }
813
+
814
+ send (ADDR_P1_DAC_OUT::HPL_DRIVER, stateL);
815
+ send (ADDR_P1_DAC_OUT::HPR_DRIVER, stateR);
816
+ }
817
+
781
818
void BoxDAC::checkHeadphoneState () {
782
819
send (ADDR::PAGE_CONTROL, PAGE::SERIAL_IO);
783
820
uint8_t intrFlags = readByte (ADDR_P0_SERIAL::DAC_INTR_FLAGS);
0 commit comments