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

List:       kde-commits
Subject:    kdelibs/arts/kde
From:       Matthias Welwarsky <matze () stud ! fbi ! fh-darmstadt ! de>
Date:       2002-12-08 10:46:08
[Download RAW message or body]

CVS commit by welwarsky: 

fix for BR50183, BR51398


  M +8 -4      kioinputstream_impl.cpp   1.26
  M +1 -0      kioinputstream_impl.h   1.19
  M +10 -4     kplayobjectcreator.cc   1.3
  M +1 -0      kplayobjectcreator.h   1.2


--- kdelibs/arts/kde/kplayobjectcreator.cc   1.3:
@@ -92,7 +92,13 @@ void KDE::PlayObjectCreator::slotMimeTyp
                 emit playObjectCreated(Arts::PlayObject::null());
 
-        emit playObjectCreated (
-                m_server.createPlayObjectForStream(
-                m_instream, std::string(mimetype_copy.latin1()), m_createBUS)
-                );
+        playObject = m_server.createPlayObjectForStream( 
+                                        m_instream,
+                                        std::string( mimetype_copy.latin1() ),
+                                        m_createBUS );
+        if ( playObject.isNull() ) {
+                m_instream.streamEnd();
+                emit playObjectCreated( Arts::PlayObject::null() );
+                return;
+        }
+        emit playObjectCreated( playObject );
 }
--- kdelibs/arts/kde/kplayobjectcreator.h   1.2:
@@ -48,4 +48,5 @@ private:
         Arts::SoundServerV2 m_server;
         Arts::KIOInputStream m_instream;
+        Arts::PlayObject playObject;
         bool m_createBUS;
 };
--- kdelibs/arts/kde/kioinputstream_impl.cpp   1.26:
@@ -42,7 +42,7 @@
 using namespace Arts;
 
-const unsigned int KIOInputStream_impl::PACKET_COUNT = 5;
+const unsigned int KIOInputStream_impl::PACKET_COUNT = 10;
 
-KIOInputStream_impl::KIOInputStream_impl() : m_packetSize(1024)
+KIOInputStream_impl::KIOInputStream_impl() : m_packetSize(2048)
 {
         m_job = 0;
@@ -53,4 +53,5 @@ KIOInputStream_impl::KIOInputStream_impl
         m_streamStarted = false;
         m_streamSuspended = false;
+        m_streamPulled = false;
 }
 
@@ -102,9 +103,11 @@ void KIOInputStream_impl::streamEnd()
                                  this, SLOT(slotScanMimeType(KIO::Job *, const \
QString &)));  
+                if ( m_streamPulled )
+                        outdata.endPull();
+
                 m_job->kill();
                 m_job = 0;
         }       
 
-        outdata.endPull();
         m_streamStarted = false;
 }
@@ -187,8 +190,9 @@ void KIOInputStream_impl::processQueue()
         if (!m_firstBuffer) {
                 if(m_data.size() < (m_packetBuffer * m_packetSize * 2) ) {
-                        kdDebug() << "STREAMING: Buffering in progress... (Needed \
bytes before it starts to play: " << ((m_packetBuffer * m_packetSize) - \
m_data.size()) << ")" << endl; +                        kdDebug() << "STREAMING: \
Buffering in progress... (Needed bytes before it starts to play: " << \
((m_packetBuffer * m_packetSize * 2) - m_data.size()) << ")" << endl;  return;
                 } else {
                         m_firstBuffer = true;
+                        m_streamPulled = true;
                         outdata.setPull(PACKET_COUNT, m_packetSize);
                 } 
--- kdelibs/arts/kde/kioinputstream_impl.h   1.19:
@@ -75,4 +75,5 @@ private:
         bool m_streamStarted;
         bool m_streamSuspended;
+        bool m_streamPulled;
 
         unsigned int m_packetBuffer;


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

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