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 #include "ISD1820P.h"
bridadan 1:19584eb1fdf7 2
bridadan 1:19584eb1fdf7 3 ISD1820P::ISD1820P(PinName recordPin, PinName playPin)
bridadan 1:19584eb1fdf7 4 : maxSoundTime(defaultMaxSoundTime), record(recordPin, 0), play(playPin, 0) {
bridadan 1:19584eb1fdf7 5 // Empty
bridadan 1:19584eb1fdf7 6 }
bridadan 1:19584eb1fdf7 7
bridadan 1:19584eb1fdf7 8 void ISD1820P::stopRecording() {
bridadan 1:19584eb1fdf7 9 record = 0;
bridadan 1:19584eb1fdf7 10 }
bridadan 1:19584eb1fdf7 11
bridadan 1:19584eb1fdf7 12 void ISD1820P::startRecording(float time) {
bridadan 1:19584eb1fdf7 13 if (!record) {
bridadan 1:19584eb1fdf7 14 if (time > maxSoundTime) {
bridadan 1:19584eb1fdf7 15 time = maxSoundTime;
bridadan 1:19584eb1fdf7 16 }
bridadan 1:19584eb1fdf7 17
bridadan 1:19584eb1fdf7 18 record = 1;
bridadan 1:19584eb1fdf7 19 recordTimeout.attach(this, &ISD1820P::stopRecording, time);
bridadan 1:19584eb1fdf7 20 }
bridadan 1:19584eb1fdf7 21 }
bridadan 1:19584eb1fdf7 22
bridadan 1:19584eb1fdf7 23 void ISD1820P::startRecordingMaxTime() {
bridadan 1:19584eb1fdf7 24 startRecording(maxSoundTime);
bridadan 1:19584eb1fdf7 25 }
bridadan 1:19584eb1fdf7 26
bridadan 1:19584eb1fdf7 27 void ISD1820P::stopPlaying() {
bridadan 1:19584eb1fdf7 28 play = 0;
bridadan 1:19584eb1fdf7 29 }
bridadan 1:19584eb1fdf7 30
bridadan 1:19584eb1fdf7 31 void ISD1820P::startPlaying(float time) {
bridadan 1:19584eb1fdf7 32 if (!play && !record) {
bridadan 1:19584eb1fdf7 33 if (time > maxSoundTime) {
bridadan 1:19584eb1fdf7 34 time = maxSoundTime;
bridadan 1:19584eb1fdf7 35 }
bridadan 1:19584eb1fdf7 36
bridadan 1:19584eb1fdf7 37 play = 1;
bridadan 1:19584eb1fdf7 38 playTimeout.attach(this, &ISD1820P::stopPlaying, time);
bridadan 1:19584eb1fdf7 39 }
bridadan 1:19584eb1fdf7 40 }
bridadan 1:19584eb1fdf7 41
bridadan 1:19584eb1fdf7 42 void ISD1820P::startPlayingMaxTime() {
bridadan 1:19584eb1fdf7 43 startPlaying(maxSoundTime);
bridadan 1:19584eb1fdf7 44 }
bridadan 1:19584eb1fdf7 45