From 79ae413982147121e4afa25ff26e9416ef16636c Mon Sep 17 00:00:00 2001 From: Simone Guscetti Date: Thu, 16 Feb 2017 19:16:29 +0100 Subject: [PATCH] lib tunes: Add string input method --- src/lib/tunes/tunes.cpp | 11 +++++++++++ src/lib/tunes/tunes.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/lib/tunes/tunes.cpp b/src/lib/tunes/tunes.cpp index 57a276cd69..33cc000518 100644 --- a/src/lib/tunes/tunes.cpp +++ b/src/lib/tunes/tunes.cpp @@ -140,6 +140,17 @@ int Tunes::parse_cmd(struct tune_control_s &tune_control, unsigned &frequency, u return continue_sequnece; } +int Tunes::parse_string(const char *string, unsigned &frequency, unsigned &duration, unsigned &silence) +{ + // set tune string the first time + if (_tune == nullptr) { + _tune = string; + _next = _tune; + } + + return next_note(frequency, duration, silence); +} + unsigned Tunes::note_to_frequency(unsigned note) { // compute the frequency (Hz) diff --git a/src/lib/tunes/tunes.h b/src/lib/tunes/tunes.h index 80ac9a80a0..0e40d44f60 100644 --- a/src/lib/tunes/tunes.h +++ b/src/lib/tunes/tunes.h @@ -54,6 +54,7 @@ public: Tunes(unsigned tempo, unsigned octave, unsigned note_length, NoteMode mode); ~Tunes() = default; int parse_cmd(tune_control_s &tune_control, unsigned &frequency, unsigned &duration, unsigned &silence); + int parse_string(const char *string, unsigned &frequency, unsigned &duration, unsigned &silence); private: static const unsigned _tune_max = 1024 * 8; // be reasonable about user tunes