-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathTDA7439.cpp
More file actions
75 lines (66 loc) · 1.63 KB
/
TDA7439.cpp
File metadata and controls
75 lines (66 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <Arduino.h>
#include <Wire.h>
#include "TDA7439.h"
TDA7439::TDA7439(){
Wire.begin();
}
void TDA7439::setInput(uint8_t input){
switch (input) {
case 1: input = TDA7439_input_1;break;
case 2: input = TDA7439_input_2;break;
case 3: input = TDA7439_input_3;break;
case 4: input = TDA7439_input_4;break;
}
writeWire(TDA7439_input_sel,input);
}
void TDA7439::inputGain(uint8_t gain){
writeWire(TDA7439_input_gain,gain);
}
void TDA7439::setVolume(uint8_t volume){
if (volume == 0){
volume = TDA7439_mute;
}else{
volume = 48 - volume;
}
writeWire(TDA7439_volume,volume);
}
void TDA7439::setSnd(int8_t val, uint8_t range){
switch (range){
case 1:range = TDA7439_bass;break;
case 2:range = TDA7439_middle;break;
case 3:range = TDA7439_trebble;break;
}
switch (val){
case -7:val = 0;break;
case -6:val = 1;break;
case -5:val = 2;break;
case -4:val = 3;break;
case -3:val = 4;break;
case -2:val = 5;break;
case -1:val = 6;break;
case 0 :val = 7;break;
case 1 :val = 14;break;
case 2 :val = 13;break;
case 3 :val = 12;break;
case 4 :val = 11;break;
case 5 :val = 10;break;
case 6 :val = 9;break;
case 7 :val = 8;break;
}
writeWire(range,val);
}
void TDA7439::mute(){
writeWire(TDA7439_volume,TDA7439_mute);
}
void TDA7439::spkAtt(uint8_t att){
// Mainly used to override the default attenuation of mute at power up
// can be used for balance with some simple code changes here.
writeWire(TDA7439_ratt,att);
writeWire(TDA7439_latt,att);
}
void TDA7439::writeWire(char a, char b){
Wire.beginTransmission(TDA7439_address);
Wire.write (a);
Wire.write (b);
Wire.endTransmission();
}