test public

Dependencies:   HttpServer_snapshot_mbed-os

Committer:
anhtran
Date:
Fri Oct 18 03:09:43 2019 +0000
Revision:
0:e9fd5575b10e
abc

Who changed what in which revision?

UserRevisionLine numberNew contents of line
anhtran 0:e9fd5575b10e 1 /* mbed EasyPlayback Library
anhtran 0:e9fd5575b10e 2 * Copyright (C) 2017 dkato
anhtran 0:e9fd5575b10e 3 *
anhtran 0:e9fd5575b10e 4 * Licensed under the Apache License, Version 2.0 (the "License");
anhtran 0:e9fd5575b10e 5 * you may not use this file except in compliance with the License.
anhtran 0:e9fd5575b10e 6 * You may obtain a copy of the License at
anhtran 0:e9fd5575b10e 7 *
anhtran 0:e9fd5575b10e 8 * http://www.apache.org/licenses/LICENSE-2.0
anhtran 0:e9fd5575b10e 9 *
anhtran 0:e9fd5575b10e 10 * Unless required by applicable law or agreed to in writing, software
anhtran 0:e9fd5575b10e 11 * distributed under the License is distributed on an "AS IS" BASIS,
anhtran 0:e9fd5575b10e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
anhtran 0:e9fd5575b10e 13 * See the License for the specific language governing permissions and
anhtran 0:e9fd5575b10e 14 * limitations under the License.
anhtran 0:e9fd5575b10e 15 */
anhtran 0:e9fd5575b10e 16
anhtran 0:e9fd5575b10e 17 #ifndef __EASY_PLAYBACK_H__
anhtran 0:e9fd5575b10e 18 #define __EASY_PLAYBACK_H__
anhtran 0:e9fd5575b10e 19
anhtran 0:e9fd5575b10e 20 #include <string>
anhtran 0:e9fd5575b10e 21 #include <map>
anhtran 0:e9fd5575b10e 22 #include "EasyDecoder.h"
anhtran 0:e9fd5575b10e 23 #include "AUDIO_GRBoard.h"
anhtran 0:e9fd5575b10e 24 #include "PwmOutSpeaker.h"
anhtran 0:e9fd5575b10e 25 #include "SPDIF_GRBoard.h"
anhtran 0:e9fd5575b10e 26 #include "SoundlessSpeaker.h"
anhtran 0:e9fd5575b10e 27 #include "NullSpeaker.h"
anhtran 0:e9fd5575b10e 28 #include "FATFileSystem.h"
anhtran 0:e9fd5575b10e 29
anhtran 0:e9fd5575b10e 30 class EasyPlayback
anhtran 0:e9fd5575b10e 31 {
anhtran 0:e9fd5575b10e 32 public:
anhtran 0:e9fd5575b10e 33 typedef enum {
anhtran 0:e9fd5575b10e 34 AUDIO_TPYE_SSIF,
anhtran 0:e9fd5575b10e 35 AUDIO_TPYE_PWM,
anhtran 0:e9fd5575b10e 36 AUDIO_TPYE_SPDIF,
anhtran 0:e9fd5575b10e 37 AUDIO_TPYE_SOUNDLESS,
anhtran 0:e9fd5575b10e 38 AUDIO_TPYE_NULL
anhtran 0:e9fd5575b10e 39 } audio_type_t;
anhtran 0:e9fd5575b10e 40
anhtran 0:e9fd5575b10e 41 EasyPlayback(audio_type_t type = AUDIO_TPYE_SSIF, PinName pin1 = NC, PinName pin2 = NC);
anhtran 0:e9fd5575b10e 42 ~EasyPlayback();
anhtran 0:e9fd5575b10e 43 bool get_tag(const char* filename, char* p_title, char* p_artist, char* p_album, uint16_t tag_size);
anhtran 0:e9fd5575b10e 44 bool play(const char* filename);
anhtran 0:e9fd5575b10e 45 bool is_paused(void);
anhtran 0:e9fd5575b10e 46 void pause(void);
anhtran 0:e9fd5575b10e 47 void pause(bool type);
anhtran 0:e9fd5575b10e 48 void skip(void);
anhtran 0:e9fd5575b10e 49 bool outputVolume(float VolumeOut);
anhtran 0:e9fd5575b10e 50
anhtran 0:e9fd5575b10e 51 template<typename T>
anhtran 0:e9fd5575b10e 52 void add_decoder(const string& extension) {
anhtran 0:e9fd5575b10e 53 m_lpDecoders[extension] = &T::inst;
anhtran 0:e9fd5575b10e 54 }
anhtran 0:e9fd5575b10e 55
anhtran 0:e9fd5575b10e 56 private:
anhtran 0:e9fd5575b10e 57 AUDIO_GRBoard * _audio_ssif;
anhtran 0:e9fd5575b10e 58 PwmOutSpeaker * _audio_pwm;
anhtran 0:e9fd5575b10e 59 #if (R_BSP_SPDIF_ENABLE == 1)
anhtran 0:e9fd5575b10e 60 SPDIF_GRBoard * _audio_spdif;
anhtran 0:e9fd5575b10e 61 #endif
anhtran 0:e9fd5575b10e 62 SoundlessSpeaker * _audio_soundless;
anhtran 0:e9fd5575b10e 63 NullSpeaker * _audio_null;
anhtran 0:e9fd5575b10e 64 AUDIO_RBSP * _audio;
anhtran 0:e9fd5575b10e 65 int _buff_index;
anhtran 0:e9fd5575b10e 66 audio_type_t _type;
anhtran 0:e9fd5575b10e 67 bool _skip;
anhtran 0:e9fd5575b10e 68 bool _pause;
anhtran 0:e9fd5575b10e 69 bool _init_end;
anhtran 0:e9fd5575b10e 70 uint32_t _audio_write_buff_num;
anhtran 0:e9fd5575b10e 71 uint32_t _audio_buff_size;
anhtran 0:e9fd5575b10e 72 uint8_t *_heap_buf;
anhtran 0:e9fd5575b10e 73 uint8_t *_audio_buf;
anhtran 0:e9fd5575b10e 74 std::map<std::string, EasyDecoder*(*)()> m_lpDecoders;
anhtran 0:e9fd5575b10e 75
anhtran 0:e9fd5575b10e 76 EasyDecoder * create_decoer_class(const char* filename);
anhtran 0:e9fd5575b10e 77 };
anhtran 0:e9fd5575b10e 78
anhtran 0:e9fd5575b10e 79 #endif