Babel
Epitech's C++ VoIP project
IAudioManager.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2021
3 ** IAudioManager.hpp
4 ** File description:
5 ** Abstraction class of a Audio library
6 */
7 
8 #pragma once
9 
10 #include <vector>
11 #include <cstdint>
12 
13 namespace Babel {
15  class IAudioManager {
16  public:
18  virtual int32_t getInputChannelsNumber() const = 0;
19 
21  virtual int32_t getOutputChannelsNumber() const = 0;
22 
24  virtual void setOutputChannelsNumber(int32_t) = 0;
25 
27  virtual void setInputChannelsNumber(int32_t) = 0;
28 
30  virtual void setSampleRate(int32_t) = 0;
31 
33  virtual int32_t getSampleRate() const = 0;
34 
36  virtual int32_t getRecordTime() const = 0;
37 
39  virtual void setRecordTime(int32_t) = 0;
40 
42  virtual int32_t getFramesPerBuffer() const = 0;
43 
45  virtual void setFramesPerBuffer(int32_t) = 0;
46 
48  virtual void openStream() = 0;
49 
51  virtual void startStream() = 0;
52 
54  virtual void stopStream() = 0;
55 
57  virtual void closeStream() = 0;
58 
60  virtual std::vector<int16_t> readStream() = 0;
61 
63  virtual void writeStream(std::vector<int16_t> &) = 0;
64 
66  virtual ~IAudioManager() = default;
67  };
68 }
Babel::IAudioManager::stopStream
virtual void stopStream()=0
Stop a stream.
Babel::IAudioManager::setInputChannelsNumber
virtual void setInputChannelsNumber(int32_t)=0
set the number of channels of Output for future streams
Babel::IAudioManager::getSampleRate
virtual int32_t getSampleRate() const =0
get the current samplerate
Babel::IAudioManager::getOutputChannelsNumber
virtual int32_t getOutputChannelsNumber() const =0
get the number of channels of Output Device for future streams
Babel::IAudioManager::setFramesPerBuffer
virtual void setFramesPerBuffer(int32_t)=0
get the frame per buffer for readStreams
Babel::IAudioManager::setSampleRate
virtual void setSampleRate(int32_t)=0
set the samplerate for future streams
Babel
Definition: IAudioManager.hpp:13
Babel::IAudioManager::readStream
virtual std::vector< int16_t > readStream()=0
Read an array of int16_t from current stream.
Babel::IAudioManager::openStream
virtual void openStream()=0
Open stream to input and output sounds.
Babel::IAudioManager::getInputChannelsNumber
virtual int32_t getInputChannelsNumber() const =0
get the number of channels of Input Device for future streams
Babel::IAudioManager::~IAudioManager
virtual ~IAudioManager()=default
virtual destructor
Babel::IAudioManager
Audio Module Interface.
Definition: IAudioManager.hpp:15
Babel::IAudioManager::getFramesPerBuffer
virtual int32_t getFramesPerBuffer() const =0
get the frame per buffer value for readStreams
Babel::IAudioManager::setOutputChannelsNumber
virtual void setOutputChannelsNumber(int32_t)=0
set the number of channels of Output for future streams
Babel::IAudioManager::getRecordTime
virtual int32_t getRecordTime() const =0
get the record time for readStreams
Babel::IAudioManager::writeStream
virtual void writeStream(std::vector< int16_t > &)=0
Write an array of int16_t to current stream.
Babel::IAudioManager::startStream
virtual void startStream()=0
Start a stream.
Babel::IAudioManager::setRecordTime
virtual void setRecordTime(int32_t)=0
get the record time for readStreams
Babel::IAudioManager::closeStream
virtual void closeStream()=0
Close current stream.