Brian Daniels / ISD1820P

Dependents:   Seeed_Grove_Recorder_Example

Committer:
bridadan
Date:
Thu Apr 30 19:49:15 2015 +0000
Revision:
0:2d4b0841e58c
Initial commit

Who changed what in which revision?

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