Skip to content

Commit 022cdc4

Browse files
committed
allow jsonFmt to compose with serialOut this is essential for bleSerial
1 parent e71e35e commit 022cdc4

File tree

2 files changed

+52
-45
lines changed

2 files changed

+52
-45
lines changed

library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=ArduinoMenu library
2-
version=4.17.27
2+
version=4.18.0
33
author=Rui Azevedo, [email protected]
44
maintainer=neu-rah, [email protected]
55
sentence=Generic menu/interactivity system

src/menuIO/jsonFmt.h

+51-44
Original file line numberDiff line numberDiff line change
@@ -28,122 +28,129 @@
2828
result fmt(bool start,prompt& target,menuOut::fmtParts part,navNode &nav,idx_t idx=-1) {
2929
switch(part) {
3030
case menuOut::fmtPanel:
31-
if (start) *this<<"{";
32-
else T::operator<<("}");
31+
if (start) T::print("{");
32+
else T::print("}");
3333
break;
3434
case menuOut::fmtTitle:
35-
if (start) T::operator<<("\"title\":{");
36-
else T::operator<<("}\n");
35+
if (start) T::print("\"title\":{");
36+
else T::print("}\n");
3737
break;
3838
case menuOut::fmtBody:
3939
if (start) {
40-
*this<<",\"path\":\"";
40+
T::print(",\"path\":\"");
4141
nav.root->printPath(*this,(menuNode*)&target);
42-
*this<<"\",\"sel\":\""<<nav.sel<<"\"";
43-
*this<<",\"items\":[\n";
44-
} else T::operator<<("\n]\n");
42+
T::print("\",\"sel\":\"");
43+
T::print(nav.sel);
44+
T::print("\"");
45+
T::print(",\"items\":[\n");
46+
} else T::print("\n]\n");
4547
break;
4648
case menuOut::fmtUnit:
47-
*this<<(start?",\"unit\":\"":"\"");
49+
if (start) T::print(",\"unit\":\"");
50+
else T::print("\"");
4851
break;
4952
case menuOut::fmtOp:
5053
if (start) {
51-
if (idx>0) *this<<",\n";
52-
*this<<"{\"idx\":\""<<idx<<"\""
53-
<<",\"enabled\":\""<<target.enabled<<"\"";
54-
} else *this<<("}");
54+
if (idx>0) T::print(",\n");
55+
T::print("{\"idx\":\"");
56+
T::print(idx);
57+
T::print("\"");
58+
T::print(",\"enabled\":\"");
59+
T::print(target.enabled);
60+
T::print("\"");
61+
} else T::print("}");
5562
break;
5663
case menuOut::fmtToggle:
5764
if (start) {
58-
*this<<",\"value\":\"";
65+
T::print(",\"value\":\"");
5966
} else {
60-
*this<<"\"";
67+
T::print("\"");
6168
jsonOptions(*this,nav,*(menuNode*)&target,idx);
6269
// *this<<",";
6370
}
6471
break;
6572
case menuOut::fmtPrompt:
6673
if (start) {
67-
if (idx>=0) *this<<",";
68-
*this<<"\"prompt\":\"";
74+
if (idx>=0) T::print(",");
75+
T::print("\"prompt\":\"");
6976
} else {
70-
*this<<"\"";
77+
T::print("\"");
7178
if (target.has(_asPad))
72-
*this<<",\"pad\":[";
79+
T::print(",\"pad\":[");
7380
};
7481
break;
7582
case menuOut::fmtValue:
76-
if (start) *this<<",\"value\":\"";
77-
else *this<<"\"";
83+
if (start) T::print(",\"value\":\"");
84+
else T::print("\"");
7885
break;
7986
case menuOut::fmtSelect:
8087
if (start) {
81-
*this<<",\"select\":\"";
88+
T::print(",\"select\":\"");
8289
} else {
83-
*this<<"\"";
90+
T::print("\"");
8491
jsonOptions(*this,nav,*(menuNode*)&target,idx);
8592
}
8693
break;
8794
case menuOut::fmtChoose:
8895
if (start) {
89-
*this<<",\"choose\":\"";
96+
T::print(",\"choose\":\"");
9097
} else {
91-
*this<<"\"";
98+
T::print("\"");
9299
jsonOptions(*this,nav,*(menuNode*)&target,idx);
93100
}
94101
break;
95102
break;
96103
case menuOut::fmtField:
97104
if (start) {
98-
*this<<",\"field\":\"";
105+
T::print(",\"field\":\"");
99106
} else {
100-
*this<<"\",\"range\":{\"low\":\"";
107+
T::print("\",\"range\":{\"low\":\"");
101108
target.printLow(*this);
102-
*this<<"\",\"high\":\"";
109+
T::print("\",\"high\":\"");
103110
target.printHigh(*this);
104-
*this<<"\",\"step\":\"";
111+
T::print("\",\"step\":\"");
105112
target.printStep(*this);
106-
*this<<"\",\"tune\":\"";
113+
T::print("\",\"tune\":\"");
107114
target.printTune(*this);
108-
*this<<"\"}";
115+
T::print("\"}");
109116
}
110117
break;
111118
case menuOut::fmtEditCursor:
112-
if (start) *this<<",\"editCursor\":\"";
113-
else *this<<"\"";
119+
if (start) T::print(",\"editCursor\":\"");
120+
else T::print("\"");
114121
break;
115122
case menuOut::fmtTextField:
116-
if (start) *this<<",\"text\":\"";
117-
else *this<<"\"";
123+
if (start) T::print(",\"text\":\"");
124+
else T::print("\"");
118125
break;
119126
case menuOut::fmtIdx:
120127
// if (start) *this<<"\"idx\":";
121128
// else *this<<",";
122129
break;
123130
case menuOut::fmtCursor:
124-
if (start) *this<<",\"cursor\":\"";
125-
else *this<<"\"";
131+
if (start) T::print(",\"cursor\":\"");
132+
else T::print("\"");
126133
break;
127134
case menuOut::fmtCursorOpen:
128-
if (start) *this<<",\"selStart\":\"";
129-
else *this<<"\"";
135+
if (start) T::print(",\"selStart\":\"");
136+
else T::print("\"");
130137
break;
131138
case menuOut::fmtCursorClose:
132-
if (start) *this<<",\"selEnd\":\"";
133-
else *this<<"\"";
139+
if (start) T::print(",\"selEnd\":\"");
140+
else T::print("\"");
134141
break;
135142
case menuOut::fmtOpBody:
136143
if (start) {
137144
// *this<<"\"body\":{";
138145
// if (target.has(_asPad)) *this<<"\"pad\":[";
139146
} else {
140-
if (target.has(_asPad)) *this<<"]";
147+
if (target.has(_asPad)) T::print("]");
141148
// *this<<"}";
142149
}
143150
break;
144151
case menuOut::fmtPreview:
145-
if (start) *this<<",\"preview\":\"";
146-
else *this<<"\"\n";
152+
if (start) T::print(",\"preview\":\"");
153+
else T::print("\"\n");
147154
break;
148155
default:break;
149156
}

0 commit comments

Comments
 (0)