kwave  18.07.70
Kwave::MultiTrackSink< SINK, INITIALIZE > Class Template Reference

#include <MultiTrackSink.h>

Inheritance diagram for Kwave::MultiTrackSink< SINK, INITIALIZE >:
Inheritance graph
Collaboration diagram for Kwave::MultiTrackSink< SINK, INITIALIZE >:
Collaboration graph

Public Member Functions

 MultiTrackSink (unsigned int tracks, QObject *parent=Q_NULLPTR)
 
virtual ~MultiTrackSink () Q_DECL_OVERRIDE
 
virtual bool done () const Q_DECL_OVERRIDE
 
virtual unsigned int tracks () const Q_DECL_OVERRIDE
 
virtual SINK * at (unsigned int track) const
 
virtual SINK * operator[] (unsigned int track) Q_DECL_OVERRIDE
 
virtual bool insert (unsigned int track, SINK *sink)
 
virtual void clear ()
 
- Public Member Functions inherited from Kwave::SampleSink
 SampleSink (QObject *parent=Q_NULLPTR)
 
virtual ~SampleSink ()
 
- Public Member Functions inherited from Kwave::StreamObject
 StreamObject (QObject *parent=Q_NULLPTR)
 
virtual ~StreamObject ()
 
virtual unsigned int tracksOfPort (const char *port) const
 
virtual Kwave::StreamObjectport (const char *port, unsigned int track)
 
virtual unsigned int blockSize () const
 
void setAttribute (const char *attribute, const QVariant &value)
 

Additional Inherited Members

- Signals inherited from Kwave::StreamObject
void attributeChanged (const QVariant value)
 
- Static Public Member Functions inherited from Kwave::StreamObject
static void setInteractive (bool interactive)
 

Detailed Description

template<class SINK, const bool INITIALIZE>
class Kwave::MultiTrackSink< SINK, INITIALIZE >

Definition at line 34 of file MultiTrackSink.h.

Constructor & Destructor Documentation

◆ MultiTrackSink()

template<class SINK, const bool INITIALIZE>
Kwave::MultiTrackSink< SINK, INITIALIZE >::MultiTrackSink ( unsigned int  tracks,
QObject *  parent = Q_NULLPTR 
)
inline

Constructor

Parameters
tracksnumber of tracks
parenta parent object, passed to QObject (optional)

Definition at line 43 of file MultiTrackSink.h.

44  :Kwave::SampleSink(parent),
45  QList<SINK *>()
46  {
47  Q_UNUSED(tracks);
48  Q_ASSERT(INITIALIZE || (tracks == 0));
49  Q_ASSERT(QList<SINK *>::size() == static_cast<int>(tracks));
50  }
virtual unsigned int tracks() const Q_DECL_OVERRIDE

◆ ~MultiTrackSink()

template<class SINK, const bool INITIALIZE>
virtual Kwave::MultiTrackSink< SINK, INITIALIZE >::~MultiTrackSink ( )
inlinevirtual

Destructor

Reimplemented in Kwave::MultiTrackSink< SINK, true >.

Definition at line 53 of file MultiTrackSink.h.

54  {
55  clear();
56  }
virtual void clear()

Member Function Documentation

◆ at()

template<class SINK, const bool INITIALIZE>
virtual SINK* Kwave::MultiTrackSink< SINK, INITIALIZE >::at ( unsigned int  track) const
inlinevirtual

Returns the sink that corresponds to one specific track if the object has multiple tracks. For single-track objects it returns "this" for the first index and 0 for all others

Definition at line 81 of file MultiTrackSink.h.

Referenced by Kwave::OpusDecoder::close(), Kwave::OpusDecoder::decode(), Kwave::OpusEncoder::fillInBuffer(), Kwave::MultiTrackSink< SINK, false >::insert(), and Kwave::MultiTrackSink< SINK, false >::operator[]().

81  {
82  return QList<SINK *>::at(track);
83  }
Here is the caller graph for this function:

◆ clear()

template<class SINK, const bool INITIALIZE>
virtual void Kwave::MultiTrackSink< SINK, INITIALIZE >::clear ( )
inlinevirtual

Remove all tracks / sinks

Reimplemented in Kwave::MultiWriter.

Definition at line 103 of file MultiTrackSink.h.

Referenced by Kwave::MultiWriter::clear(), and Kwave::MultiTrackSink< SINK, false >::~MultiTrackSink().

103  {
104  while (!QList<SINK *>::isEmpty())
105  delete QList<SINK *>::takeLast();
106  }
Here is the caller graph for this function:

◆ done()

template<class SINK, const bool INITIALIZE>
virtual bool Kwave::MultiTrackSink< SINK, INITIALIZE >::done ( ) const
inlinevirtual

Returns true when all sinks are done

Reimplemented from Kwave::SampleSink.

Definition at line 59 of file MultiTrackSink.h.

60  {
61  foreach (Kwave::SampleSink *s,
62  static_cast< QList<SINK *> >(*this))
63  if (s && !s->done()) return false;
64  return true;
65  }
virtual bool done() const
Definition: SampleSink.h:52

◆ insert()

template<class SINK, const bool INITIALIZE>
virtual bool Kwave::MultiTrackSink< SINK, INITIALIZE >::insert ( unsigned int  track,
SINK *  sink 
)
inlinevirtual

Insert a new track with a sink.

Parameters
trackindex of the track [0...N-1]
sinkpointer to a Kwave::SampleSink
Returns
true if successful, false if failed

Reimplemented in Kwave::MultiWriter.

Definition at line 97 of file MultiTrackSink.h.

Referenced by Kwave::MultiWriter::insert(), and Kwave::MultiTrackSink< SINK, true >::MultiTrackSink().

97  {
98  QList<SINK *>::insert(track, sink);
99  return (at(track) == sink);
100  }
virtual SINK * at(unsigned int track) const
Here is the caller graph for this function:

◆ operator[]()

template<class SINK, const bool INITIALIZE>
virtual SINK* Kwave::MultiTrackSink< SINK, INITIALIZE >::operator[] ( unsigned int  track)
inlinevirtual
See also
the Kwave::MultiTrackSink.at()...

Reimplemented from Kwave::StreamObject.

Definition at line 86 of file MultiTrackSink.h.

86  {
87  return at(track);
88  }
virtual SINK * at(unsigned int track) const

◆ tracks()

template<class SINK, const bool INITIALIZE>
virtual unsigned int Kwave::MultiTrackSink< SINK, INITIALIZE >::tracks ( ) const
inlinevirtual

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