Library for MP3 module. http://www.aitendo.com/product/17913

Dependents:   nekosensya

Committer:
abanum
Date:
Mon Jul 29 05:41:53 2019 +0000
Revision:
0:508d095ec4f1
first release.; It is in the process of creation.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abanum 0:508d095ec4f1 1 /* mbed WT20003M03 Library
abanum 0:508d095ec4f1 2 *
abanum 0:508d095ec4f1 3 * Copyright (c) 2007-2010 sford, cstyles
abanum 0:508d095ec4f1 4 *
abanum 0:508d095ec4f1 5 * Permission is hereby granted, free of charge, to any person obtaining a copy
abanum 0:508d095ec4f1 6 * of this software and associated documentation files (the "Software"), to deal
abanum 0:508d095ec4f1 7 * in the Software without restriction, including without limitation the rights
abanum 0:508d095ec4f1 8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
abanum 0:508d095ec4f1 9 * copies of the Software, and to permit persons to whom the Software is
abanum 0:508d095ec4f1 10 * furnished to do so, subject to the following conditions:
abanum 0:508d095ec4f1 11 *
abanum 0:508d095ec4f1 12 * The above copyright notice and this permission notice shall be included in
abanum 0:508d095ec4f1 13 * all copies or substantial portions of the Software.
abanum 0:508d095ec4f1 14 *
abanum 0:508d095ec4f1 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
abanum 0:508d095ec4f1 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
abanum 0:508d095ec4f1 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
abanum 0:508d095ec4f1 18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
abanum 0:508d095ec4f1 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
abanum 0:508d095ec4f1 20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
abanum 0:508d095ec4f1 21 * THE SOFTWARE.
abanum 0:508d095ec4f1 22 */
abanum 0:508d095ec4f1 23
abanum 0:508d095ec4f1 24 #include "WT20003M03.h"
abanum 0:508d095ec4f1 25 #include "mbed.h"
abanum 0:508d095ec4f1 26
abanum 0:508d095ec4f1 27 WT20003M03::WT20003M03(PinName txpin,PinName rxpin) : _audio(txpin,rxpin) {
abanum 0:508d095ec4f1 28 wait_ms(10);
abanum 0:508d095ec4f1 29 }
abanum 0:508d095ec4f1 30
abanum 0:508d095ec4f1 31 void WT20003M03::Play(unsigned int address) {
abanum 0:508d095ec4f1 32 _audio.putc(0x7E);
abanum 0:508d095ec4f1 33 _audio.putc(0x05);
abanum 0:508d095ec4f1 34 _audio.putc(0xA2);
abanum 0:508d095ec4f1 35 _audio.putc((address >> 8) & 0xFF);
abanum 0:508d095ec4f1 36 _audio.putc( address & 0xFF);
abanum 0:508d095ec4f1 37 _audio.putc((0x05 + 0xA2 + ((address >> 8) & 0xFF) + (address & 0xFF)) & 0xFF);
abanum 0:508d095ec4f1 38 _audio.putc(0xEF);
abanum 0:508d095ec4f1 39 wait_ms(10);
abanum 0:508d095ec4f1 40 }
abanum 0:508d095ec4f1 41
abanum 0:508d095ec4f1 42 void WT20003M03::Play() {
abanum 0:508d095ec4f1 43 _audio.putc(0x7E);
abanum 0:508d095ec4f1 44 _audio.putc(0x03);
abanum 0:508d095ec4f1 45 _audio.putc(0xAA);
abanum 0:508d095ec4f1 46 _audio.putc(0xAD);
abanum 0:508d095ec4f1 47 _audio.putc(0xEF);
abanum 0:508d095ec4f1 48 wait_ms(10);
abanum 0:508d095ec4f1 49 }
abanum 0:508d095ec4f1 50
abanum 0:508d095ec4f1 51 void WT20003M03::volume(unsigned int volume) {
abanum 0:508d095ec4f1 52 _audio.putc(0x7E);
abanum 0:508d095ec4f1 53 _audio.putc(0x04);
abanum 0:508d095ec4f1 54 _audio.putc(0xAE);
abanum 0:508d095ec4f1 55 _audio.putc( volume & 0xff);
abanum 0:508d095ec4f1 56 _audio.putc((0x04 + 0xAE + (volume & 0xFF)) & 0xFF);
abanum 0:508d095ec4f1 57 _audio.putc(0xEF);
abanum 0:508d095ec4f1 58 wait_ms(10);
abanum 0:508d095ec4f1 59 }
abanum 0:508d095ec4f1 60
abanum 0:508d095ec4f1 61
abanum 0:508d095ec4f1 62 void WT20003M03::Pause() {
abanum 0:508d095ec4f1 63 Play() ;
abanum 0:508d095ec4f1 64 }
abanum 0:508d095ec4f1 65
abanum 0:508d095ec4f1 66 void WT20003M03::Stop() {
abanum 0:508d095ec4f1 67 _audio.putc(0x7E);
abanum 0:508d095ec4f1 68 _audio.putc(0x03);
abanum 0:508d095ec4f1 69 _audio.putc(0xAB);
abanum 0:508d095ec4f1 70 _audio.putc(0xAE);
abanum 0:508d095ec4f1 71 _audio.putc(0xEF);
abanum 0:508d095ec4f1 72 wait_ms(10);
abanum 0:508d095ec4f1 73 }
abanum 0:508d095ec4f1 74
abanum 0:508d095ec4f1 75 void WT20003M03::Next() {
abanum 0:508d095ec4f1 76 _audio.putc(0x7E);
abanum 0:508d095ec4f1 77 _audio.putc(0x03);
abanum 0:508d095ec4f1 78 _audio.putc(0xAC);
abanum 0:508d095ec4f1 79 _audio.putc(0xAF);
abanum 0:508d095ec4f1 80 _audio.putc(0xEF);
abanum 0:508d095ec4f1 81 wait_ms(10);
abanum 0:508d095ec4f1 82 }
abanum 0:508d095ec4f1 83
abanum 0:508d095ec4f1 84 void WT20003M03::Previous() {
abanum 0:508d095ec4f1 85 _audio.putc(0x7E);
abanum 0:508d095ec4f1 86 _audio.putc(0x03);
abanum 0:508d095ec4f1 87 _audio.putc(0xAD);
abanum 0:508d095ec4f1 88 _audio.putc(0xB0);
abanum 0:508d095ec4f1 89 _audio.putc(0xEF);
abanum 0:508d095ec4f1 90 wait_ms(10);
abanum 0:508d095ec4f1 91 }
abanum 0:508d095ec4f1 92
abanum 0:508d095ec4f1 93 char WT20003M03::ReadVolume() {
abanum 0:508d095ec4f1 94 _audio.putc(0x7E);
abanum 0:508d095ec4f1 95 _audio.putc(0x03);
abanum 0:508d095ec4f1 96 _audio.putc(0xC1);
abanum 0:508d095ec4f1 97 _audio.putc(0xC4);
abanum 0:508d095ec4f1 98 _audio.putc(0xEF);
abanum 0:508d095ec4f1 99 _audio.getc();
abanum 0:508d095ec4f1 100 return _audio.getc();
abanum 0:508d095ec4f1 101 }
abanum 0:508d095ec4f1 102 char WT20003M03::ReadState() {
abanum 0:508d095ec4f1 103 _audio.putc(0x7E);
abanum 0:508d095ec4f1 104 _audio.putc(0x03);
abanum 0:508d095ec4f1 105 _audio.putc(0xC2);
abanum 0:508d095ec4f1 106 _audio.putc(0xC5);
abanum 0:508d095ec4f1 107 _audio.putc(0xEF);
abanum 0:508d095ec4f1 108 return _audio.getc();
abanum 0:508d095ec4f1 109 }