-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProtocolSettings.cpp
94 lines (76 loc) · 1.86 KB
/
ProtocolSettings.cpp
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
#include "ProtocolSettings.h"
#include "MinDimmingSettings.h"
#include "BaudRateSettings.h"
#include "ReadFromEepromSettings.h"
ProtocolSettings::ProtocolSettings(DIYCVars *vars) : DIYCSettings(vars)
{
mVars->printSettings();
mVars->getLcd()->setCursor(0,1);
mVars->getLcd()->print("Protocol ->");
}
DIYCSettings *ProtocolSettings::upAction()
{
return new MinDimmingSettings(mVars);
}
DIYCSettings *ProtocolSettings::downAction()
{
if ( mVars->getProtocol() == DMX )
return new ReadFromEepromSettings(mVars);
return new BaudRateSettings(mVars);
}
DIYCSettings *ProtocolSettings::rightAction()
{
return new EditProtocolSettings(mVars);
}
DIYCSettings *ProtocolSettings::selectAction()
{
return new EditProtocolSettings(mVars);
}
const char *EditProtocolSettings::protocolToString()
{
switch (mProtocol)
{
case(RENARD):
return "Renard";
case(DMX):
return "DMX";
default:
return "ERROR!";
}
}
EditProtocolSettings::EditProtocolSettings(DIYCVars *vars) : DIYCSettings(vars), mProtocol(mVars->getProtocol())
{
mVars->printSettings();
mVars->getLcd()->setCursor(0,1);
mVars->getLcd()->print(protocolToString());
}
DIYCSettings *EditProtocolSettings::downAction()
{
if ( mProtocol > 0 )
--mProtocol;
mVars->printSettings();
mVars->getLcd()->setCursor(0,1);
mVars->getLcd()->print(protocolToString());
return this;
}
DIYCSettings *EditProtocolSettings::upAction()
{
if ( mProtocol+1 < MAX_PROTOCOLS )
++mProtocol;
mVars->printSettings();
mVars->getLcd()->setCursor(0,1);
mVars->getLcd()->print(protocolToString());
return this;
}
DIYCSettings *EditProtocolSettings::leftAction()
{
return new ProtocolSettings(mVars);
}
DIYCSettings *EditProtocolSettings::selectAction()
{
mVars->setProtocol(mProtocol);
if ( mProtocol != DMX )
mVars->setBaudRateRenard();
return new ProtocolSettings(mVars);
}
EditProtocolSettings::~EditProtocolSettings() { }