Babel
Epitech's C++ VoIP project
Public Member Functions | Private Attributes | List of all members
Babel::PortAudio Class Reference

#include <PortAudio.hpp>

Inheritance diagram for Babel::PortAudio:
Collaboration diagram for Babel::PortAudio:

Public Member Functions

 PortAudio ()
 
 ~PortAudio () override
 
void setInputChannelsNumber (int32_t) override
 set the number of channels for future streams More...
 
void setOutputChannelsNumber (int32_t) override
 set the number of channels for future streams More...
 
int32_t getInputChannelsNumber () const override
 get the number of channels of Input Device for future streams More...
 
int32_t getOutputChannelsNumber () const override
 get the number of channels of Output Device for future streams More...
 
void setSampleRate (int32_t) override
 set the samplerate for future streams More...
 
int32_t getSampleRate () const override
 get the current samplerate More...
 
int32_t getRecordTime () const override
 get the record time for readStreams More...
 
void setRecordTime (int32_t) override
 get the record time for readStreams More...
 
int32_t getFramesPerBuffer () const override
 get the frame per buffer value for readStreams More...
 
void setFramesPerBuffer (int32_t) override
 get the frame per buffer for readStreams More...
 
void openStream () override
 Open stream to input and output sounds. More...
 
void startStream () override
 Start a stream. More...
 
void stopStream () override
 Stop a stream. More...
 
void closeStream () override
 Close current stream. More...
 
std::vector< int16_t > readStream () override
 Read an array of int16_t from current stream. More...
 
void writeStream (std::vector< int16_t > &) override
 Write an array of int16_t to current stream. More...
 
- Public Member Functions inherited from Babel::IAudioManager
virtual ~IAudioManager ()=default
 virtual destructor More...
 

Private Attributes

PaStream * _stream
 stream for sound input and output More...
 
int32_t _framesPerBuffer
 frames per buffer for readStream More...
 
int32_t _inputNumberChannels
 number of channels for default input device More...
 
int32_t _outputNumberChannels
 number of channels for default output device More...
 
int32_t _recordtime
 record number in seconds for one frame More...
 
int32_t _samplerate
 sample rate for input and output streams More...
 
bool _streamStopped
 True if the stream doesn't exist or has not been started. More...
 
std::mutex _mutex
 class mutex More...
 

Constructor & Destructor Documentation

◆ PortAudio()

Babel::PortAudio::PortAudio ( )

◆ ~PortAudio()

Babel::PortAudio::~PortAudio ( )
override

Member Function Documentation

◆ closeStream()

void Babel::PortAudio::closeStream ( )
overridevirtual

Close current stream.

Implements Babel::IAudioManager.

◆ getFramesPerBuffer()

int32_t Babel::PortAudio::getFramesPerBuffer ( ) const
overridevirtual

get the frame per buffer value for readStreams

Implements Babel::IAudioManager.

◆ getInputChannelsNumber()

int32_t Babel::PortAudio::getInputChannelsNumber ( ) const
overridevirtual

get the number of channels of Input Device for future streams

Implements Babel::IAudioManager.

◆ getOutputChannelsNumber()

int32_t Babel::PortAudio::getOutputChannelsNumber ( ) const
overridevirtual

get the number of channels of Output Device for future streams

Implements Babel::IAudioManager.

◆ getRecordTime()

int32_t Babel::PortAudio::getRecordTime ( ) const
overridevirtual

get the record time for readStreams

Implements Babel::IAudioManager.

◆ getSampleRate()

int32_t Babel::PortAudio::getSampleRate ( ) const
overridevirtual

get the current samplerate

Implements Babel::IAudioManager.

◆ openStream()

void Babel::PortAudio::openStream ( )
overridevirtual

Open stream to input and output sounds.

Implements Babel::IAudioManager.

◆ readStream()

std::vector< int16_t > Babel::PortAudio::readStream ( )
overridevirtual

Read an array of int16_t from current stream.

Implements Babel::IAudioManager.

◆ setFramesPerBuffer()

void Babel::PortAudio::setFramesPerBuffer ( int32_t  nb)
overridevirtual

get the frame per buffer for readStreams

Implements Babel::IAudioManager.

◆ setInputChannelsNumber()

void Babel::PortAudio::setInputChannelsNumber ( int32_t  nb)
overridevirtual

set the number of channels for future streams

Implements Babel::IAudioManager.

◆ setOutputChannelsNumber()

void Babel::PortAudio::setOutputChannelsNumber ( int32_t  nb)
overridevirtual

set the number of channels for future streams

Implements Babel::IAudioManager.

◆ setRecordTime()

void Babel::PortAudio::setRecordTime ( int32_t  nb)
overridevirtual

get the record time for readStreams

Implements Babel::IAudioManager.

◆ setSampleRate()

void Babel::PortAudio::setSampleRate ( int32_t  nb)
overridevirtual

set the samplerate for future streams

Implements Babel::IAudioManager.

◆ startStream()

void Babel::PortAudio::startStream ( )
overridevirtual

Start a stream.

Implements Babel::IAudioManager.

◆ stopStream()

void Babel::PortAudio::stopStream ( )
overridevirtual

Stop a stream.

Implements Babel::IAudioManager.

◆ writeStream()

void Babel::PortAudio::writeStream ( std::vector< int16_t > &  data)
overridevirtual

Write an array of int16_t to current stream.

Implements Babel::IAudioManager.

Member Data Documentation

◆ _framesPerBuffer

int32_t Babel::PortAudio::_framesPerBuffer
private

frames per buffer for readStream

◆ _inputNumberChannels

int32_t Babel::PortAudio::_inputNumberChannels
private

number of channels for default input device

◆ _mutex

std::mutex Babel::PortAudio::_mutex
private

class mutex

◆ _outputNumberChannels

int32_t Babel::PortAudio::_outputNumberChannels
private

number of channels for default output device

◆ _recordtime

int32_t Babel::PortAudio::_recordtime
private

record number in seconds for one frame

◆ _samplerate

int32_t Babel::PortAudio::_samplerate
private

sample rate for input and output streams

◆ _stream

PaStream* Babel::PortAudio::_stream
private

stream for sound input and output

◆ _streamStopped

bool Babel::PortAudio::_streamStopped
private

True if the stream doesn't exist or has not been started.


The documentation for this class was generated from the following files: