Sound recorder and playback device

Dependents:   Seeed_Grove_Recorder_Example

Committer:
bridadan
Date:
Thu Apr 30 19:53:56 2015 +0000
Revision:
1:19584eb1fdf7
Renaming library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bridadan 1:19584eb1fdf7 1 #ifndef _ISD1820P_H_
bridadan 1:19584eb1fdf7 2 #define _ISD1820P_H_
bridadan 1:19584eb1fdf7 3
bridadan 1:19584eb1fdf7 4 #include "mbed.h"
bridadan 1:19584eb1fdf7 5
bridadan 1:19584eb1fdf7 6 /** ISD1820P class.
bridadan 1:19584eb1fdf7 7 * Used to control recording and playblack of sounds using this component: http://www.seeedstudio.com/depot/Grove-Recorder-p-1825.html
bridadan 1:19584eb1fdf7 8 */
bridadan 1:19584eb1fdf7 9 class ISD1820P {
bridadan 1:19584eb1fdf7 10 public:
bridadan 1:19584eb1fdf7 11 /**
bridadan 1:19584eb1fdf7 12 * Constructor. Initializes the maximum record/playback sound to defaultMaxSoundTime.
bridadan 1:19584eb1fdf7 13 *
bridadan 1:19584eb1fdf7 14 * @param recordPin The pin that controls recording.
bridadan 1:19584eb1fdf7 15 * @param playPin The pin that controls playback.
bridadan 1:19584eb1fdf7 16 */
bridadan 1:19584eb1fdf7 17 ISD1820P(PinName recordPin, PinName playPin);
bridadan 1:19584eb1fdf7 18
bridadan 1:19584eb1fdf7 19 /**
bridadan 1:19584eb1fdf7 20 * Starts a new recording.
bridadan 1:19584eb1fdf7 21 *
bridadan 1:19584eb1fdf7 22 * @param time Controls how long to record.
bridadan 1:19584eb1fdf7 23 */
bridadan 1:19584eb1fdf7 24 void startRecording(float time);
bridadan 1:19584eb1fdf7 25
bridadan 1:19584eb1fdf7 26 /**
bridadan 1:19584eb1fdf7 27 * Starts a new recording with a length of the maximum time.
bridadan 1:19584eb1fdf7 28 */
bridadan 1:19584eb1fdf7 29 void startRecordingMaxTime();
bridadan 1:19584eb1fdf7 30
bridadan 1:19584eb1fdf7 31 /**
bridadan 1:19584eb1fdf7 32 * Stops the current recording.
bridadan 1:19584eb1fdf7 33 */
bridadan 1:19584eb1fdf7 34 void stopRecording();
bridadan 1:19584eb1fdf7 35
bridadan 1:19584eb1fdf7 36 /**
bridadan 1:19584eb1fdf7 37 * Starts playback of the previous recording.
bridadan 1:19584eb1fdf7 38 *
bridadan 1:19584eb1fdf7 39 * @param time Controls how long to play the last recording.
bridadan 1:19584eb1fdf7 40 */
bridadan 1:19584eb1fdf7 41 void startPlaying(float time);
bridadan 1:19584eb1fdf7 42
bridadan 1:19584eb1fdf7 43
bridadan 1:19584eb1fdf7 44 /**
bridadan 1:19584eb1fdf7 45 * Starts playback of the previous recording up to the maximum time.
bridadan 1:19584eb1fdf7 46 */
bridadan 1:19584eb1fdf7 47 void startPlayingMaxTime();
bridadan 1:19584eb1fdf7 48
bridadan 1:19584eb1fdf7 49 /**
bridadan 1:19584eb1fdf7 50 * Stops the current playback
bridadan 1:19584eb1fdf7 51 */
bridadan 1:19584eb1fdf7 52 void stopPlaying();
bridadan 1:19584eb1fdf7 53
bridadan 1:19584eb1fdf7 54 /**
bridadan 1:19584eb1fdf7 55 * Set the default max recording and playback time. The default is 10 seconds.
bridadan 1:19584eb1fdf7 56 *
bridadan 1:19584eb1fdf7 57 * @param maxTime The maximum time in seconds to record and playback sounds.
bridadan 1:19584eb1fdf7 58 */
bridadan 1:19584eb1fdf7 59 void setMaxSoundTime(float maxTime);
bridadan 1:19584eb1fdf7 60
bridadan 1:19584eb1fdf7 61
bridadan 1:19584eb1fdf7 62 private:
bridadan 1:19584eb1fdf7 63 /**
bridadan 1:19584eb1fdf7 64 * Default sound recording/playback is 10 seconds
bridadan 1:19584eb1fdf7 65 */
bridadan 1:19584eb1fdf7 66 const static float defaultMaxSoundTime = 10.0f;
bridadan 1:19584eb1fdf7 67
bridadan 1:19584eb1fdf7 68 float maxSoundTime;
bridadan 1:19584eb1fdf7 69
bridadan 1:19584eb1fdf7 70 DigitalOut record;
bridadan 1:19584eb1fdf7 71 DigitalOut play;
bridadan 1:19584eb1fdf7 72
bridadan 1:19584eb1fdf7 73 Timeout recordTimeout;
bridadan 1:19584eb1fdf7 74 Timeout playTimeout;
bridadan 1:19584eb1fdf7 75 };
bridadan 1:19584eb1fdf7 76
bridadan 1:19584eb1fdf7 77 #endif