[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/phonon/phonon
From: Matthias Kretz <kretz () kde ! org>
Date: 2008-11-19 21:03:31
Message-ID: 1227128611.904836.21237.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 886701 by mkretz:
clean out AbstractMediaStream2 remains
M +1 -10 CMakeLists.txt
M +1 -12 mediasource.cpp
M +0 -3 mediasource_p.h
M +17 -126 streaminterface.cpp
M +0 -31 streaminterface.h
M +4 -41 streaminterface_p.h
--- trunk/kdesupport/phonon/phonon/CMakeLists.txt #886700:886701
@@ -14,7 +14,6 @@
phononnamespace.cpp
mediasource.cpp
abstractmediastream.cpp
- #abstractmediastream2.cpp
streaminterface.cpp
mediaobject.cpp
medianode.cpp
@@ -39,15 +38,8 @@
volumeslider.cpp
effectwidget.cpp
iodevicestream.cpp
- lockfreequeue.cpp
- streameventqueue.cpp
)
-if (WIN32)
- list(APPEND phonon_LIB_SRCS
- abstractmediastream2.cpp
- )
-endif(WIN32)
-
+
if (QT_QTDBUS_FOUND)
list(APPEND phonon_LIB_SRCS
audiooutputadaptor.cpp
@@ -81,7 +73,6 @@
${CMAKE_CURRENT_BINARY_DIR}/phononnamespace.h
mediasource.h
abstractmediastream.h
- #abstractmediastream2.h
streaminterface.h
mediaobject.h
audiooutput.h
--- trunk/kdesupport/phonon/phonon/mediasource.cpp #886700:886701
@@ -23,7 +23,7 @@
#include "mediasource.h"
#include "mediasource_p.h"
#include "iodevicestream_p.h"
-#include "abstractmediastream2_p.h"
+#include "abstractmediastream_p.h"
#include <QtCore/QFileInfo>
#include <QtCore/QFile>
@@ -143,9 +143,6 @@
delete stream;
delete ioDevice;
}
- if (streamEventQueue) {
- streamEventQueue->deref();
- }
#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
}
@@ -214,14 +211,6 @@
void MediaSourcePrivate::setStream(AbstractMediaStream *s)
{
stream = s;
-#if 0
- AbstractMediaStream2 *s2 = qobject_cast<AbstractMediaStream2 *>(s);
- if (s2) {
- streamEventQueue = s2->d_func()->streamEventQueue;
- Q_ASSERT(streamEventQueue);
- streamEventQueue->ref();
- }
-#endif
}
#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
--- trunk/kdesupport/phonon/phonon/mediasource_p.h #886700:886701
@@ -26,7 +26,6 @@
#include "mediasource.h"
#include "objectdescription.h"
#include "abstractmediastream.h"
-#include "streameventqueue_p.h"
#include <QtCore/QUrl>
#include <QtCore/QString>
@@ -47,7 +46,6 @@
: type(t), discType(NoDisc),
#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
stream(0),
- streamEventQueue(0),
ioDevice(0),
#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
autoDelete(false)
@@ -72,7 +70,6 @@
// another thread deletes the AbstractMediaStream2. StreamInterface(2) will \
then just get a // StreamEventQueue where nobody answers.
QPointer<AbstractMediaStream> stream;
- StreamEventQueue *streamEventQueue;
// AudioCaptureDevice audioCaptureDevice;
// VideoCaptureDevice videoCaptureDevice;
--- trunk/kdesupport/phonon/phonon/streaminterface.cpp #886700:886701
@@ -22,16 +22,14 @@
#include "streaminterface.h"
#include "streaminterface_p.h"
-#include "abstractmediastream2.h"
+#include "abstractmediastream.h"
#include "abstractmediastream_p.h"
#include "mediasource_p.h"
-#include "phononnamespace_p.h"
-#include <QtCore/QEvent>
-#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
-
QT_BEGIN_NAMESPACE
+#ifndef QT_NO_PHONON_ABSTRACTMEDIASTREAM
+
namespace Phonon
{
@@ -43,66 +41,28 @@
StreamInterface::~StreamInterface()
{
- if (d->streamEventQueue) {
- // better be safe and make the AbstractMediaStream2 not fill the queue \
uselessly
- d->streamEventQueue->sendToFrontend(StreamEventQueue::EnoughData);
-
- // setBackendCommandHandler blocks internally until a handler that might be \
called right
- // now is done. That means StreamInterfacePrivate::dataReady will either not \
run again
- // or it will be done before this object and our d object are deleted.
- d->streamEventQueue->setBackendCommandHandler(0);
- d->streamEventQueue->deref();
- d->streamEventQueue = 0;
- } else if (d->connected) {
+ if (d->connected) {
AbstractMediaStreamPrivate *dd = d->mediaSource.stream()->d_func();
dd->setStreamInterface(0);
}
delete d;
- // if eventDispatcher->wakeUp() was called and we are now still connected to its \
awake() signal
- // then the QObject will be deleted until execution reaches the event loop again \
and
- // handleStreamEvent will not get called
}
void StreamInterface::connectToSource(const MediaSource &mediaSource)
{
Q_ASSERT(!d->connected);
- Q_ASSERT(!d->streamEventQueue);
+ d->connected = true;
d->mediaSource = mediaSource;
Q_ASSERT(d->mediaSource.type() == MediaSource::Stream);
Q_ASSERT(d->mediaSource.stream());
-#if 0
- AbstractMediaStream2 *stream2 = qobject_cast<AbstractMediaStream2 \
*>(d->mediaSource.stream());
- if (stream2) {
- if (!d->qobject) {
- d->qobject = new StreamInterfacePrivateHelper(d);
- }
- if (!d->awakeSignalConnected) {
- d->awakeSignalConnected = true;
- QObject::connect(d->eventDispatcher, SIGNAL(awake()), d->qobject, \
SLOT(_k_handleStreamEvent()), Qt::DirectConnection);
- }
- d->streamEventQueue = mediaSource.d->streamEventQueue;
- d->streamEventQueue->ref();
- d->streamEventQueue->setBackendCommandHandler(d);
- d->streamEventQueue->sendToFrontend(StreamEventQueue::Connect);
- } else {
-#endif
- if (d->awakeSignalConnected) {
- d->awakeSignalConnected = false;
- QObject::disconnect(d->eventDispatcher, SIGNAL(awake()), d->qobject, \
SLOT(_k_handleStreamEvent()));
- }
- d->connected = true;
- AbstractMediaStreamPrivate *dd = d->mediaSource.stream()->d_func();
- dd->setStreamInterface(this);
- d->mediaSource.stream()->reset();
-#if 0
- }
-#endif
+ AbstractMediaStreamPrivate *dd = d->mediaSource.stream()->d_func();
+ dd->setStreamInterface(this);
+ d->mediaSource.stream()->reset();
}
void StreamInterfacePrivate::disconnectMediaStream()
{
Q_ASSERT(connected);
- Q_ASSERT(!streamEventQueue);
connected = false;
// if mediaSource has autoDelete set then it will delete the AbstractMediaStream \
again who's @@ -116,108 +76,39 @@
void StreamInterface::needData()
{
- if (d->streamEventQueue) {
- d->streamEventQueue->sendToFrontend(StreamEventQueue::NeedData, \
quint32(4096));
- } else if (d->connected) {
+ if (d->mediaSource.type() == MediaSource::Stream) {
d->mediaSource.stream()->needData();
}
}
void StreamInterface::enoughData()
{
- if (d->streamEventQueue) {
- d->streamEventQueue->sendToFrontend(StreamEventQueue::EnoughData);
- } else {
- Q_ASSERT(d->connected);
+ Q_ASSERT(d->connected);
+ if (d->mediaSource.type() == MediaSource::Stream) {
d->mediaSource.stream()->enoughData();
}
}
void StreamInterface::seekStream(qint64 offset)
{
- if (d->streamEventQueue) {
- d->streamEventQueue->sendToFrontend(StreamEventQueue::Seek, offset);
- } else {
- Q_ASSERT(d->connected);
+ Q_ASSERT(d->connected);
+ if (d->mediaSource.type() == MediaSource::Stream) {
d->mediaSource.stream()->seekStream(offset);
}
}
void StreamInterface::reset()
{
- if (d->streamEventQueue) {
- d->streamEventQueue->sendToFrontend(StreamEventQueue::Reset);
- } else {
- Q_ASSERT(d->connected);
+ Q_ASSERT(d->connected);
+ if (d->mediaSource.type() == MediaSource::Stream) {
d->mediaSource.stream()->reset();
}
}
-void StreamInterfacePrivate::dataReady()
-{
- Q_ASSERT(eventDispatcher);
- eventDispatcher->wakeUp();
-}
-
-void StreamInterfacePrivate::_k_handleStreamEvent()
-{
- Q_ASSERT(streamEventQueue);
- StreamEventQueue::Command c;
- while (streamEventQueue->nextCommandForBackend(&c)) {
- switch (c.command) {
- case StreamEventQueue::NeedData:
- case StreamEventQueue::EnoughData:
- case StreamEventQueue::Seek:
- case StreamEventQueue::Reset:
- case StreamEventQueue::Connect:
- case StreamEventQueue::SeekDone:
- case StreamEventQueue::ResetDone:
- case StreamEventQueue::ConnectDone:
- pFatal("AbstractMediaStream2 received wrong Command");
- break;
- case StreamEventQueue::SetStreamSize:
- q->setStreamSize(qvariant_cast<quint64>(c.data));
- break;
- case StreamEventQueue::SetSeekable:
- q->setStreamSeekable(qvariant_cast<bool>(c.data));
- break;
- case StreamEventQueue::Write:
- q->writeData(qvariant_cast<QByteArray>(c.data));
- break;
- case StreamEventQueue::EndOfData:
- q->endOfData();
- break;
- }
- }
-}
-
-#if 0
-void StreamInterface2::needData(quint32 size)
-{
- if (d->streamEventQueue) {
- d->streamEventQueue->sendToFrontend(StreamEventQueue::NeedData, size);
- } else if (d->connected) {
- d->mediaSource.stream()->needData();
- }
-}
-
-StreamInterface2::StreamInterface2(QObject *parent)
- : QObject(parent)
-{
- d->qobject = this;
-}
-
-StreamInterface2::~StreamInterface2()
-{
- d->qobject = 0;
-}
-#endif
-
} // namespace Phonon
+#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
+
QT_END_NAMESPACE
-#include "moc_streaminterface.cpp"
-#include "moc_streaminterface_p.cpp"
-#endif //QT_NO_PHONON_ABSTRACTMEDIASTREAM
--- trunk/kdesupport/phonon/phonon/streaminterface.h #886700:886701
@@ -111,37 +111,6 @@
StreamInterfacePrivate *const d;
};
-
-/**
- * \warning Even though AbstractMediaStream2 may be used from any thread, \
StreamInterface2 still has
- * to run in the main thread for compatibility with AbstractMediaStream.
- */
-#if 0
-class PHONON_EXPORT StreamInterface2 : public QObject, public StreamInterface
-{
- friend class StreamInterfacePrivate;
- Q_OBJECT
- public:
- ~StreamInterface2();
-
- /**
- * Call this function to tell the AbstractMediaStream that you need more \
data. The data will
- * arrive through writeData. Don't rely on writeData getting called from \
needData, though
- * some AbstractMediaStream implementations might do so.
- *
- * Depending on the buffering you need you either treat needData as a \
replacement for a
- * read call like QIODevice::read, or you start calling needData whenever \
your buffer
- * reaches a certain lower threshold.
- */
- void needData(quint32);
-
- protected:
- StreamInterface2(QObject *parent = 0);
-
- private:
- Q_PRIVATE_SLOT(d, void _k_handleStreamEvent())
-};
-#endif
} // namespace Phonon
Q_DECLARE_INTERFACE(Phonon::StreamInterface, "StreamInterface1.phonon.kde.org")
--- trunk/kdesupport/phonon/phonon/streaminterface_p.h #886700:886701
@@ -24,10 +24,7 @@
#define STREAMINTERFACE_P_H
#include "streaminterface.h"
-#include "streameventqueue_p.h"
#include "mediasource.h"
-#include <QtCore/QAbstractEventDispatcher>
-#include <QtCore/QObject>
QT_BEGIN_NAMESPACE
@@ -35,57 +32,23 @@
namespace Phonon
{
-
-class StreamInterfacePrivateHelper;
-
-class StreamInterfacePrivate : public LockFreeQueueBase::DataReadyHandler
+class StreamInterfacePrivate
{
friend class StreamInterface;
- friend class StreamInterface2;
- friend class StreamInterfacePrivateHelper;
-
public:
void disconnectMediaStream();
protected:
inline StreamInterfacePrivate()
- : qobject(0),
- streamEventQueue(0),
- eventDispatcher(QAbstractEventDispatcher::instance()),
- connected(false),
- awakeSignalConnected(false)
+ : connected(false)
{
- Q_ASSERT(eventDispatcher);
}
- inline ~StreamInterfacePrivate()
- {
- delete qobject;
- }
-
- virtual void dataReady();
- void _k_handleStreamEvent();
- void handleStreamEvent(QObject *sender);
-
- MediaSource mediaSource;
- QObject *qobject;
StreamInterface *q;
- StreamEventQueue *streamEventQueue;
- QAbstractEventDispatcher *eventDispatcher;
- quint8 connected : 1;
- quint8 awakeSignalConnected : 1;
+ MediaSource mediaSource;
+ bool connected;
};
-class StreamInterfacePrivateHelper : public QObject
-{
- Q_OBJECT
- public:
- StreamInterfacePrivateHelper(StreamInterfacePrivate *qq) : q(qq) {}
-
- private:
- StreamInterfacePrivate *const q;
-};
-
} // namespace Phonon
#endif // QT_NO_PHONON_ABSTRACTMEDIASTREAM
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic