Phonon::AbstractMediaStream

Search for usage in LXR

Phonon::AbstractMediaStream Class Referenceabstract

#include <phonon/AbstractMediaStream>

Inheritance diagram for Phonon::AbstractMediaStream:

Protected Member Functions

 AbstractMediaStream (AbstractMediaStreamPrivate &dd, QObject *parent)
 
 AbstractMediaStream (QObject *parent=nullptr)
 
void endOfData ()
 
virtual Q_INVOKABLE void enoughData ()
 
void error (Phonon::ErrorType errorType, const QString &errorString)
 
virtual Q_INVOKABLE void needData ()=0
 
virtual Q_INVOKABLE void reset ()=0
 
virtual Q_INVOKABLE void seekStream (qint64 offset)
 
void setStreamSeekable (bool)
 
void setStreamSize (qint64)
 
bool streamSeekable () const
 
qint64 streamSize () const
 
void writeData (const QByteArray &data)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Protected Attributes

QScopedPointer< AbstractMediaStreamPrivate > d_ptr
 

Additional Inherited Members

- Public Types inherited from QObject
typedef  QObjectList
 
- Properties inherited from QObject
 objectName
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo () const const
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType)
 
QThreadthread () const const
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 

Detailed Description

Base class for custom media data streams.

Implement this class to provide a custom data stream to the backend. The class supports both, the push and the pull model.

Push:

PushStream::PushStream(QObject *parent)
: AbstractMediaStream(parent), m_timer(new QTimer(this))
{
setStreamSize(getMediaStreamSize());
connect(m_timer, SIGNAL(timeout()), SLOT(moreData()));
m_timer->setInterval(0);
}
void PushStream::moreData()
{
const QByteArray data = getMediaData();
if (data.isEmpty()) {
endOfData();
} else {
writeData(data);
}
}
void PushStream::needData()
{
m_timer->start();
moreData();
}
void PushStream::enoughData()
{
m_timer->stop();
}
Base class for custom media data streams.
bool isEmpty() const const
QObject * parent() const const

Pull:

PullStream::PullStream(QObject *parent)
{
setStreamSize(getMediaStreamSize());
}
void PullStream::needData()
{
const QByteArray data = getMediaData();
if (data.isEmpty()) {
endOfData();
} else {
writeData(data);
}
}
Author
Matthias Kretz kretz.nosp@m.@kde.nosp@m..org

Definition at line 101 of file abstractmediastream.h.

Constructor & Destructor Documentation

◆ ~AbstractMediaStream()

Phonon::AbstractMediaStream::~AbstractMediaStream ( )
override

Definition at line 49 of file abstractmediastream.cpp.

◆ AbstractMediaStream() [1/2]

Phonon::AbstractMediaStream::AbstractMediaStream ( QObject * parent = nullptr)
explicitprotected

Constructs an AbstractMediaStream object with a parent.

Definition at line 35 of file abstractmediastream.cpp.

◆ AbstractMediaStream() [2/2]

Phonon::AbstractMediaStream::AbstractMediaStream ( AbstractMediaStreamPrivate & dd,
QObject * parent )
protected

Definition at line 42 of file abstractmediastream.cpp.

Member Function Documentation

◆ endOfData()

void Phonon::AbstractMediaStream::endOfData ( )
protected

Tells the backend that the media data stream is at its end.

Warning
Don't call this function before the first needData() is emitted.

Definition at line 103 of file abstractmediastream.cpp.

◆ enoughData()

void Phonon::AbstractMediaStream::enoughData ( )
protectedvirtual

Reimplement this function to be notified when the backend has enough data and your stream object may take a break.

This method is important for pushing data to the backend in order to not fill the backend buffer unnecessarily.

Definition at line 126 of file abstractmediastream.cpp.

◆ error()

void Phonon::AbstractMediaStream::error ( Phonon::ErrorType errorType,
const QString & errorString )
protected

If an I/O error occurs you should call this function to make MediaObject go into ErrorState.

See also
MediaObject::errorType()
MediaObject::errorString()

Definition at line 115 of file abstractmediastream.cpp.

◆ needData()

virtual Q_INVOKABLE void Phonon::AbstractMediaStream::needData ( )
protectedpure virtual

Reimplement this function to be notified when the backend needs data.

When this function is called you should try to call writeData or endOfData before returning.

◆ reset()

virtual Q_INVOKABLE void Phonon::AbstractMediaStream::reset ( )
protectedpure virtual

Reimplement this function to reset the stream.

Subsequent calls to writeData should start from the first position of the data unless a seek is requested.

The function is necessary for the case where a non-seekable MediaStream is played more than once. For a seekable stream the implementation can simply call

virtual Q_INVOKABLE void seekStream(qint64 offset)
Reimplement this function if your stream is seekable.

.

◆ seekStream()

void Phonon::AbstractMediaStream::seekStream ( qint64 offset)
protectedvirtual

Reimplement this function if your stream is seekable.

When this function is called the next call to writeData has to be at the requested offset.

Warning
Do not call the parent implementation.

Definition at line 130 of file abstractmediastream.cpp.

◆ setStreamSeekable()

void Phonon::AbstractMediaStream::setStreamSeekable ( bool s)
protected

Sets whether your data stream is seekable.

Defaults to false.

If you set this to true you have to implement the seekStream function.

Definition at line 76 of file abstractmediastream.cpp.

◆ setStreamSize()

void Phonon::AbstractMediaStream::setStreamSize ( qint64 newSize)
protected

Sets the size of the stream in number of bytes.

A negative value means that the length of the stream cannot be known.

Defaults to 0.

This function has to be called. A backend will not call needData() until the stream size is set.

Definition at line 58 of file abstractmediastream.cpp.

◆ streamSeekable()

bool Phonon::AbstractMediaStream::streamSeekable ( ) const
protected

Returns whether your data stream is set as seekable.

Defaults to false.

Definition at line 71 of file abstractmediastream.cpp.

◆ streamSize()

qint64 Phonon::AbstractMediaStream::streamSize ( ) const
protected

Returns the stream size that was set with setStreamSize.

A negative value means that the length of the stream cannot be known.

Defaults to 0.

Definition at line 53 of file abstractmediastream.cpp.

◆ writeData()

void Phonon::AbstractMediaStream::writeData ( const QByteArray & data)
protected

Sends the media data to the backend for decoding.

Warning
Don't call this function before the first needData() is emitted.

Definition at line 89 of file abstractmediastream.cpp.

Member Data Documentation

◆ d_ptr

QScopedPointer<AbstractMediaStreamPrivate> Phonon::AbstractMediaStream::d_ptr
protected

Definition at line 215 of file abstractmediastream.h.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Dec 20 2024 11:49:26 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.