Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Seeed_Grove_Recorder_Example
GroveRecorder.cpp@0:2d4b0841e58c, 2015-04-30 (annotated)
- Committer:
- bridadan
- Date:
- Thu Apr 30 19:49:15 2015 +0000
- Revision:
- 0:2d4b0841e58c
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New 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 |
Grove Recorder