mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
* #11964: mainbuffer/ringbuffer: cleanup API
This commit is contained in:
@ -588,14 +588,14 @@ void AlsaLayer::playback(int maxSamples)
|
||||
unsigned int mainBufferSampleRate = Manager::instance().getMainBuffer()->getInternalSamplingRate();
|
||||
bool resample = sampleRate_ != mainBufferSampleRate;
|
||||
|
||||
int toGet = Manager::instance().getMainBuffer()->availForGet(MainBuffer::DEFAULT_ID);
|
||||
int toPut = maxSamples * sizeof(SFLDataFormat);
|
||||
size_t toGet = Manager::instance().getMainBuffer()->availableForGet(MainBuffer::DEFAULT_ID);
|
||||
const size_t toPut = maxSamples * sizeof(SFLDataFormat);
|
||||
|
||||
if (toGet <= 0) { // no audio available, play tone or silence
|
||||
AudioLoop *tone = Manager::instance().getTelephoneTone();
|
||||
AudioLoop *file_tone = Manager::instance().getTelephoneFile();
|
||||
|
||||
SFLDataFormat *out = (SFLDataFormat *) malloc(toPut);
|
||||
SFLDataFormat *out = static_cast<SFLDataFormat *>(malloc(toPut));
|
||||
|
||||
if (tone) {
|
||||
tone->getNext(out, maxSamples, getPlaybackGain());
|
||||
@ -613,7 +613,7 @@ void AlsaLayer::playback(int maxSamples)
|
||||
|
||||
// play the regular sound samples
|
||||
|
||||
int maxNbBytesToGet = toPut;
|
||||
size_t maxNbBytesToGet = toPut;
|
||||
// Compute maximal value to get from the ring buffer
|
||||
double resampleFactor = 1.0;
|
||||
|
||||
@ -655,7 +655,7 @@ void AlsaLayer::audioCallback()
|
||||
int playbackAvailSmpl = snd_pcm_avail_update(playbackHandle_);
|
||||
int playbackAvailBytes = playbackAvailSmpl * sizeof(SFLDataFormat);
|
||||
|
||||
int toGet = urgentRingBuffer_.AvailForGet(MainBuffer::DEFAULT_ID);
|
||||
int toGet = urgentRingBuffer_.availableForGet(MainBuffer::DEFAULT_ID);
|
||||
|
||||
if (toGet > 0) {
|
||||
// Urgent data (dtmf, incoming call signal) come first.
|
||||
@ -663,7 +663,7 @@ void AlsaLayer::audioCallback()
|
||||
toGet = playbackAvailBytes;
|
||||
|
||||
SFLDataFormat *out = (SFLDataFormat*) malloc(toGet);
|
||||
urgentRingBuffer_.Get(out, toGet, MainBuffer::DEFAULT_ID);
|
||||
urgentRingBuffer_.get(out, toGet, MainBuffer::DEFAULT_ID);
|
||||
AudioLayer::applyGain(out, toGet / sizeof(SFLDataFormat), getPlaybackGain());
|
||||
|
||||
write(out, toGet, playbackHandle_);
|
||||
|
@ -66,7 +66,7 @@ void AudioLayer::flushUrgent()
|
||||
void AudioLayer::putUrgent(void* buffer, int toCopy)
|
||||
{
|
||||
ost::MutexLock guard(mutex_);
|
||||
urgentRingBuffer_.Put(buffer, toCopy);
|
||||
urgentRingBuffer_.put(buffer, toCopy);
|
||||
}
|
||||
|
||||
void AudioLayer::applyGain(SFLDataFormat *src , int samples, int gain)
|
||||
|
@ -65,11 +65,11 @@ void AudioRecorder::run()
|
||||
buffer.assign(0);
|
||||
|
||||
while (running_) {
|
||||
size_t availBytes = mbuffer_->availForGet(recorderId_);
|
||||
mbuffer_->getData(buffer.data(), std::min(availBytes, buffer.size()), recorderId_);
|
||||
const size_t availableBytes = mbuffer_->availableForGet(recorderId_);
|
||||
mbuffer_->getData(buffer.data(), std::min(availableBytes, buffer.size()), recorderId_);
|
||||
|
||||
if (availBytes > 0)
|
||||
arecord_->recData(buffer.data(), availBytes / sizeof(SFLDataFormat));
|
||||
if (availableBytes > 0)
|
||||
arecord_->recData(buffer.data(), availableBytes / sizeof(SFLDataFormat));
|
||||
|
||||
Thread::sleep(20);
|
||||
}
|
||||
|
@ -152,13 +152,13 @@ int AudioRtpRecordHandler::processDataEncode()
|
||||
|
||||
// compute nb of byte to get coresponding to 1 audio frame
|
||||
int samplesToGet = resampleFactor * getCodecFrameSize();
|
||||
int bytesToGet = samplesToGet * sizeof(SFLDataFormat);
|
||||
const size_t bytesToGet = samplesToGet * sizeof(SFLDataFormat);
|
||||
|
||||
if (Manager::instance().getMainBuffer()->availForGet(id_) < bytesToGet)
|
||||
if (Manager::instance().getMainBuffer()->availableForGet(id_) < bytesToGet)
|
||||
return 0;
|
||||
|
||||
SFLDataFormat *micData = audioRtpRecord_.decData_.data();
|
||||
int bytes = Manager::instance().getMainBuffer()->getData(micData, bytesToGet, id_);
|
||||
const size_t bytes = Manager::instance().getMainBuffer()->getData(micData, bytesToGet, id_);
|
||||
|
||||
#ifdef RECTODISK
|
||||
rtpNotResampled.write((const char *)micData, bytes);
|
||||
|
@ -103,6 +103,12 @@ RingBuffer* MainBuffer::getRingBuffer(const std::string & call_id)
|
||||
return (iter != ringBufferMap_.end()) ? iter->second : NULL;
|
||||
}
|
||||
|
||||
const RingBuffer* MainBuffer::getRingBuffer(const std::string & call_id) const
|
||||
{
|
||||
RingBufferMap::const_iterator iter = ringBufferMap_.find(call_id);
|
||||
return (iter != ringBufferMap_.end()) ? iter->second : NULL;
|
||||
}
|
||||
|
||||
void MainBuffer::createRingBuffer(const std::string &call_id)
|
||||
{
|
||||
if (!getRingBuffer(call_id))
|
||||
@ -162,7 +168,7 @@ void MainBuffer::unBindCallID(const std::string & call_id1, const std::string &
|
||||
if (ringbuffer) {
|
||||
ringbuffer->removeReadPointer(call_id1);
|
||||
|
||||
if (ringbuffer->getNbReadPointer() == 0) {
|
||||
if (ringbuffer->hasNoReadPointers()) {
|
||||
removeCallIDSet(call_id2);
|
||||
removeRingBuffer(call_id2);
|
||||
}
|
||||
@ -173,7 +179,7 @@ void MainBuffer::unBindCallID(const std::string & call_id1, const std::string &
|
||||
if (ringbuffer) {
|
||||
ringbuffer->removeReadPointer(call_id2);
|
||||
|
||||
if (ringbuffer->getNbReadPointer() == 0) {
|
||||
if (ringbuffer->hasNoReadPointers()) {
|
||||
removeCallIDSet(call_id1);
|
||||
removeRingBuffer(call_id1);
|
||||
}
|
||||
@ -191,7 +197,7 @@ void MainBuffer::unBindHalfDuplexOut(const std::string & process_id, const std::
|
||||
if (ringbuffer) {
|
||||
ringbuffer->removeReadPointer(process_id);
|
||||
|
||||
if (ringbuffer->getNbReadPointer() == 0) {
|
||||
if (ringbuffer->hasNoReadPointers()) {
|
||||
removeCallIDSet(call_id);
|
||||
removeRingBuffer(call_id);
|
||||
}
|
||||
@ -222,17 +228,17 @@ void MainBuffer::unBindAll(const std::string & call_id)
|
||||
}
|
||||
}
|
||||
|
||||
void MainBuffer::putData(void *buffer, int toCopy, const std::string &call_id)
|
||||
void MainBuffer::putData(void *buffer, size_t toCopy, const std::string &call_id)
|
||||
{
|
||||
ost::MutexLock guard(mutex_);
|
||||
|
||||
RingBuffer* ring_buffer = getRingBuffer(call_id);
|
||||
|
||||
if (ring_buffer)
|
||||
ring_buffer->Put(buffer, toCopy);
|
||||
ring_buffer->put(buffer, toCopy);
|
||||
}
|
||||
|
||||
int MainBuffer::getData(void *buffer, int toCopy, const std::string &call_id)
|
||||
size_t MainBuffer::getData(void *buffer, size_t toCopy, const std::string &call_id)
|
||||
{
|
||||
ost::MutexLock guard(mutex_);
|
||||
|
||||
@ -252,18 +258,18 @@ int MainBuffer::getData(void *buffer, int toCopy, const std::string &call_id)
|
||||
} else {
|
||||
memset(buffer, 0, toCopy);
|
||||
|
||||
int size = 0;
|
||||
size_t size = 0;
|
||||
|
||||
for (CallIDSet::iterator iter_id = callid_set->begin();
|
||||
iter_id != callid_set->end(); ++iter_id) {
|
||||
int nbSmplToCopy = toCopy / sizeof(SFLDataFormat);
|
||||
size_t nbSmplToCopy = toCopy / sizeof(SFLDataFormat);
|
||||
SFLDataFormat mixBuffer[nbSmplToCopy];
|
||||
memset(mixBuffer, 0, toCopy);
|
||||
size = getDataByID(mixBuffer, toCopy, *iter_id, call_id);
|
||||
|
||||
if (size > 0) {
|
||||
SFLDataFormat *dest = static_cast<SFLDataFormat*>(buffer);
|
||||
for (int k = 0; k < nbSmplToCopy; ++k)
|
||||
for (size_t k = 0; k < nbSmplToCopy; ++k)
|
||||
dest[k] += mixBuffer[k];
|
||||
}
|
||||
}
|
||||
@ -272,13 +278,13 @@ int MainBuffer::getData(void *buffer, int toCopy, const std::string &call_id)
|
||||
}
|
||||
}
|
||||
|
||||
int MainBuffer::getDataByID(void *buffer, int toCopy, const std::string & call_id, const std::string & reader_id)
|
||||
size_t MainBuffer::getDataByID(void *buffer, size_t toCopy, const std::string & call_id, const std::string & reader_id)
|
||||
{
|
||||
RingBuffer* ring_buffer = getRingBuffer(call_id);
|
||||
return ring_buffer ? ring_buffer->Get(buffer, toCopy, reader_id) : 0;
|
||||
return ring_buffer ? ring_buffer->get(buffer, toCopy, reader_id) : 0;
|
||||
}
|
||||
|
||||
int MainBuffer::availForGet(const std::string & call_id)
|
||||
size_t MainBuffer::availableForGet(const std::string &call_id)
|
||||
{
|
||||
ost::MutexLock guard(mutex_);
|
||||
|
||||
@ -293,39 +299,39 @@ int MainBuffer::availForGet(const std::string & call_id)
|
||||
if ((call_id != DEFAULT_ID) && (*iter_id == call_id))
|
||||
DEBUG("This problem should not occur since we have %ld elements", callid_set->size());
|
||||
|
||||
return availForGetByID(*iter_id, call_id);
|
||||
return availableForGetByID(*iter_id, call_id);
|
||||
|
||||
} else {
|
||||
|
||||
int avail_bytes = INT_MAX;
|
||||
size_t availableBytes = INT_MAX;
|
||||
for (CallIDSet::iterator i = callid_set->begin(); i != callid_set->end(); ++i) {
|
||||
const int nb_bytes = availForGetByID(*i, call_id);
|
||||
const size_t nbBytes = availableForGetByID(*i, call_id);
|
||||
|
||||
if (nb_bytes != 0)
|
||||
avail_bytes = std::min(avail_bytes, nb_bytes);
|
||||
if (nbBytes != 0)
|
||||
availableBytes = std::min(availableBytes, nbBytes);
|
||||
}
|
||||
|
||||
return avail_bytes != INT_MAX ? avail_bytes : 0;
|
||||
return availableBytes != INT_MAX ? availableBytes : 0;
|
||||
}
|
||||
}
|
||||
|
||||
int MainBuffer::availForGetByID(const std::string &call_id,
|
||||
const std::string &reader_id)
|
||||
size_t MainBuffer::availableForGetByID(const std::string &call_id,
|
||||
const std::string &reader_id) const
|
||||
{
|
||||
if (call_id != DEFAULT_ID and reader_id == call_id)
|
||||
ERROR("RingBuffer has a readpointer on itself");
|
||||
|
||||
RingBuffer* ringbuffer = getRingBuffer(call_id);
|
||||
const RingBuffer* ringbuffer = getRingBuffer(call_id);
|
||||
|
||||
if (ringbuffer == NULL) {
|
||||
ERROR("RingBuffer does not exist");
|
||||
return 0;
|
||||
} else
|
||||
return ringbuffer->AvailForGet(reader_id);
|
||||
return ringbuffer->availableForGet(reader_id);
|
||||
|
||||
}
|
||||
|
||||
int MainBuffer::discard(int toDiscard, const std::string &call_id)
|
||||
size_t MainBuffer::discard(size_t toDiscard, const std::string &call_id)
|
||||
{
|
||||
ost::MutexLock guard(mutex_);
|
||||
|
||||
@ -340,12 +346,12 @@ int MainBuffer::discard(int toDiscard, const std::string &call_id)
|
||||
return toDiscard;
|
||||
}
|
||||
|
||||
void MainBuffer::discardByID(int toDiscard, const std::string & call_id, const std::string & reader_id)
|
||||
void MainBuffer::discardByID(size_t toDiscard, const std::string & call_id, const std::string & reader_id)
|
||||
{
|
||||
RingBuffer* ringbuffer = getRingBuffer(call_id);
|
||||
|
||||
if (ringbuffer)
|
||||
ringbuffer->Discard(toDiscard, reader_id);
|
||||
ringbuffer->discard(toDiscard, reader_id);
|
||||
}
|
||||
|
||||
void MainBuffer::flush(const std::string & call_id)
|
||||
|
@ -82,13 +82,13 @@ class MainBuffer {
|
||||
|
||||
void unBindAll(const std::string &call_id);
|
||||
|
||||
void putData(void *buffer, int toCopy, const std::string &call_id);
|
||||
void putData(void *buffer, size_t toCopy, const std::string &call_id);
|
||||
|
||||
int getData(void *buffer, int toCopy, const std::string &call_id);
|
||||
size_t getData(void *buffer, size_t toCopy, const std::string &call_id);
|
||||
|
||||
int availForGet(const std::string &call_id);
|
||||
size_t availableForGet(const std::string &call_id);
|
||||
|
||||
int discard(int toDiscard, const std::string &call_id);
|
||||
size_t discard(size_t toDiscard, const std::string &call_id);
|
||||
|
||||
void flush(const std::string &call_id);
|
||||
|
||||
@ -119,12 +119,13 @@ class MainBuffer {
|
||||
void removeRingBuffer(const std::string &call_id);
|
||||
|
||||
RingBuffer* getRingBuffer(const std::string &call_id);
|
||||
const RingBuffer* getRingBuffer(const std::string & call_id) const;
|
||||
|
||||
int getDataByID(void *buffer, int toCopy, const std::string &call_id, const std::string &reader_id);
|
||||
size_t getDataByID(void *buffer, size_t toCopy, const std::string &call_id, const std::string &reader_id);
|
||||
|
||||
int availForGetByID(const std::string &call_id, const std::string &reader_id);
|
||||
size_t availableForGetByID(const std::string &call_id, const std::string &reader_id) const;
|
||||
|
||||
void discardByID(int toDiscard, const std::string &call_id, const std::string &reader_id);
|
||||
void discardByID(size_t toDiscard, const std::string &call_id, const std::string &reader_id);
|
||||
|
||||
void flushByID(const std::string &call_id, const std::string &reader_id);
|
||||
|
||||
|
@ -326,7 +326,7 @@ void PulseLayer::writeToSpeaker()
|
||||
|
||||
notifyIncomingCall();
|
||||
|
||||
size_t urgentBytes = urgentRingBuffer_.AvailForGet(MainBuffer::DEFAULT_ID);
|
||||
size_t urgentBytes = urgentRingBuffer_.availableForGet(MainBuffer::DEFAULT_ID);
|
||||
|
||||
if (urgentBytes > writableBytes)
|
||||
urgentBytes = writableBytes;
|
||||
@ -334,7 +334,7 @@ void PulseLayer::writeToSpeaker()
|
||||
void *data = 0;
|
||||
if (urgentBytes) {
|
||||
pa_stream_begin_write(s, &data, &urgentBytes);
|
||||
urgentRingBuffer_.Get(data, urgentBytes, MainBuffer::DEFAULT_ID);
|
||||
urgentRingBuffer_.get(data, urgentBytes, MainBuffer::DEFAULT_ID);
|
||||
applyGain(static_cast<SFLDataFormat *>(data), urgentBytes / sizeof(SFLDataFormat), getPlaybackGain());
|
||||
pa_stream_write(s, data, urgentBytes, NULL, 0, PA_SEEK_RELATIVE);
|
||||
// Consume the regular one as well (same amount of bytes)
|
||||
@ -357,7 +357,7 @@ void PulseLayer::writeToSpeaker()
|
||||
|
||||
flushUrgent(); // flush remaining samples in _urgentRingBuffer
|
||||
|
||||
size_t availSamples = Manager::instance().getMainBuffer()->availForGet(MainBuffer::DEFAULT_ID) / sizeof(SFLDataFormat);
|
||||
size_t availSamples = Manager::instance().getMainBuffer()->availableForGet(MainBuffer::DEFAULT_ID) / sizeof(SFLDataFormat);
|
||||
|
||||
if (availSamples == 0) {
|
||||
pa_stream_begin_write(s, &data, &writableBytes);
|
||||
|
@ -39,28 +39,19 @@
|
||||
#include "logger.h"
|
||||
#include "ringbuffer.h"
|
||||
|
||||
// corespond to 106 ms (about 5 rtp packets)
|
||||
#define MIN_BUFFER_SIZE 1280
|
||||
|
||||
int RingBuffer::count_rb = 0;
|
||||
namespace {
|
||||
// corresponds to 106 ms (about 5 rtp packets)
|
||||
const size_t MIN_BUFFER_SIZE = 1280;
|
||||
}
|
||||
|
||||
// Create a ring buffer with 'size' bytes
|
||||
RingBuffer::RingBuffer(int size, const std::string &call_id) : endPos_(0)
|
||||
RingBuffer::RingBuffer(size_t size, const std::string &call_id) :
|
||||
endPos_(0)
|
||||
, bufferSize_(size > MIN_BUFFER_SIZE ? size : MIN_BUFFER_SIZE)
|
||||
, buffer_(NULL)
|
||||
, readpointer_()
|
||||
, buffer_(bufferSize_)
|
||||
, readpointers_()
|
||||
, buffer_id_(call_id)
|
||||
, buffer_input_rec(0)
|
||||
, buffer_output_rec(0)
|
||||
{
|
||||
buffer_ = new unsigned char[bufferSize_];
|
||||
count_rb++;
|
||||
}
|
||||
|
||||
RingBuffer::~RingBuffer()
|
||||
{
|
||||
delete[] buffer_;
|
||||
}
|
||||
{}
|
||||
|
||||
void
|
||||
RingBuffer::flush(const std::string &call_id)
|
||||
@ -74,19 +65,18 @@ RingBuffer::flushAll()
|
||||
{
|
||||
ReadPointer::iterator iter;
|
||||
|
||||
for (iter = readpointer_.begin(); iter != readpointer_.end(); ++iter)
|
||||
for (iter = readpointers_.begin(); iter != readpointers_.end(); ++iter)
|
||||
iter->second = endPos_;
|
||||
}
|
||||
|
||||
int
|
||||
RingBuffer::putLen()
|
||||
size_t
|
||||
RingBuffer::putLength() const
|
||||
{
|
||||
int startPos = (readpointer_.size() >= 1) ? getSmallestReadPointer() : 0;
|
||||
const size_t startPos = (not readpointers_.empty()) ? getSmallestReadPointer() : 0;
|
||||
return (endPos_ + bufferSize_ - startPos) % bufferSize_;
|
||||
}
|
||||
|
||||
int
|
||||
RingBuffer::getLen(const std::string &call_id)
|
||||
size_t RingBuffer::getLength(const std::string &call_id) const
|
||||
{
|
||||
return (endPos_ + bufferSize_ - getReadPointer(call_id)) % bufferSize_;
|
||||
}
|
||||
@ -97,27 +87,26 @@ RingBuffer::debug()
|
||||
DEBUG("Start=%d; End=%d; BufferSize=%d", getSmallestReadPointer(), endPos_, bufferSize_);
|
||||
}
|
||||
|
||||
int
|
||||
RingBuffer::getReadPointer(const std::string &call_id)
|
||||
size_t RingBuffer::getReadPointer(const std::string &call_id) const
|
||||
{
|
||||
if (getNbReadPointer() == 0)
|
||||
if (hasNoReadPointers())
|
||||
return 0;
|
||||
|
||||
ReadPointer::iterator iter = readpointer_.find(call_id);
|
||||
return (iter != readpointer_.end()) ? iter->second : 0;
|
||||
ReadPointer::const_iterator iter = readpointers_.find(call_id);
|
||||
return (iter != readpointers_.end()) ? iter->second : 0;
|
||||
}
|
||||
|
||||
int
|
||||
RingBuffer::getSmallestReadPointer()
|
||||
size_t
|
||||
RingBuffer::getSmallestReadPointer() const
|
||||
{
|
||||
if (getNbReadPointer() == 0)
|
||||
if (hasNoReadPointers())
|
||||
return 0;
|
||||
|
||||
int smallest = bufferSize_;
|
||||
size_t smallest = bufferSize_;
|
||||
|
||||
ReadPointer::iterator iter;
|
||||
ReadPointer::const_iterator iter;
|
||||
|
||||
for (iter = readpointer_.begin(); iter != readpointer_.end(); ++iter)
|
||||
for (iter = readpointers_.begin(); iter != readpointers_.end(); ++iter)
|
||||
if (iter->second < smallest)
|
||||
smallest = iter->second;
|
||||
|
||||
@ -125,11 +114,11 @@ RingBuffer::getSmallestReadPointer()
|
||||
}
|
||||
|
||||
void
|
||||
RingBuffer::storeReadPointer(int pointer_value, const std::string &call_id)
|
||||
RingBuffer::storeReadPointer(size_t pointer_value, const std::string &call_id)
|
||||
{
|
||||
ReadPointer::iterator iter = readpointer_.find(call_id);
|
||||
ReadPointer::iterator iter = readpointers_.find(call_id);
|
||||
|
||||
if (iter != readpointer_.end())
|
||||
if (iter != readpointers_.end())
|
||||
iter->second = pointer_value;
|
||||
else
|
||||
DEBUG("Cannot find \"%s\" readPointer in \"%s\" ringbuffer", call_id.c_str(), buffer_id_.c_str());
|
||||
@ -140,31 +129,30 @@ void
|
||||
RingBuffer::createReadPointer(const std::string &call_id)
|
||||
{
|
||||
if (!hasThisReadPointer(call_id))
|
||||
readpointer_.insert(std::pair<std::string, int> (call_id, endPos_));
|
||||
readpointers_.insert(std::pair<std::string, int> (call_id, endPos_));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
RingBuffer::removeReadPointer(const std::string &call_id)
|
||||
{
|
||||
ReadPointer::iterator iter = readpointer_.find(call_id);
|
||||
ReadPointer::iterator iter = readpointers_.find(call_id);
|
||||
|
||||
if (iter != readpointer_.end())
|
||||
readpointer_.erase(iter);
|
||||
if (iter != readpointers_.end())
|
||||
readpointers_.erase(iter);
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
RingBuffer::hasThisReadPointer(const std::string &call_id)
|
||||
RingBuffer::hasThisReadPointer(const std::string &call_id) const
|
||||
{
|
||||
return readpointer_.find(call_id) != readpointer_.end();
|
||||
return readpointers_.find(call_id) != readpointers_.end();
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
RingBuffer::getNbReadPointer()
|
||||
bool RingBuffer::hasNoReadPointers() const
|
||||
{
|
||||
return readpointer_.size();
|
||||
return readpointers_.empty();
|
||||
}
|
||||
|
||||
//
|
||||
@ -173,24 +161,24 @@ RingBuffer::getNbReadPointer()
|
||||
|
||||
// This one puts some data inside the ring buffer.
|
||||
void
|
||||
RingBuffer::Put(void* buffer, int toCopy)
|
||||
RingBuffer::put(void* buffer, size_t toCopy)
|
||||
{
|
||||
int len = putLen();
|
||||
const size_t len = putLength();
|
||||
|
||||
if (toCopy > bufferSize_ - len)
|
||||
toCopy = bufferSize_ - len;
|
||||
|
||||
unsigned char *src = (unsigned char *) buffer;
|
||||
unsigned char *src = static_cast<unsigned char *>(buffer);
|
||||
|
||||
int pos = endPos_;
|
||||
size_t pos = endPos_;
|
||||
|
||||
while (toCopy) {
|
||||
int block = toCopy;
|
||||
size_t block = toCopy;
|
||||
|
||||
if (block > bufferSize_ - pos) // Wrap block around ring ?
|
||||
block = bufferSize_ - pos; // Fill in to the end of the buffer
|
||||
|
||||
memcpy(buffer_ + pos, src, block);
|
||||
memcpy(&(*buffer_.begin()) + pos, src, block);
|
||||
src += block;
|
||||
pos = (pos + block) % bufferSize_;
|
||||
toCopy -= block;
|
||||
@ -202,41 +190,40 @@ RingBuffer::Put(void* buffer, int toCopy)
|
||||
// For the reader only:
|
||||
//
|
||||
|
||||
int
|
||||
RingBuffer::AvailForGet(const std::string &call_id)
|
||||
size_t
|
||||
RingBuffer::availableForGet(const std::string &call_id) const
|
||||
{
|
||||
// Used space
|
||||
|
||||
return getLen(call_id);
|
||||
return getLength(call_id);
|
||||
}
|
||||
|
||||
// Get will move 'toCopy' bytes from the internal FIFO to 'buffer'
|
||||
int
|
||||
RingBuffer::Get(void *buffer, int toCopy, const std::string &call_id)
|
||||
size_t
|
||||
RingBuffer::get(void *buffer, size_t toCopy, const std::string &call_id)
|
||||
{
|
||||
if (getNbReadPointer() == 0)
|
||||
if (hasNoReadPointers())
|
||||
return 0;
|
||||
|
||||
if (!hasThisReadPointer(call_id))
|
||||
if (not hasThisReadPointer(call_id))
|
||||
return 0;
|
||||
|
||||
int len = getLen(call_id);
|
||||
const size_t len = getLength(call_id);
|
||||
|
||||
if (toCopy > len)
|
||||
toCopy = len;
|
||||
|
||||
int copied = toCopy;
|
||||
const size_t copied = toCopy;
|
||||
|
||||
unsigned char *dest = (unsigned char *) buffer;
|
||||
int startPos = getReadPointer(call_id);
|
||||
size_t startPos = getReadPointer(call_id);
|
||||
|
||||
while (toCopy) {
|
||||
int block = toCopy;
|
||||
while (toCopy > 0) {
|
||||
size_t block = toCopy;
|
||||
|
||||
if (block > bufferSize_ - startPos)
|
||||
block = bufferSize_ - startPos;
|
||||
|
||||
memcpy(dest, buffer_ + startPos, block);
|
||||
memcpy(dest, &(*buffer_.begin()) + startPos, block);
|
||||
dest += block;
|
||||
startPos = (startPos + block) % bufferSize_;
|
||||
toCopy -= block;
|
||||
@ -246,15 +233,15 @@ RingBuffer::Get(void *buffer, int toCopy, const std::string &call_id)
|
||||
return copied;
|
||||
}
|
||||
|
||||
int
|
||||
RingBuffer::Discard(int toDiscard, const std::string &call_id)
|
||||
size_t
|
||||
RingBuffer::discard(size_t toDiscard, const std::string &call_id)
|
||||
{
|
||||
int len = getLen(call_id);
|
||||
size_t len = getLength(call_id);
|
||||
|
||||
if (toDiscard > len)
|
||||
toDiscard = len;
|
||||
|
||||
int startPos = (getReadPointer(call_id) + toDiscard) % bufferSize_;
|
||||
size_t startPos = (getReadPointer(call_id) + toDiscard) % bufferSize_;
|
||||
|
||||
storeReadPointer(startPos, call_id);
|
||||
|
||||
|
@ -23,10 +23,11 @@
|
||||
#define __RING_BUFFER__
|
||||
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include "noncopyable.h"
|
||||
|
||||
typedef std::map<std::string, int> ReadPointer;
|
||||
typedef std::map<std::string, size_t> ReadPointer;
|
||||
|
||||
class RingBuffer {
|
||||
public:
|
||||
@ -34,12 +35,7 @@ class RingBuffer {
|
||||
* Constructor
|
||||
* @param size Size of the buffer to create
|
||||
*/
|
||||
RingBuffer(int size, const std::string &call_id);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
~RingBuffer();
|
||||
RingBuffer(size_t size, const std::string &call_id);
|
||||
|
||||
std::string getBufferId() const {
|
||||
return buffer_id_;
|
||||
@ -55,24 +51,24 @@ class RingBuffer {
|
||||
/**
|
||||
* Get read pointer coresponding to this call
|
||||
*/
|
||||
int getReadPointer(const std::string &call_id);
|
||||
size_t getReadPointer(const std::string &call_id) const;
|
||||
|
||||
/**
|
||||
* Get the whole readpointer list for this ringbuffer
|
||||
*/
|
||||
ReadPointer* getReadPointerList() {
|
||||
return &readpointer_;
|
||||
return &readpointers_;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the smalest readpointer. Usefull to evaluate if ringbuffer is full
|
||||
*/
|
||||
int getSmallestReadPointer();
|
||||
size_t getSmallestReadPointer() const;
|
||||
|
||||
/**
|
||||
* Move readpointer forward by pointer_value
|
||||
*/
|
||||
void storeReadPointer(int pointer_value, const std::string &call_id);
|
||||
void storeReadPointer(size_t pointer_value, const std::string &call_id);
|
||||
|
||||
/**
|
||||
* Add a new readpointer for this ringbuffer
|
||||
@ -87,45 +83,45 @@ class RingBuffer {
|
||||
/**
|
||||
* Test if readpointer coresponding to this call is still active
|
||||
*/
|
||||
bool hasThisReadPointer(const std::string &call_id);
|
||||
bool hasThisReadPointer(const std::string &call_id) const;
|
||||
|
||||
int getNbReadPointer();
|
||||
bool hasNoReadPointers() const;
|
||||
|
||||
/**
|
||||
* Write data in the ring buffer
|
||||
* @param buffer Data to copied
|
||||
* @param toCopy Number of bytes to copy
|
||||
*/
|
||||
void Put(void* buffer, int toCopy);
|
||||
void put(void* buffer, size_t toCopy);
|
||||
|
||||
/**
|
||||
* To get how much space is available in the buffer to read in
|
||||
* @return int The available size
|
||||
*/
|
||||
int AvailForGet(const std::string &call_id);
|
||||
size_t availableForGet(const std::string &call_id) const;
|
||||
|
||||
/**
|
||||
* Get data in the ring buffer
|
||||
* @param buffer Data to copied
|
||||
* @param toCopy Number of bytes to copy
|
||||
* @return int Number of bytes copied
|
||||
* @return size_t Number of bytes copied
|
||||
*/
|
||||
int Get(void* buffer, int toCopy, const std::string &call_id);
|
||||
size_t get(void* buffer, size_t toCopy, const std::string &call_id);
|
||||
|
||||
/**
|
||||
* Discard data from the buffer
|
||||
* @param toDiscard Number of bytes to discard
|
||||
* @return int Number of bytes discarded
|
||||
* @return size_t Number of bytes discarded
|
||||
*/
|
||||
int Discard(int toDiscard, const std::string &call_id);
|
||||
size_t discard(size_t toDiscard, const std::string &call_id);
|
||||
|
||||
/**
|
||||
* Total length of the ring buffer
|
||||
* Total length of the ring buffer which is available for "putting"
|
||||
* @return int
|
||||
*/
|
||||
int putLen();
|
||||
size_t putLength() const;
|
||||
|
||||
int getLen(const std::string &call_id);
|
||||
size_t getLength(const std::string &call_id) const;
|
||||
|
||||
/**
|
||||
* Debug function print mEnd, mStart, mBufferSize
|
||||
@ -136,23 +132,16 @@ class RingBuffer {
|
||||
NON_COPYABLE(RingBuffer);
|
||||
|
||||
/** Pointer on the last data */
|
||||
int endPos_;
|
||||
size_t endPos_;
|
||||
/** Buffer size */
|
||||
int bufferSize_;
|
||||
size_t bufferSize_;
|
||||
/** Data */
|
||||
unsigned char *buffer_;
|
||||
std::vector<unsigned char> buffer_;
|
||||
|
||||
ReadPointer readpointer_;
|
||||
ReadPointer readpointers_;
|
||||
std::string buffer_id_;
|
||||
|
||||
friend class MainBufferTest;
|
||||
|
||||
public:
|
||||
|
||||
std::fstream *buffer_input_rec;
|
||||
std::fstream *buffer_output_rec;
|
||||
|
||||
static int count_rb;
|
||||
};
|
||||
|
||||
|
||||
|
@ -26,14 +26,13 @@
|
||||
#include <speex/speex_preprocess.h>
|
||||
#include "manager.h"
|
||||
|
||||
// number of samples (20 ms)
|
||||
#define EC_FRAME_SIZE 160
|
||||
// number of sample to process, (800 à 4000 samples, 100 to 500 ms)
|
||||
#define EC_FILTER_LENGTH 800
|
||||
|
||||
namespace {
|
||||
const int SPEEX_SAMPLE_RATE = 8000;
|
||||
const int RINGBUFFER_SIZE = 100000;
|
||||
// number of samples (20 ms)
|
||||
const size_t EC_FRAME_SIZE = 160;
|
||||
// number of sample to process, (800 à 4000 samples, 100 to 500 ms)
|
||||
const size_t EC_FILTER_LENGTH = 800;
|
||||
}
|
||||
|
||||
SpeexEchoCancel::SpeexEchoCancel() :
|
||||
@ -66,7 +65,7 @@ SpeexEchoCancel::~SpeexEchoCancel()
|
||||
speex_preprocess_state_destroy(preState_);
|
||||
}
|
||||
|
||||
void SpeexEchoCancel::putData(SFLDataFormat *inputData, int samples)
|
||||
void SpeexEchoCancel::putData(SFLDataFormat *inputData, size_t samples)
|
||||
{
|
||||
if (spkrStopped_) {
|
||||
micData_.flushAll();
|
||||
@ -74,15 +73,15 @@ void SpeexEchoCancel::putData(SFLDataFormat *inputData, int samples)
|
||||
spkrStopped_ = false;
|
||||
}
|
||||
|
||||
spkrData_.Put(inputData, samples * sizeof(SFLDataFormat));
|
||||
spkrData_.put(inputData, samples * sizeof(SFLDataFormat));
|
||||
}
|
||||
|
||||
int SpeexEchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData, int samples)
|
||||
int SpeexEchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData, size_t samples)
|
||||
{
|
||||
if (spkrStopped_)
|
||||
return 0;
|
||||
|
||||
const int byteSize = EC_FRAME_SIZE * sizeof(SFLDataFormat);
|
||||
const size_t byteSize = EC_FRAME_SIZE * sizeof(SFLDataFormat);
|
||||
|
||||
// init temporary buffers
|
||||
memset(tmpSpkr_, 0, sizeof(tmpSpkr_));
|
||||
@ -90,21 +89,21 @@ int SpeexEchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData
|
||||
memset(tmpOut_, 0, sizeof(tmpOut_));
|
||||
|
||||
// Put mic data in ringbuffer
|
||||
micData_.Put(inputData, samples * sizeof(SFLDataFormat));
|
||||
micData_.put(inputData, samples * sizeof(SFLDataFormat));
|
||||
|
||||
// Store data for synchronization
|
||||
int spkrAvail = spkrData_.AvailForGet(MainBuffer::DEFAULT_ID);
|
||||
int micAvail = micData_.AvailForGet(MainBuffer::DEFAULT_ID);
|
||||
size_t spkrAvail = spkrData_.availableForGet(MainBuffer::DEFAULT_ID);
|
||||
size_t micAvail = micData_.availableForGet(MainBuffer::DEFAULT_ID);
|
||||
|
||||
if ((spkrAvail < (echoDelay_ + byteSize)) or micAvail < byteSize) {
|
||||
micData_.Discard(byteSize, MainBuffer::DEFAULT_ID);
|
||||
micData_.discard(byteSize, MainBuffer::DEFAULT_ID);
|
||||
return 0;
|
||||
}
|
||||
|
||||
spkrData_.Get(tmpSpkr_, byteSize, MainBuffer::DEFAULT_ID);
|
||||
micData_.Get(tmpMic_, byteSize, MainBuffer::DEFAULT_ID);
|
||||
spkrData_.get(tmpSpkr_, byteSize, MainBuffer::DEFAULT_ID);
|
||||
micData_.get(tmpMic_, byteSize, MainBuffer::DEFAULT_ID);
|
||||
|
||||
for (int i = 0; i < EC_FRAME_SIZE; i++) {
|
||||
for (size_t i = 0; i < EC_FRAME_SIZE; ++i) {
|
||||
int32_t tmp = tmpSpkr_[i] * 3;
|
||||
|
||||
if (tmp > SHRT_MAX)
|
||||
@ -118,13 +117,13 @@ int SpeexEchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData
|
||||
speex_echo_cancellation(echoState_, tmpMic_, tmpSpkr_, tmpOut_);
|
||||
speex_preprocess_run(preState_, reinterpret_cast<short *>(tmpOut_));
|
||||
|
||||
for (int i = 0; i < EC_FRAME_SIZE; i++)
|
||||
for (size_t i = 0; i < EC_FRAME_SIZE; i++)
|
||||
tmpOut_[i] *= 3;
|
||||
|
||||
memcpy(outputData, tmpOut_, byteSize);
|
||||
|
||||
spkrAvail = spkrData_.AvailForGet(MainBuffer::DEFAULT_ID);
|
||||
micAvail = micData_.AvailForGet(MainBuffer::DEFAULT_ID);
|
||||
spkrAvail = spkrData_.availableForGet(MainBuffer::DEFAULT_ID);
|
||||
micAvail = micData_.availableForGet(MainBuffer::DEFAULT_ID);
|
||||
|
||||
return EC_FRAME_SIZE;
|
||||
}
|
||||
|
@ -39,20 +39,20 @@ class SpeexEchoCancel {
|
||||
* Add speaker data into internal buffer
|
||||
* \param inputData containing far-end voice data to be sent to speakers
|
||||
*/
|
||||
void putData(SFLDataFormat *, int samples);
|
||||
void putData(SFLDataFormat *, size_t samples);
|
||||
|
||||
/**
|
||||
* Perform echo cancellation using internal buffers
|
||||
* \param inputData containing mixed echo and voice data
|
||||
* \param outputData containing
|
||||
*/
|
||||
int process(SFLDataFormat *, SFLDataFormat *, int samples);
|
||||
int process(SFLDataFormat *, SFLDataFormat *, size_t samples);
|
||||
|
||||
private:
|
||||
NON_COPYABLE(SpeexEchoCancel);
|
||||
|
||||
int echoDelay_;
|
||||
int echoTailLength_;
|
||||
size_t echoDelay_;
|
||||
size_t echoTailLength_;
|
||||
|
||||
SpeexEchoState *echoState_;
|
||||
SpeexPreprocessState *preState_;
|
||||
|
@ -166,9 +166,9 @@ IAXVoIPLink::sendAudioFromMic()
|
||||
|
||||
// we have to get 20ms of data from the mic *20/1000 = /50
|
||||
// rate/50 shall be lower than IAX__20S_48KHZ_MAX
|
||||
int bytesNeeded = mainBufferSampleRate * 20 / 1000 * sizeof(SFLDataFormat);
|
||||
const size_t bytesNeeded = mainBufferSampleRate * 20 / 1000 * sizeof(SFLDataFormat);
|
||||
|
||||
if (Manager::instance().getMainBuffer()->availForGet(currentCall->getCallId()) < bytesNeeded)
|
||||
if (Manager::instance().getMainBuffer()->availableForGet(currentCall->getCallId()) < bytesNeeded)
|
||||
continue;
|
||||
|
||||
// Get bytes from micRingBuffer to data_from_mic
|
||||
|
@ -98,37 +98,37 @@ void MainBufferTest::testRingBufferReadPointer()
|
||||
// test ring buffer read pointers (one per participant)
|
||||
mainbuffer_->createRingBuffer(call_id);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(call_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->hasNoReadPointers());
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(read_id) == (int) NULL);
|
||||
|
||||
// create a read pointer
|
||||
test_ring_buffer->createReadPointer(read_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
CPPUNIT_ASSERT(!test_ring_buffer->hasNoReadPointers());
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(null_id) == (int) NULL);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(read_id) == 0);
|
||||
|
||||
// store read pointer
|
||||
test_ring_buffer->storeReadPointer(4, read_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(read_id) == 4);
|
||||
|
||||
// recreate the same read pointer (should not add a pointer neither chage its value)
|
||||
test_ring_buffer->createReadPointer(read_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
test_ring_buffer->storeReadPointer(8, read_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(read_id) == 8);
|
||||
|
||||
// test getSmallest read pointer (to get the length available to put data in the buffer)
|
||||
test_ring_buffer->createReadPointer(other_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 2);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
test_ring_buffer->storeReadPointer(4, other_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getSmallestReadPointer() == 4);
|
||||
|
||||
// remove read pointers
|
||||
test_ring_buffer->removeReadPointer(other_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
test_ring_buffer->removeReadPointer(read_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->hasNoReadPointers());
|
||||
}
|
||||
|
||||
|
||||
@ -224,71 +224,71 @@ void MainBufferTest::testRingBufferInt()
|
||||
RingBuffer *test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
|
||||
// initial state
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
// add some data
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
// add some other data
|
||||
test_ring_buffer->Put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 2*sizeof(int));
|
||||
test_ring_buffer->put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
int testget = (int) NULL;
|
||||
|
||||
// get some data (without any read pointers)
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testget, sizeof(int), MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->hasNoReadPointers());
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testget, sizeof(int), MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(testget == (int) NULL);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
// get some data (with a read pointer)
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->hasNoReadPointers());
|
||||
test_ring_buffer->createReadPointer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
// add some data
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
|
||||
// add some other data
|
||||
test_ring_buffer->Put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 2*sizeof(int));
|
||||
test_ring_buffer->put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 2*sizeof(int));
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testget, sizeof(int), MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testget, sizeof(int), MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
|
||||
// test flush data
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
|
||||
test_ring_buffer->flush(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 5*sizeof(int));
|
||||
|
||||
// test flush data
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 5*sizeof(int));
|
||||
|
||||
test_ring_buffer->Discard(sizeof(int), MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
test_ring_buffer->discard(sizeof(int), MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 6*sizeof(int));
|
||||
}
|
||||
|
||||
@ -307,60 +307,60 @@ void MainBufferTest::testRingBufferNonDefaultID()
|
||||
RingBuffer* test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
test_ring_buffer->createReadPointer(test_id);
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
test_ring_buffer->Put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 2*sizeof(int));
|
||||
test_ring_buffer->put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
int testget;
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testget, sizeof(int), test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testget, sizeof(int), test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(testget == testint1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(test_id) == sizeof(int));
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testget, 100, test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testget, 100, test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(testget == testint2);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(test_id) == 2*sizeof(int));
|
||||
|
||||
|
||||
// test flush data
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == sizeof(int));
|
||||
|
||||
|
||||
test_ring_buffer->flush(test_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(test_id) == 3*sizeof(int));
|
||||
|
||||
// test flush data
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(test_id) == 3*sizeof(int));
|
||||
|
||||
test_ring_buffer->Discard(sizeof(int), test_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id) == 0);
|
||||
test_ring_buffer->discard(sizeof(int), test_id);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getReadPointer(test_id) == 4*sizeof(int));
|
||||
|
||||
test_ring_buffer->removeReadPointer(test_id);
|
||||
@ -379,25 +379,25 @@ void MainBufferTest::testRingBufferFloat()
|
||||
test_ring_buffer->createReadPointer(MainBuffer::DEFAULT_ID);
|
||||
|
||||
|
||||
test_ring_buffer->Put(&testfloat1, sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(float));
|
||||
test_ring_buffer->put(&testfloat1, sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(float));
|
||||
|
||||
test_ring_buffer->Put(&testfloat2, sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 2*sizeof(float));
|
||||
test_ring_buffer->put(&testfloat2, sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 2*sizeof(float));
|
||||
|
||||
float testget;
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testget, sizeof(float), MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testget, sizeof(float), MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(testget == testfloat1);
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testget, sizeof(float), MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testget, sizeof(float), MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(testget == testfloat2);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
test_ring_buffer->Put(&testfloat1, sizeof(float));
|
||||
test_ring_buffer->put(&testfloat1, sizeof(float));
|
||||
test_ring_buffer->flush(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
|
||||
}
|
||||
|
||||
@ -413,8 +413,8 @@ void MainBufferTest::testTwoPointer()
|
||||
int test_input = 12;
|
||||
int test_output = 0;
|
||||
|
||||
input_buffer->Put(&test_input, sizeof(int));
|
||||
CPPUNIT_ASSERT(output_buffer->Get(&test_output, sizeof(float), MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
input_buffer->put(&test_input, sizeof(int));
|
||||
CPPUNIT_ASSERT(output_buffer->get(&test_output, sizeof(float), MainBuffer::DEFAULT_ID) == sizeof(float));
|
||||
CPPUNIT_ASSERT(test_input == test_output);
|
||||
|
||||
}
|
||||
@ -469,15 +469,15 @@ void MainBufferTest::testBindUnbindBuffer()
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
@ -543,25 +543,25 @@ void MainBufferTest::testBindUnbindBuffer()
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
@ -608,31 +608,31 @@ void MainBufferTest::testBindUnbindBuffer()
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
@ -675,25 +675,25 @@ void MainBufferTest::testBindUnbindBuffer()
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
|
||||
@ -736,21 +736,21 @@ void MainBufferTest::testBindUnbindBuffer()
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointer_.end());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointers_.end());
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointer_.end());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointers_.end());
|
||||
|
||||
CPPUNIT_ASSERT(mainbuffer_->getRingBuffer(test_id2) == NULL);
|
||||
|
||||
@ -799,21 +799,21 @@ void MainBufferTest::testBindUnbindBuffer()
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointer_.end());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointers_.end());
|
||||
|
||||
ringbuffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(ringbuffer != NULL);
|
||||
CPPUNIT_ASSERT(ringbuffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not ringbuffer->hasNoReadPointers());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = ringbuffer->readpointer_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointer_.end());
|
||||
iter_readpointer = ringbuffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer == ringbuffer->readpointers_.end());
|
||||
|
||||
|
||||
}
|
||||
@ -831,22 +831,22 @@ void MainBufferTest::testGetPutDataByID()
|
||||
int test_output = 0;
|
||||
|
||||
// put by MainBuffer::DEFAULT_ID get by test_id without preleminary put
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGetByID(MainBuffer::DEFAULT_ID, test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGetByID(MainBuffer::DEFAULT_ID, test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->getDataByID(&test_output, sizeof(int), MainBuffer::DEFAULT_ID, test_id) == 0);
|
||||
|
||||
// put by MainBuffer::DEFAULT_ID, get by test_id
|
||||
mainbuffer_->putData(&test_input1, sizeof(int), MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGetByID(MainBuffer::DEFAULT_ID, test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGetByID(MainBuffer::DEFAULT_ID, test_id) == sizeof(int));
|
||||
|
||||
// get by MainBuffer::DEFAULT_ID without preliminary input
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGetByID(test_id, MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGetByID(test_id, MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->getDataByID(&test_output, 100, test_id, MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
// pu by test_id get by test_id
|
||||
mainbuffer_->putData(&test_input2, sizeof(int), test_id);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGetByID(test_id, MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGetByID(test_id, MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->getDataByID(&test_output, 100, test_id, MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGetByID(test_id, MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGetByID(test_id, MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_input2 == test_output);
|
||||
|
||||
// put/get by false id
|
||||
@ -872,25 +872,25 @@ void MainBufferTest::testGetPutData()
|
||||
int test_output;
|
||||
|
||||
// get by test_id without preleminary put
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->getData(&test_output, 100, test_id) == 0);
|
||||
|
||||
// put by MainBuffer::DEFAULT_ID, get by test_id
|
||||
mainbuffer_->putData(&test_input1, sizeof(int), MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->getData(&test_output, 100, test_id) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(test_input1 == test_output);
|
||||
|
||||
// get by MainBuffer::DEFAULT_ID without preleminary put
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->getData(&test_output, sizeof(int), MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
// put by test_id, get by MainBuffer::DEFAULT_ID
|
||||
mainbuffer_->putData(&test_input2, sizeof(int), test_id);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->getData(&test_output, 100, MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_input2 == test_output);
|
||||
|
||||
mainbuffer_->unBindCallID(test_id, MainBuffer::DEFAULT_ID);
|
||||
@ -910,13 +910,13 @@ void MainBufferTest::testDiscardFlush()
|
||||
// int init_size;
|
||||
|
||||
mainbuffer_->putData(&test_input1, sizeof(int), test_id);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
mainbuffer_->discard(sizeof(int), MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id) == 0);
|
||||
mainbuffer_->discard(sizeof(int), test_id);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id) == 0);
|
||||
|
||||
CPPUNIT_ASSERT(mainbuffer_->getRingBuffer(test_id)->getReadPointer(MainBuffer::DEFAULT_ID) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->getRingBuffer(test_id)->getReadPointer(test_id) == 0);
|
||||
@ -980,59 +980,59 @@ void MainBufferTest::testRingBufferSeveralPointers()
|
||||
|
||||
int testoutput;
|
||||
|
||||
test_ring_buffer->Put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer2) == sizeof(int));
|
||||
test_ring_buffer->put(&testint1, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer2) == sizeof(int));
|
||||
|
||||
test_ring_buffer->Put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer1) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer2) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer1) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer2) == 2*sizeof(int));
|
||||
test_ring_buffer->put(&testint2, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer1) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer2) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer1) == 2*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer2) == 2*sizeof(int));
|
||||
|
||||
test_ring_buffer->Put(&testint3, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer2) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer2) == 3*sizeof(int));
|
||||
test_ring_buffer->put(&testint3, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer2) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer2) == 3*sizeof(int));
|
||||
|
||||
test_ring_buffer->Put(&testint4, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer1) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLen(test_pointer2) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer1) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer2) == 4*sizeof(int));
|
||||
test_ring_buffer->put(&testint4, sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer1) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getLength(test_pointer2) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer1) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer2) == 4*sizeof(int));
|
||||
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testoutput, sizeof(int), test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testoutput, sizeof(int), test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(testoutput == testint1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer2) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer2) == 4*sizeof(int));
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Get(&testoutput, sizeof(int), test_pointer2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->get(&testoutput, sizeof(int), test_pointer2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(testoutput == testint1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_pointer2) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer1) == 3*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_pointer2) == 3*sizeof(int));
|
||||
|
||||
// However, we should no be alowed to read in our own ring buffer
|
||||
// if we are either an AudioLayer or and RTP session
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 4*sizeof(int));
|
||||
|
||||
// However, we should no be alowed to read in our own ring buffer
|
||||
// if we are either an AudioLayer or and RTP session
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 4*sizeof(int));
|
||||
|
||||
// However, we should no be alowed to read in our own ring buffer
|
||||
// if we are either an AudioLayer or and RTP session
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 4*sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 4*sizeof(int));
|
||||
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Discard(sizeof(int), test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->Discard(sizeof(int), test_pointer2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->discard(sizeof(int), test_pointer1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->discard(sizeof(int), test_pointer2) == sizeof(int));
|
||||
|
||||
test_ring_buffer->removeReadPointer(test_pointer1);
|
||||
test_ring_buffer->removeReadPointer(test_pointer2);
|
||||
@ -1071,13 +1071,13 @@ void MainBufferTest::testConference()
|
||||
// ringbuffers
|
||||
CPPUNIT_ASSERT(mainbuffer_->ringBufferMap_.size() == 2);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
// callidmap
|
||||
@ -1098,21 +1098,21 @@ void MainBufferTest::testConference()
|
||||
// ringbuffers
|
||||
CPPUNIT_ASSERT(mainbuffer_->ringBufferMap_.size() == 3);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 1);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
// callidmap
|
||||
@ -1141,27 +1141,27 @@ void MainBufferTest::testConference()
|
||||
// ringbuffers
|
||||
CPPUNIT_ASSERT(mainbuffer_->ringBufferMap_.size() == 3);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id1);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id2);
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id2);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->getNbReadPointer() == 2);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(not test_ring_buffer->hasNoReadPointers());
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
iter_readpointer = test_ring_buffer->readpointer_.find(test_id1);
|
||||
iter_readpointer = test_ring_buffer->readpointers_.find(test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->first == test_id1);
|
||||
CPPUNIT_ASSERT(iter_readpointer->second == 0);
|
||||
// callidmap
|
||||
@ -1192,69 +1192,69 @@ void MainBufferTest::testConference()
|
||||
// test putData default
|
||||
int testint = 12;
|
||||
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id1) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id2) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id1) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id2) == 0);
|
||||
// put data test ring buffers
|
||||
mainbuffer_->putData(&testint, sizeof(int), MainBuffer::DEFAULT_ID);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id2) == sizeof(int));
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id2) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id2) == 0);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id1) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id1) == 0);
|
||||
// test mainbuffer availforget (get data even if some participant missing)
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id2) == sizeof(int));
|
||||
//putdata test ring buffers
|
||||
mainbuffer_->putData(&testint, 100, test_id1);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id2) == sizeof(int));
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id1) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(MainBuffer::DEFAULT_ID) == 0);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id1) == 0);
|
||||
|
||||
mainbuffer_->putData(&testint, 100, test_id2);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id2) == sizeof(int));
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
// test mainbuffer availforget
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id2) == sizeof(int));
|
||||
|
||||
// test getData default id (audio layer)
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id2) == sizeof(int));
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
// test mainbuffer availforget
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id1) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id2) == sizeof(int));
|
||||
// test getData test_id1 (audio layer)
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLen() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->AvailForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->putLength() == sizeof(int));
|
||||
CPPUNIT_ASSERT(test_ring_buffer->availableForGet(test_id2) == sizeof(int));
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id2);
|
||||
|
||||
// test mainbuffer availforget
|
||||
CPPUNIT_ASSERT(mainbuffer_->availForGet(test_id2) == sizeof(int));
|
||||
CPPUNIT_ASSERT(mainbuffer_->availableForGet(test_id2) == sizeof(int));
|
||||
// test getData test_id2 (audio layer)
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(MainBuffer::DEFAULT_ID);
|
||||
test_ring_buffer = mainbuffer_->getRingBuffer(test_id1);
|
||||
|
Reference in New Issue
Block a user