YARP
Yet Another Robot Platform
fakeSpeaker.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
3  * All rights reserved.
4  *
5  * This software may be modified and distributed under the terms of the
6  * BSD-3-Clause license. See the accompanying LICENSE file for details.
7  */
8 
9 #include <string>
10 #include <yarp/dev/DeviceDriver.h>
11 #include <yarp/os/PeriodicThread.h>
15 #include <yarp/sig/Sound.h>
16 #include <yarp/sig/SoundFile.h>
17 
18 
19 #define DEFAULT_PERIOD 0.01 //s
20 
25 class fakeSpeaker :
29 {
30 public:
31  fakeSpeaker();
32  fakeSpeaker(const fakeSpeaker&) = delete;
33  fakeSpeaker(fakeSpeaker&&) = delete;
34  fakeSpeaker& operator=(const fakeSpeaker&) = delete;
36 
37  ~fakeSpeaker() override;
38 
39  // Device Driver interface
40  bool open(yarp::os::Searchable &config) override;
41  bool close() override;
42 
43  virtual bool startPlayback() override;
44  virtual bool stopPlayback() override;
45  virtual bool renderSound(const yarp::sig::Sound& sound) override;
46  virtual bool getPlaybackAudioBufferMaxSize(yarp::dev::AudioBufferSize& size) override;
48  virtual bool resetPlaybackAudioBuffer() override;
49 
50 private:
51  bool threadInit() override;
52  void run() override;
53 
54  bool m_isPlaying = false;
55 
56  size_t m_cfg_numSamples = 0;
57  size_t m_cfg_numChannels = 0;
58  size_t m_cfg_frequency = 0;
59  size_t m_cfg_bytesPerSample = 0;
60 
61  yarp::dev::CircularAudioBuffer_16t* m_outputBuffer = nullptr;
62  bool m_renderSoundImmediate = false;
63 };
fakeSpeaker : fake device implementing the IAudioRender device interface to play sound
Definition: fakeSpeaker.h:29
fakeSpeaker & operator=(fakeSpeaker &&)=delete
virtual bool getPlaybackAudioBufferMaxSize(yarp::dev::AudioBufferSize &size) override
virtual bool stopPlayback() override
Stop the playback.
Definition: fakeSpeaker.cpp:92
virtual bool renderSound(const yarp::sig::Sound &sound) override
Render a sound using a device (i.e.
fakeSpeaker(const fakeSpeaker &)=delete
fakeSpeaker & operator=(const fakeSpeaker &)=delete
~fakeSpeaker() override
Definition: fakeSpeaker.cpp:37
bool close() override
Close the DeviceDriver.
Definition: fakeSpeaker.cpp:70
virtual bool resetPlaybackAudioBuffer() override
virtual bool startPlayback() override
Start the playback.
Definition: fakeSpeaker.cpp:87
fakeSpeaker(fakeSpeaker &&)=delete
virtual bool getPlaybackAudioBufferCurrentSize(yarp::dev::AudioBufferSize &size) override
bool open(yarp::os::Searchable &config) override
Open the DeviceDriver.
Definition: fakeSpeaker.cpp:42
Interface implemented by all device drivers.
Definition: DeviceDriver.h:38
An abstraction for a periodic thread.
A base class for nested structures that can be searched.
Definition: Searchable.h:69
Class for storing sounds.
Definition: Sound.h:28