ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:54:45 2017 +0800
Revision:
47:9e361da97763
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 47:9e361da97763 1 // Copyright 2017 Baidu Inc. All Rights Reserved.
TMBOY 47:9e361da97763 2 // Author: Chen Xihao (chenxihao@baidu.com)
TMBOY 47:9e361da97763 3 //
TMBOY 47:9e361da97763 4 // Description: Base class of Media
TMBOY 47:9e361da97763 5
TMBOY 47:9e361da97763 6 #ifndef BAIDU_TINYDU_IOT_OS_SRC_MEDIA_BASE_BAIDU_MEDIA_BASE_H
TMBOY 47:9e361da97763 7 #define BAIDU_TINYDU_IOT_OS_SRC_MEDIA_BASE_BAIDU_MEDIA_BASE_H
TMBOY 47:9e361da97763 8
TMBOY 47:9e361da97763 9 #include "mbed.h"
TMBOY 47:9e361da97763 10 #include "baidu_recorder.h"
TMBOY 47:9e361da97763 11 #include "baidu_media_type.h"
TMBOY 47:9e361da97763 12
TMBOY 47:9e361da97763 13 namespace duer {
TMBOY 47:9e361da97763 14
TMBOY 47:9e361da97763 15 class MediaBase : public Recorder::IPlugin {
TMBOY 47:9e361da97763 16 public:
TMBOY 47:9e361da97763 17 int start_play(MediaType type);
TMBOY 47:9e361da97763 18
TMBOY 47:9e361da97763 19 int write(const void* data, size_t size);
TMBOY 47:9e361da97763 20
TMBOY 47:9e361da97763 21 int regulate_voice(unsigned char vol);
TMBOY 47:9e361da97763 22
TMBOY 47:9e361da97763 23 int pause_play();
TMBOY 47:9e361da97763 24
TMBOY 47:9e361da97763 25 int stop_play();
TMBOY 47:9e361da97763 26
TMBOY 47:9e361da97763 27 virtual int start_record();
TMBOY 47:9e361da97763 28
TMBOY 47:9e361da97763 29 virtual size_t read(void* data, size_t size);
TMBOY 47:9e361da97763 30
TMBOY 47:9e361da97763 31 virtual int stop_record();
TMBOY 47:9e361da97763 32
TMBOY 47:9e361da97763 33 protected:
TMBOY 47:9e361da97763 34 virtual int on_start_play(MediaType type) = 0;
TMBOY 47:9e361da97763 35
TMBOY 47:9e361da97763 36 virtual int on_write(const void* data, size_t size) = 0;
TMBOY 47:9e361da97763 37
TMBOY 47:9e361da97763 38 virtual int on_voice(unsigned char vol) = 0;
TMBOY 47:9e361da97763 39
TMBOY 47:9e361da97763 40 virtual int on_pause_play() = 0;
TMBOY 47:9e361da97763 41
TMBOY 47:9e361da97763 42 virtual int on_stop_play() = 0;
TMBOY 47:9e361da97763 43
TMBOY 47:9e361da97763 44 virtual int on_start_record() = 0;
TMBOY 47:9e361da97763 45
TMBOY 47:9e361da97763 46 virtual size_t on_read(void* data, size_t size) = 0;
TMBOY 47:9e361da97763 47
TMBOY 47:9e361da97763 48 virtual int on_stop_record() = 0;
TMBOY 47:9e361da97763 49
TMBOY 47:9e361da97763 50 private:
TMBOY 47:9e361da97763 51 static rtos::Mutex _s_lock;
TMBOY 47:9e361da97763 52 static int _s_status;
TMBOY 47:9e361da97763 53 };
TMBOY 47:9e361da97763 54
TMBOY 47:9e361da97763 55 } // namespace duer
TMBOY 47:9e361da97763 56
TMBOY 47:9e361da97763 57 #endif // BAIDU_TINYDU_IOT_OS_SRC_MEDIA_BASE_BAIDU_MEDIA_BASE_H