test public
Dependencies: HttpServer_snapshot_mbed-os
mbed-gr-libs/EasyPlayback/EasyPlayback.h@0:e9fd5575b10e, 2019-10-18 (annotated)
- Committer:
- anhtran
- Date:
- Fri Oct 18 03:09:43 2019 +0000
- Revision:
- 0:e9fd5575b10e
abc
Who changed what in which revision?
User | Revision | Line number | New 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 |