-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIR_Uni.cpp
More file actions
225 lines (216 loc) · 5.07 KB
/
IR_Uni.cpp
File metadata and controls
225 lines (216 loc) · 5.07 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#include <Arduino.h>
#include "commands.h"
#include "IR_Uni.h"
//#include "IR_UniDVR.h"
#include "IR_Uni088.h"
// 088
//static unsigned int lastKey;
bool IR_check_RPT(unsigned long value) {
return (value==IR_RPT_MSG ? true : false);
}
bool IR_check_PROTO(unsigned long value) {
return (value==IRPROTO ? true : false);
}
bool IR_check_ADDRESS(unsigned long value){
return ((value)>>16==IRADDR ? true : false);
}
unsigned int IR_checkCMD(unsigned long value) {
int k=(int) value&0xFF;
unsigned int b=(int) (value>>8)&0xFF;
if ((k^b)!=0xFF){ // CRC Not OK
return IRNone;
}
else {
return k;
}
}
//#define debug
_COMMAND IR_decode(unsigned int value) {
// Serial.print("IR_decode = ");
// Serial.println(value);
#ifdef DEBUGIR
Serial.print("IR value=0x");
Serial.println(value,HEX);
#endif
if (value!=IRNone) {
// Serial.print("IR_decode value ");
// Serial.println(value, HEX);
switch (value) {
case IR_KB_POWER:
#ifdef DEBUGIR
Serial.println("IR_KB_POWER");
#endif
return C_PWR;
break;
case IR_KB_R:
return C_SEL_IN_1; // I2S 1
#ifdef DEBUGIR
Serial.println("C_SEL_IN_1");
#endif
break;
case IR_KB_G:
return C_SEL_IN_2;
#ifdef DEBUGIR
Serial.println("C_SEL_IN_2");
#endif
break;
case IR_KB_Y:
return C_SEL_IN_3;
#ifdef DEBUGIR
Serial.println("C_SEL_IN_3");
#endif
break;
case IR_KB_B:
return C_SEL_IN_4;
#ifdef DEBUGIR
Serial.println("C_SEL_IN_4");
#endif
break;
case IR_KB_0:
return C_SEL_IN_5; // RPI
#ifdef DEBUGIR
Serial.println("C_SEL_IN_5");
#endif
break;
case IR_KB_11:
return C_SEL_IN_6; // RPI
#ifdef DEBUGIR
Serial.println("C_SEL_IN_6");
#endif
break;
case IR_KB_12:
return C_SEL_IN_7; // RPI
#ifdef DEBUGIR
Serial.println("C_SEL_IN_7");
#endif
break;
case IR_KB_1:
return C_SEL_IN_9; // SPDIF 1
#ifdef DEBUGIR
Serial.println("C_SEL_IN_9");
#endif
break;
case IR_KB_2:
return C_SEL_IN_10; // SPDIF 2
#ifdef DEBUGIR
Serial.println("C_SEL_IN_10");
#endif
break;
case IR_KB_3:
return C_SEL_IN_11; // SPDIF 3
#ifdef DEBUGIR
Serial.println("C_SEL_IN_11");
#endif
break;
case IR_KB_4:
return C_SEL_IN_12; // SPDIF 4
#ifdef DEBUGIR
Serial.println("C_SEL_IN_12");
#endif
break;
case IR_KB_5:
return C_SEL_IN_13; // SPDIF 5
#ifdef DEBUGIR
Serial.println("C_SEL_IN_13");
#endif
break;
case IR_KB_6:
return C_SEL_IN_14; // SPDIF 6
#ifdef DEBUGIR
Serial.println("C_SEL_IN_14");
#endif
break;
case IR_KB_7:
return C_SEL_IN_15; // SPDIF 7
#ifdef DEBUGIR
Serial.println("C_SEL_IN_15");
#endif
break;
case IR_KB_8:
return C_SEL_IN_16; // SPDIF 8
#ifdef DEBUGIR
Serial.println("C_SEL_IN_16");
#endif
break;
case IR_KB_REW:
return C_P_PREV_TRACK;
// Serial.println("Left B");
#ifdef DEBUGIR
Serial.println("C_P_PREV_TRACK");
#endif
break;
case IR_KB_PAUSE:
return C_P_PAUSE;
// Serial.println("Up");
#ifdef DEBUGIR
Serial.println("C_P_PAUSE");
#endif
break;
case IR_KB_PLAY:
return C_P_PLAY;
// Serial.println("Right");
#ifdef DEBUGIR
Serial.println("C_P_PLAY");
#endif
break;
case IR_KB_FF:
return C_P_NEXT_TRACK;
// Serial.println("Right B");
#ifdef DEBUGIR
Serial.println("C_P_NEXT_TRACK");
#endif
break;
case IR_KB_STOP:
return C_P_STOP;
// Serial.println("Down");
#ifdef DEBUGIR
Serial.println("C_P_STOP");
#endif
break;
case IR_KB_Mute:
return C_VOL_MUTE;
// Serial.println("Mute");
#ifdef DEBUGIR
Serial.println("C_VOL_MUTE");
#endif
break;
case IR_KB_Ch_Up:
return C_SEL_IN_NEXT;
// Serial.println("Ch Up");
#ifdef DEBUGIR
Serial.println("C_SEL_IN_NEXT");
#endif
break;
case IR_KB_Vol_Up:
return C_VOL_UP;
// Serial.println("Vol Up");
#ifdef DEBUGIR
Serial.println("C_VOL_UP");
#endif
break;
case IR_KB_Ch_Down:
return C_SEL_IN_PREV;
// Serial.println("Ch Down");
#ifdef DEBUGIR
Serial.println("C_SEL_IN_PREV");
#endif
break;
case IR_KB_Vol_Dn:
return C_VOL_DN;
// Serial.println("Vol Dn");
#ifdef DEBUGIR
Serial.println("C_VOL_DN");
#endif
break;
default:
// Serial.println(results.value, HEX);
// Serial.println(value, HEX);
return C_NONE;
break;
}
}
else {
return C_NONE;
}
}
//#undef debug