From e9ea7ab698bd878ee444782f61b935aa30a7ba8e Mon Sep 17 00:00:00 2001
From: Simone Guscetti <simone@px4.io>
Date: Fri, 17 Feb 2017 16:38:55 +0100
Subject: [PATCH] lib tunes: clean up

---
 src/lib/tunes/tunes.cpp |  4 +-
 src/lib/tunes/tunes.h   | 81 ++++++++++++++++++++++++++---------------
 2 files changed, 52 insertions(+), 33 deletions(-)

diff --git a/src/lib/tunes/tunes.cpp b/src/lib/tunes/tunes.cpp
index 33cc000518..fd69a13c03 100644
--- a/src/lib/tunes/tunes.cpp
+++ b/src/lib/tunes/tunes.cpp
@@ -254,7 +254,7 @@ unsigned Tunes::next_dots()
 
 int Tunes::next_note(unsigned &frequency, unsigned &duration, unsigned &silence)
 {
-	// make sure we still have a tune - may be removed by the write / ioctl handler
+	// make sure we still have a tune
 	if ((_next == nullptr) || (_tune == nullptr)) {
 		return TUNE_ERROR;
 	}
@@ -263,7 +263,6 @@ int Tunes::next_note(unsigned &frequency, unsigned &duration, unsigned &silence)
 	unsigned note = 0;
 	unsigned note_length = _note_length;
 
-	// NOTE: is this while loop necessary?
 	while (note == 0) {
 		// we always need at least one character from the string
 		int c = next_char();
@@ -441,7 +440,6 @@ tune_end:
 		return TUNE_CONTINUE;
 
 	} else {
-		_default_tune_number = 0;
 		return TUNE_STOP;
 	}
 }
diff --git a/src/lib/tunes/tunes.h b/src/lib/tunes/tunes.h
index 0e40d44f60..cfe8c28094 100644
--- a/src/lib/tunes/tunes.h
+++ b/src/lib/tunes/tunes.h
@@ -53,45 +53,66 @@ public:
 	Tunes();
 	Tunes(unsigned tempo, unsigned octave, unsigned note_length, NoteMode mode);
 	~Tunes() = default;
+
+	/**
+	 * parse a tune_control_s in frequency(Hz), duration(us) and silence(us).
+	 *
+	 * @param  tune_control struct containig the uORB message
+	 * @param  frequency    return frequency value (Hz)
+	 * @param  duration     return duration of the tone (us)
+	 * @param  silence      return silance duration (us)
+	 * @return              -1 for error, 0 for play one tone and 1 for continue a sequence
+	 */
 	int parse_cmd(tune_control_s &tune_control, unsigned &frequency, unsigned &duration, unsigned &silence);
+
+	/**
+	 * parse a tune string, formatted with the syntax of the Microsoft GWBasic/QBasic, in frequency(Hz),
+	 * duration(us) and silence(us).
+	 *
+	 * @param  string    tune input string
+	 * @param  frequency return frequency value (Hz)
+	 * @param  duration  return duration of the tone (us)
+	 * @param  silence   return silance duration (us)
+	 * @return           -1 for error, 0 for play one tone and 1 for continue a sequence
+	 */
 	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
-	static const char		 *_default_tunes[TONE_NUMBER_OF_TUNES];
-	static const char		 *_tune_names[TONE_NUMBER_OF_TUNES];
-	static const uint8_t	_note_tab[];
-
-	unsigned		_default_tune_number; // number of currently playing default tune (0 for none)
-
-	const char		*_user_tune;
-
-	const char		*_tune = nullptr;		// current tune string
-	const char		*_next = nullptr;		// next note in the string
-
-	unsigned		_tempo;
-	unsigned		_note_length;
-	NoteMode 		_note_mode;
-	unsigned		_octave;
-	unsigned		_default_tempo = 120;
-	unsigned		_default_note_length = 4;
-	NoteMode		_default_mode = NoteMode::MODE_NORMAL;
-	unsigned		_default_octave = 4;
-	// unsigned		_silence_length; // if nonzero, silence before next note
-	bool			_repeat;	// if true, tune restarts at end
-	int				_cbrk;	//if true, no audio output
+	static const char *_default_tunes[TONE_NUMBER_OF_TUNES];
+	static const uint8_t _note_tab[];
+	bool _repeat;	// if true, tune restarts at end
+
+	const char *_tune = nullptr; // current tune string
+	const char *_next = nullptr; // next note in the string
+
+	unsigned _tempo;
+	unsigned _note_length;
+	NoteMode _note_mode;
+	unsigned _octave;
+
+	unsigned _default_tempo = 120;
+	unsigned _default_note_length = 4;
+	NoteMode _default_mode = NoteMode::MODE_NORMAL;
+	unsigned _default_octave = 4;
 
 	/**
 	 * Convert note to frequency
-	 * @param  note
-	 * @return      frequency
+	 *
+	 * @param  note unsigned value of the semitone from C
+	 * @return      frequency (Hz)
 	 */
 	uint32_t note_to_frequency(unsigned note);
 
-	// Calculate the duration in microseconds of play and silence for a
-	// note given the current tempo, length and mode and the number of
-	// dots following in the play string.
-	//
+	/**
+	 * Calculate the duration in microseconds of play and silence for a
+	 * note given the current tempo, length and mode and the number of
+	 * dots following in the play string.
+	 *
+	 * @param  silence     return silence duration (us)
+	 * @param  note_length note length
+	 * @param  dots        extention of the note length
+	 * @return             duration of the note (us)
+	 */
 	unsigned note_duration(unsigned &silence, unsigned note_length, unsigned dots);
 
 	// Calculate the duration in microseconds of a rest corresponding to
@@ -99,7 +120,7 @@ private:
 	//
 	unsigned rest_duration(unsigned rest_length, unsigned dots);
 
-	// Parse the next note out of the string and play it
+	// Parse the next note out of the string
 	//
 	int next_note(unsigned &frequency, unsigned &duration, unsigned &silence);
 
-- 
GitLab