Skip to content

Commit a15bc51

Browse files
committed
replace with libfmt formatting
1 parent b51b72d commit a15bc51

File tree

2 files changed

+43
-31
lines changed

2 files changed

+43
-31
lines changed

components/expressive_eyes/example/main/expressive_eyes_example.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ extern "C" void app_main(void) {
155155
espp::ExpressiveEyes::Expression::WINK_RIGHT};
156156

157157
for (const auto &expr : expressions) {
158-
logger.info("Expression: {}", espp::ExpressiveEyes::expression_name(expr));
158+
logger.info("Expression: {}", expr);
159159
eyes.set_expression(expr);
160160
auto start = std::chrono::steady_clock::now();
161161
while (std::chrono::duration<float>(std::chrono::steady_clock::now() - start).count() < 3.0f) {

components/expressive_eyes/include/expressive_eyes.hpp

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -109,36 +109,6 @@ class ExpressiveEyes : public BaseComponent {
109109
WINK_RIGHT, ///< Right eye closed
110110
};
111111

112-
/**
113-
* @brief Get string name for expression
114-
* @param expr Expression enum
115-
* @return String name of expression
116-
*/
117-
static constexpr const char *expression_name(Expression expr) {
118-
switch (expr) {
119-
case Expression::NEUTRAL:
120-
return "Neutral";
121-
case Expression::HAPPY:
122-
return "Happy";
123-
case Expression::SAD:
124-
return "Sad";
125-
case Expression::ANGRY:
126-
return "Angry";
127-
case Expression::SURPRISED:
128-
return "Surprised";
129-
case Expression::SLEEPY:
130-
return "Sleepy";
131-
case Expression::BORED:
132-
return "Bored";
133-
case Expression::WINK_LEFT:
134-
return "Wink Left";
135-
case Expression::WINK_RIGHT:
136-
return "Wink Right";
137-
default:
138-
return "Unknown";
139-
}
140-
}
141-
142112
/**
143113
* @brief Configuration for expressive eyes
144114
*/
@@ -239,3 +209,45 @@ class ExpressiveEyes : public BaseComponent {
239209
float redraw_timer_{0.0f};
240210
};
241211
} // namespace espp
212+
213+
// for libfmt formatting of ExpressiveEyes::Expression
214+
template <> struct fmt::formatter<espp::ExpressiveEyes::Expression> {
215+
constexpr auto parse(format_parse_context &ctx) { return ctx.begin(); }
216+
template <typename FormatContext>
217+
auto format(const espp::ExpressiveEyes::Expression &expr, FormatContext &ctx) const {
218+
std::string name;
219+
switch (expr) {
220+
case espp::ExpressiveEyes::Expression::NEUTRAL:
221+
name = "NEUTRAL";
222+
break;
223+
case espp::ExpressiveEyes::Expression::HAPPY:
224+
name = "HAPPY";
225+
break;
226+
case espp::ExpressiveEyes::Expression::SAD:
227+
name = "SAD";
228+
break;
229+
case espp::ExpressiveEyes::Expression::ANGRY:
230+
name = "ANGRY";
231+
break;
232+
case espp::ExpressiveEyes::Expression::SURPRISED:
233+
name = "SURPRISED";
234+
break;
235+
case espp::ExpressiveEyes::Expression::SLEEPY:
236+
name = "SLEEPY";
237+
break;
238+
case espp::ExpressiveEyes::Expression::BORED:
239+
name = "BORED";
240+
break;
241+
case espp::ExpressiveEyes::Expression::WINK_LEFT:
242+
name = "WINK_LEFT";
243+
break;
244+
case espp::ExpressiveEyes::Expression::WINK_RIGHT:
245+
name = "WINK_RIGHT";
246+
break;
247+
default:
248+
name = "UNKNOWN";
249+
break;
250+
}
251+
return fmt::format_to(ctx.out(), "{}", name);
252+
}
253+
};

0 commit comments

Comments
 (0)