[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kdelibs-phonon/phonon
From:       Matthias Kretz <kretz () kde ! org>
Date:       2006-01-17 10:43:07
Message-ID: 1137494587.474833.9296.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 499223 by mkretz:

implement the iface wrapper and adjust the iface header to the public API


 M  +87 -1     bytestream.cpp  
 M  +1 -1      bytestream.h  
 M  +21 -7     ifaces/bytestream.h  


--- branches/work/kdelibs-phonon/phonon/bytestream.cpp #499222:499223
@@ -1,5 +1,5 @@
 /*  This file is part of the KDE project
-    Copyright (C) 2005 Matthias Kretz <kretz@kde.org>
+    Copyright (C) 2005-2006 Matthias Kretz <kretz@kde.org>
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -24,12 +24,89 @@
 {
 class ByteStream::Private
 {
+	public:
+		Private()
+			: aboutToFinishTime( 0 )
+			, streamSize( -1 )
+			, streamSeekable( false )
+		{ }
+
+		long aboutToFinishTime;
+		long streamSize;
+		bool streamSeekable;
 };
 
 PHONON_HEIR_IMPL( ByteStream, AbstractMediaProducer, AbstractMediaProducer )
 
+long ByteStream::totalTime() const
+{
+	return m_iface ? m_iface->totalTime() : -1;
+}
+
+long ByteStream::remainingTime() const
+{
+	return m_iface ? m_iface->remainingTime() : -1;
+}
+
+long ByteStream::aboutToFinishTime() const
+{
+	return m_iface ? m_iface->aboutToFinishTime() : d->aboutToFinishTime;
+}
+
+long ByteStream::streamSize() const
+{
+	return m_iface ? m_iface->streamSize() : d->streamSize;
+}
+
+bool ByteStream::streamSeekable() const
+{
+	return m_iface ? m_iface->streamSeekable() : d->streamSeekable;
+}
+
+void ByteStream::setStreamSeekable( bool seekable )
+{
+	if( m_iface )
+		m_iface->setStreamSeekable( seekable );
+	else
+		d->streamSeekable = seekable;
+}
+
+void ByteStream::writeData( const QByteArray& data )
+{
+	if( iface() )
+		m_iface->writeData( data );
+}
+
+void ByteStream::setStreamSize( long streamSize )
+{
+	if( m_iface )
+		m_iface->setStreamSize( streamSize );
+	else
+		d->streamSize = streamSize;
+}
+
+void ByteStream::endOfData()
+{
+	if( iface() )
+		m_iface->endOfData();
+}
+
+void ByteStream::setAboutToFinishTime( long newAboutToFinishTime )
+{
+	if( m_iface )
+		m_iface->setAboutToFinishTime( newAboutToFinishTime );
+	else
+		d->aboutToFinishTime = newAboutToFinishTime;
+}
+
 bool ByteStream::aboutToDeleteIface()
 {
+	if( m_iface )
+	{
+		d->aboutToFinishTime = m_iface->aboutToFinishTime();
+		d->streamSize = m_iface->streamSize();
+		d->streamSeekable = m_iface->streamSeekable();
+	}
 	return AbstractMediaProducer::aboutToDeleteIface();
 }
 
@@ -39,6 +116,15 @@
 
 	if( !m_iface )
 		return;
+
+	connect( m_iface->qobject(), SIGNAL( finished() ), SIGNAL( finished() ) );
+	connect( m_iface->qobject(), SIGNAL( aboutToFinish( long ) ), SIGNAL( aboutToFinish( long ) ) );
+	connect( m_iface->qobject(), SIGNAL( length( long ) ), SIGNAL( length( long ) ) );
+	connect( m_iface->qobject(), SIGNAL( needData() ), SIGNAL( needData() ) );
+	connect( m_iface->qobject(), SIGNAL( enoughData() ), SIGNAL( enoughData() ) );
+	connect( m_iface->qobject(), SIGNAL( seekStream( long ) ), SIGNAL( seekStream( long ) ) );
+
+	m_iface->setAboutToFinishTime( d->aboutToFinishTime );
 }
 
 } //namespace Phonon
--- branches/work/kdelibs-phonon/phonon/bytestream.h #499222:499223
@@ -54,6 +54,7 @@
 			 */
 			bool streamSeekable() const;
 
+		public slots:
 			/**
 			 * Tell the object whether you will support seeking in the
 			 * datastream. If you do, you have to react to the seekStream
@@ -68,7 +69,6 @@
 			 */
 			void setStreamSeekable( bool seekable );
 
-		public slots:
 			void writeData( const QByteArray& data );
 
 			/**
--- branches/work/kdelibs-phonon/phonon/ifaces/bytestream.h #499222:499223
@@ -33,21 +33,35 @@
 		public:
 			virtual ~ByteStream() {}
 
-			//virtual void writeBuffer( const QByteArray& buffer ) = 0;
+			virtual long totalTime() const = 0;
+			virtual long remainingTime() const = 0;
+			virtual long aboutToFinishTime() const = 0;
+			virtual long streamSize() const = 0;
+			virtual bool streamSeekable() const = 0;
 
+			virtual void setStreamSeekable( bool ) = 0;
+			virtual void writeData( const QByteArray& data ) = 0;
+
 			/**
-			 * Called when there will be no more calls to writeBuffer
+			 * Sets the total number of bytes that will be streamed via
+			 * writeData
 			 */
-			//virtual void endOfData() = 0;
+			virtual void setStreamSize( long ) = 0;
 
 			/**
-			 * Sets the total number of bytes that will be streamed via
-			 * writeBuffer
+			 * Called when there will be no more calls to writeBuffer
 			 */
-			//virtual void toBeWritten() = 0;
+			virtual void endOfData() = 0;
 
+			virtual void setAboutToFinishTime( long ) = 0;
+
 		protected: //signals
-			//virtual void bufferUnderrun() = 0;
+			virtual void finished() = 0;
+			virtual void aboutToFinish( long ) = 0;
+			virtual void length( long ) = 0;
+			virtual void needData() = 0;
+			virtual void enoughData() = 0;
+			virtual void seekStream( long ) = 0;
 
 		private:
 			class Private;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic