|
CSL
5.2
|
#include <RtpReceiver.h>
Inheritance diagram for csl::RtpReceiver:Public Member Functions | |
| RtpReceiver (unsigned chans=1) | |
| Default constructor initializes an RtpReceiver with default 20ms bufSize. | |
| ~RtpReceiver () | |
| Class destructor. | |
| unsigned | bufferSize () |
| Accessors used by the reader thread. | |
| unsigned | remotePort () |
| void | nextBuffer (Buffer &outputBuffer, unsigned outBufNum) throw (Exception) |
| really compute the next buffer given an offset base channel; this is called by nextBuffer, possibly multiple times | |
| void | setLocalPort (unsigned localPort) |
| void | setBufferSize (unsigned bufferSize) |
| bool | addRtpSource (char *remoteIP, unsigned short remotePort) |
| bool | removeRtpSource () |
| void | printError (int rtperr) |
Public Attributes | |
| RingBuffer | mRtpBuffer |
| The ring buffer between the RTP client and the PortAudio object. | |
| Buffer | mTmpBuffer |
| A temporary buffer used throughout the class. | |
Protected Member Functions | |
| bool | createRtpSession () |
| void | OnRTPPacket (RTPPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| void | OnRTCPCompoundPacket (RTCPCompoundPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| void | OnSSRCCollision (RTPSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp) |
| void | OnCNAMECollision (RTPSourceData *srcdat, const RTPAddress *senderaddress, const u_int8_t *cname, size_t cnamelength) |
| void | OnNewSource (RTPSourceData *srcdat) |
| void | OnRemoveSource (RTPSourceData *srcdat) |
| void | OnTimeout (RTPSourceData *srcdat) |
| void | OnBYETimeout (RTPSourceData *srcdat) |
| void | OnAPPPacket (RTCPAPPPacket *apppacket, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| void | OnUnknownPacketType (RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| void | OnUnknownPacketFormat (RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress) |
| void | OnNoteTimeout (RTPSourceData *srcdat) |
| void | OnBYEPacket (RTPSourceData *srcdat) |
Protected Attributes | |
| unsigned | mNumChans |
| SynchPthread | mRtpMutex |
| unsigned | mBufferFrames |
| the size of the RTP ring buffer (in FRAMES) | |
| unsigned long | mRemoteIP |
| unsigned short | mRemotePort |
| unsigned long | mLocalIP |
| unsigned short | mLocalPort |
| RtpBufferState | mBufferState |
| RTPUDPv4TransmissionParams * | mTransparams |
| RTPSessionParams * | mSessparams |
| RTPIPv4Address * | mAddress |
| unsigned | mLastPacketNumber |
| The ID of the last packet received. | |
Private Member Functions | |
| unsigned | frameRate () |
| void | setFrameRate (unsigned rate) |
| get/set the receiver's frame rate | |
| virtual unsigned | numChannels () |
| void | setNumChannels (unsigned ch) |
| get/set the receiver's number of outputs | |
| BufferCopyPolicy | copyPolicy () |
| void | setCopyPolicy (BufferCopyPolicy ch) |
| get/set the receiver's buffer copy policy | |
| virtual void | nextBuffer (Buffer &outputBuffer) throw (CException) |
| get a buffer of Frames – this is the core CSL "pull" function; the given buffer can be written into, and a changed() message is sent. | |
| virtual bool | isFixed () |
| query whether I'm fixed (StaticVariable overrides this) | |
| virtual bool | isActive () |
| query whether I'm currently active (Envelopes can go inactive) | |
| void | addOutput (UnitGenerator *ugen) |
| add to or return the UGen vector of outputs | |
| void | removeOutput (UnitGenerator *ugen) |
| UGenVector | outputs () |
| virtual unsigned | numOutputs () |
| bool | checkFanOut (Buffer &outputBuffer) throw (CException) |
| check for fan-out and copy previous buffer; return true if fanning out | |
| void | handleFanOut (Buffer &outputBuffer) throw (CException) |
| virtual void | setValue (sample theValue) |
| set/get the value (not allowed in the abstract, useful for static values) | |
| virtual sample | value () |
| virtual void | dump () |
| pretty-print the receiver | |
| virtual void | trigger () |
| void | zeroBuffer (Buffer &outputBuffer, unsigned outBufNum) |
| utility method to zero out an outputBuffer | |
| void | attachObserver (Observer *) |
| (possibly notify obersvers on my death) | |
| void | detachObserver (Observer *) |
| void | changed (void *argument) |
| this is what I send to myself to notify my observers; It's not overridden in general. It results in the observers receiving update() calls < override evaluate to filter updates to the observer map | |
| virtual int | evaluate (void *argument) |
Private Attributes | |
| unsigned | mFrameRate |
| trigger ignored here | |
| unsigned | mNumChannels |
| my "expected" number of output channels | |
| BufferCopyPolicy | mCopyPolicy |
| the policy I use if asked for more or fewer channels | |
| UGenVector | mOutputs |
| the vector of my output UGens | |
| unsigned | mNumOutputs |
| the number of outputs | |
| Buffer * | mOutputCache |
| my past output ring buffer (only used in case of fan-out) | |
| unsigned | mSequence |
| the highest-seen buffer seq number | |
Definition at line 58 of file RtpReceiver.h.
| RtpReceiver::RtpReceiver | ( | unsigned | chans = 1 | ) |
Default constructor initializes an RtpReceiver with default 20ms bufSize.
Definition at line 18 of file RtpReceiver.cpp.
References createRtpSession(), error(), csl::kLogError, csl::logMsg(), mSessparams, and mTransparams.
| RtpReceiver::~RtpReceiver | ( | ) |
Class destructor.
Definition at line 50 of file RtpReceiver.cpp.
References mAddress, mSessparams, and mTransparams.
|
inline |
Accessors used by the reader thread.
Definition at line 67 of file RtpReceiver.h.
References mBufferFrames.
|
inline |
|
virtual |
really compute the next buffer given an offset base channel; this is called by nextBuffer, possibly multiple times
Reimplemented from csl::UnitGenerator.
Definition at line 131 of file RtpReceiver.cpp.
References csl::kBuffering.
| void csl::RtpReceiver::setLocalPort | ( | unsigned | localPort | ) |
| void csl::RtpReceiver::setBufferSize | ( | unsigned | bufferSize | ) |
| bool RtpReceiver::addRtpSource | ( | char * | remoteIP, |
| unsigned short | remotePort | ||
| ) |
Definition at line 84 of file RtpReceiver.cpp.
References mAddress, mRemoteIP, mRemotePort, printError(), and remotePort().
| bool RtpReceiver::removeRtpSource | ( | ) |
Definition at line 106 of file RtpReceiver.cpp.
References mAddress.
| void RtpReceiver::printError | ( | int | rtperr | ) |
Definition at line 112 of file RtpReceiver.cpp.
References csl::kLogError, and csl::logMsg().
Referenced by addRtpSource(), and createRtpSession().
|
protected |
Definition at line 63 of file RtpReceiver.cpp.
References csl::CGestalt::frameRate(), csl::UnitGenerator::mFrameRate, mLocalPort, mSessparams, mTransparams, printError(), and TRUE.
Referenced by RtpReceiver().
|
protectedinherited |
Definition at line 161 of file CslRtpSession.cpp.
References csl::Interleaver::deinterleave(), csl::CslRtpSession::mRtpBuffer, csl::CslRtpSession::mTmpBuffer, csl::Buffer::setSizeOnly(), and csl::RingBuffer::writeBuffer().
|
protectedinherited |
Definition at line 58 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 234 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 238 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 244 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 253 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 260 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 267 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 274 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 282 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 289 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 296 of file CslRtpSession.cpp.
|
protectedinherited |
Definition at line 303 of file CslRtpSession.cpp.
|
inlineinherited |
Definition at line 225 of file CSL_Core.h.
References csl::UnitGenerator::mFrameRate.
Referenced by csl::CASoundFile::dump(), csl::Abst_SoundFile::dump(), csl::SoundCue::dump(), csl::Filter::init(), csl::SndFileInstrument::playNote(), and csl::SndFileInstrument::playOSC().
|
inlineinherited |
get/set the receiver's frame rate
Definition at line 226 of file CSL_Core.h.
References csl::UnitGenerator::mFrameRate.
Referenced by m3_header().
|
inlinevirtualinherited |
Reimplemented in csl::Splitter, and csl::Stereoverb.
Definition at line 228 of file CSL_Core.h.
References csl::UnitGenerator::mNumChannels.
Referenced by csl::AmbisonicMixer::addInput(), csl::BlockResizer::BlockResizer(), csl::Port::checkBuffer(), csl::Effect::Effect(), csl::AmbisonicRotator::initialize(), csl::AmbisonicDecoder::initialize(), m3_output(), csl::Mixer::nextBuffer(), and csl::SpatialSource::SpatialSource().
|
inlineinherited |
get/set the receiver's number of outputs
Definition at line 229 of file CSL_Core.h.
References csl::UnitGenerator::mNumChannels.
Referenced by csl::BinauralPanner::BinauralPanner(), m3_output(), csl::Spatializer::Spatializer(), csl::VBAP::speakerLayoutChanged(), and csl::VBAP::VBAP().
|
inlineinherited |
Definition at line 231 of file CSL_Core.h.
References csl::UnitGenerator::mCopyPolicy.
|
inlineinherited |
get/set the receiver's buffer copy policy
Definition at line 232 of file CSL_Core.h.
References csl::UnitGenerator::mCopyPolicy.
Referenced by csl::AmbisonicPanner::AmbisonicPanner(), csl::BinauralPanner::BinauralPanner(), csl::AmbisonicUnitGenerator::initOrder(), csl::Noise::Noise(), csl::PinkNoise::PinkNoise(), csl::Spatializer::Spatializer(), and csl::VBAP::VBAP().
|
virtualinherited |
get a buffer of Frames – this is the core CSL "pull" function; the given buffer can be written into, and a changed() message is sent.
Reimplemented in csl::Joiner, csl::Splitter, csl::FanOut, csl::SoundCue, csl::Stereoverb, csl::StereoWidth, csl::Abst_SoundFile, csl::NtoMPanner, csl::RemoteStream, csl::LSoundFile, csl::BufferStream, csl::GrainPlayer, csl::Panner, csl::RingBuffer, csl::Instrument, csl::VBAP, csl::IFFT, csl::SpatialSource, csl::BinauralPanner, csl::InOut, csl::Spatializer, csl::Mixer, csl::SpatialPanner, csl::DecodedFile, csl::RingBufferTap, csl::AmbisonicPanner, csl::BlockResizer, csl::FFT, csl::DelayLine, csl::SimplePanner, csl::SimplePanner, and csl::Microphone.
Definition at line 576 of file CSL_Core.cpp.
References csl::kCopy, csl::kExpand, csl::kIgnore, csl::logMsg(), and memcpy().
Referenced by csl::DistanceSimulator::nextBuffer(), csl::RingBufferTap::nextBuffer(), csl::Mixer::nextBuffer(), csl::AmbisonicMixer::nextBuffer(), csl::SpatialSource::nextBuffer(), csl::BufferStream::nextBuffer(), csl::Controllable::pullInput(), csl::PAIO::test(), and csl::FileIO::writeNextBuffer().
|
inlinevirtualinherited |
query whether I'm fixed (StaticVariable overrides this)
Reimplemented in csl::StaticVariable, and csl::BinaryOp.
Definition at line 247 of file CSL_Core.h.
|
inlinevirtualinherited |
query whether I'm currently active (Envelopes can go inactive)
Reimplemented in csl::Joiner, csl::Effect, csl::RandEnvelope, csl::SoundCue, csl::Stereoverb, csl::Abst_SoundFile, csl::Envelope, csl::Instrument, csl::Mixer, and csl::KarplusString.
Definition at line 249 of file CSL_Core.h.
Referenced by csl::Instrument::isActive(), csl::Port::isActive(), csl::Mixer::nextBuffer(), csl::BinauralPanner::nextBuffer(), csl::AmbisonicMixer::nextBuffer(), and csl::VBAP::nextBuffer().
|
inherited |
add to or return the UGen vector of outputs
Definition at line 520 of file CSL_Core.cpp.
References csl::Buffer::allocateBuffers(), csl::CGestalt::maxBufferFrames(), csl::UnitGenerator::mNumOutputs, csl::UnitGenerator::mOutputCache, and csl::UnitGenerator::mOutputs.
Referenced by csl::Mixer::addInput(), csl::Controllable::addInput(), csl::AmbisonicRotator::initialize(), csl::AmbisonicDecoder::initialize(), csl::AmbisonicEncoder::setInput(), and csl::IO::setRoot().
|
inherited |
Definition at line 530 of file CSL_Core.cpp.
References csl::UnitGenerator::mNumOutputs, and csl::UnitGenerator::mOutputs.
Referenced by csl::IO::clearRoot(), csl::AmbisonicEncoder::setInput(), csl::AmbisonicDecoder::~AmbisonicDecoder(), and csl::AmbisonicRotator::~AmbisonicRotator().
|
inlineinherited |
Definition at line 253 of file CSL_Core.h.
References csl::UnitGenerator::mOutputs.
|
inlinevirtualinherited |
Definition at line 254 of file CSL_Core.h.
References csl::UnitGenerator::mNumOutputs.
|
inherited |
check for fan-out and copy previous buffer; return true if fanning out
Definition at line 549 of file CSL_Core.cpp.
|
inherited |
Definition at line 563 of file CSL_Core.cpp.
References csl_max.
|
inlinevirtualinherited |
set/get the value (not allowed in the abstract, useful for static values)
Reimplemented in csl::DynamicVariable, and csl::StaticVariable.
Definition at line 260 of file CSL_Core.h.
|
inlinevirtualinherited |
Reimplemented in csl::StaticVariable.
Definition at line 261 of file CSL_Core.h.
|
virtualinherited |
pretty-print the receiver
Reimplemented in csl::RandEnvelope, csl::SumOfSines, csl::SoundCue, csl::Abst_SoundFile, csl::Envelope, csl::Filter, csl::VBAP, csl::SineAsScaled, csl::LineSegment, csl::SpatialSource, csl::SineAsPhased, csl::Mixer, csl::Window, csl::KarplusString, csl::Oscillator, csl::AmbisonicPanner, csl::BinaryOp, csl::Lorenz, csl::Clipper, csl::CASoundFile, and csl::Noise.
Definition at line 543 of file CSL_Core.cpp.
References csl::logMsg(), and csl::UnitGenerator::mOutputs.
Referenced by csl::Port::dump(), dumpTest(), and testSimpleSines().
|
inlinevirtualinherited |
Reimplemented in csl::Joiner, csl::Effect, csl::RandEnvelope, csl::SoundCue, csl::Abst_SoundFile, csl::Envelope, csl::LineSegment, and csl::KarplusString.
Definition at line 264 of file CSL_Core.h.
Referenced by csl::Instrument::play(), csl::Instrument::release(), and csl::Port::trigger().
|
protectedinherited |
utility method to zero out an outputBuffer
Definition at line 513 of file CSL_Core.cpp.
References csl::Buffer::mMonoBufferByteSize, and csl::Buffer::monoBuffer().
|
inherited |
(possibly notify obersvers on my death)
register/remove observers
Definition at line 491 of file CGestalt.cpp.
References csl::logMsg(), csl::Observer::mKey, and csl::Observer::mPeriod.
Referenced by csl::SpatialPanner::setSpeakerLayout().
|
inherited |
Definition at line 507 of file CGestalt.cpp.
References csl::logMsg().
Referenced by csl::SpatialPanner::setSpeakerLayout(), and csl::SpatialPanner::~SpatialPanner().
|
inherited |
this is what I send to myself to notify my observers; It's not overridden in general. It results in the observers receiving update() calls < override evaluate to filter updates to the observer map
Definition at line 529 of file CGestalt.cpp.
References csl::logMsg().
Referenced by csl::SpeakerLayout::addSpeaker(), csl::MIDIIn::handleIncomingMidiMessage(), and csl::SpeakerLayout::setDefaultSpeakerLayout().
|
inlinevirtualinherited |
Reimplemented in csl::MIDIIn.
Definition at line 259 of file CGestalt.h.
|
protected |
Definition at line 83 of file RtpReceiver.h.
|
protected |
Definition at line 84 of file RtpReceiver.h.
|
protected |
the size of the RTP ring buffer (in FRAMES)
Definition at line 85 of file RtpReceiver.h.
Referenced by bufferSize().
|
protected |
Definition at line 87 of file RtpReceiver.h.
Referenced by addRtpSource().
|
protected |
Definition at line 88 of file RtpReceiver.h.
Referenced by addRtpSource(), and remotePort().
|
protected |
Definition at line 89 of file RtpReceiver.h.
|
protected |
Definition at line 90 of file RtpReceiver.h.
Referenced by createRtpSession().
|
protected |
Definition at line 92 of file RtpReceiver.h.
|
protected |
Definition at line 94 of file RtpReceiver.h.
Referenced by createRtpSession(), RtpReceiver(), and ~RtpReceiver().
|
protected |
Definition at line 95 of file RtpReceiver.h.
Referenced by createRtpSession(), RtpReceiver(), and ~RtpReceiver().
|
protected |
Definition at line 96 of file RtpReceiver.h.
Referenced by addRtpSource(), removeRtpSource(), and ~RtpReceiver().
|
protected |
The ID of the last packet received.
Definition at line 98 of file RtpReceiver.h.
|
inherited |
The ring buffer between the RTP client and the PortAudio object.
Definition at line 56 of file CslRtpSession.h.
Referenced by csl::CslRtpSession::OnRTPPacket().
|
inherited |
A temporary buffer used throughout the class.
Definition at line 57 of file CslRtpSession.h.
Referenced by csl::CslRtpSession::CslRtpSession(), csl::CslRtpSession::OnRTPPacket(), and csl::CslRtpSession::~CslRtpSession().
|
protectedinherited |
trigger ignored here
the frame rate – initialized to be the default by the constructor
Definition at line 264 of file CSL_Core.h.
Referenced by csl::Abst_SoundFile::convertRate(), csl::RtpSender::createRtpSession(), createRtpSession(), csl::Lorenz::dump(), csl::Abst_SoundFile::durationInSecs(), csl::UnitGenerator::frameRate(), csl::Filter::init(), csl::CASoundFile::initFromSndfile(), csl::JSoundFile::initFromSndfile(), csl::LSoundFile::initFromSndfile(), csl::RandEnvelope::nextSegment(), csl::SquareBL::nextWaveInto(), csl::SumOfSines::nextWaveInto(), csl::CASoundFile::openForRead(), csl::MP3File::openForRead(), csl::DelayLine::setDelayTime(), csl::UnitGenerator::setFrameRate(), csl::Abst_SoundFile::setStartSec(), csl::Abst_SoundFile::setStopSec(), csl::Butter::setupCoeffs(), csl::Formant::setupCoeffs(), csl::Notch::setupCoeffs(), csl::Moog::setupCoeffs(), and csl::DecodedFile::writeBuffer().
|
protectedinherited |
my "expected" number of output channels
Definition at line 268 of file CSL_Core.h.
Referenced by csl::AmbisonicMixer::addInput(), csl::Mixer::allocateOpBuffer(), csl::AmbisonicDecoder::asProjection(), csl::AmbisonicDecoder::asPseudoInverse(), csl::BlockResizer::BlockResizer(), csl::Abst_SoundFile::channels(), csl::Abst_SoundFile::checkBuffer(), csl::DecodedFile::checkBufferStack(), csl::FMInstrument::FMInstrument(), csl::GrainPlayer::GrainPlayer(), csl::AdditiveInstrument::init(), csl::JSoundFile::initFromSndfile(), csl::LSoundFile::initFromSndfile(), csl::AmbisonicMixer::initialize(), csl::SndFileInstrument::initialize(), csl::AmbisonicRotator::initialize(), csl::AmbisonicEncoder::initialize(), csl::AmbisonicDecoder::initialize(), csl::AmbisonicUnitGenerator::initOrder(), csl::RemoteStream::initPacket(), csl::Joiner::isActive(), csl::AmbisonicDecoder::makeInPhase(), csl::AmbisonicDecoder::makeMaxRE(), csl::DecodedFile::mergeBuffers(), csl::Abst_SoundFile::mergeToMono(), csl::Mixer::Mixer(), csl::UnitGenerator::numChannels(), csl::CASoundFile::openForRead(), csl::MP3File::openForRead(), csl::Panner::Panner(), csl::CASoundFile::readBufferFromFile(), csl::JSoundFile::readBufferFromFile(), csl::LSoundFile::readBufferFromFile(), csl::RemoteStream::RemoteStream(), csl::UnitGenerator::setNumChannels(), csl::WavetableOscillator::setWaveform(), csl::Joiner::trigger(), csl::DecodedFile::writeBuffer(), and csl::AmbisonicRotator::~AmbisonicRotator().
|
protectedinherited |
the policy I use if asked for more or fewer channels
Definition at line 269 of file CSL_Core.h.
Referenced by csl::UnitGenerator::copyPolicy(), and csl::UnitGenerator::setCopyPolicy().
|
protectedinherited |
the vector of my output UGens
Definition at line 270 of file CSL_Core.h.
Referenced by csl::UnitGenerator::addOutput(), csl::UnitGenerator::dump(), csl::UnitGenerator::outputs(), and csl::UnitGenerator::removeOutput().
|
protectedinherited |
the number of outputs
Definition at line 271 of file CSL_Core.h.
Referenced by csl::UnitGenerator::addOutput(), csl::UnitGenerator::numOutputs(), and csl::UnitGenerator::removeOutput().
|
protectedinherited |
my past output ring buffer (only used in case of fan-out)
Definition at line 272 of file CSL_Core.h.
Referenced by csl::UnitGenerator::addOutput().
|
protectedinherited |
the highest-seen buffer seq number
Definition at line 273 of file CSL_Core.h.