--- trunk/src/playback.cpp 2006-06-18 21:19:39.000000000 +0200 +++ ../trunk/src/playback.cpp 2006-04-02 00:25:19.000000000 +0200 @@ -26,6 +26,7 @@ #include #include +#include #include "rtaudio/RtAudio.h" #include "libsamplerate/samplerate.h" @@ -47,6 +48,7 @@ Playback *Playback::s_instance = 0; QByteArray *Playback::m_waveBuffer = new QByteArray(); +QFile dumpfile; void WaveThread::run() @@ -57,11 +59,18 @@ while ( Playback::instance()->isPlaying() ) { mutex.lock(); + if (!dumpfile.isOpen()) { + dumpfile.setFileName("tmp.mp3"); + if (!dumpfile.open(QIODevice::WriteOnly )) + return; + } Playback::instance()->m_waveBuffer->reserve( PLAYBACKBUFFER * 2 ); if ( Playback::instance()->m_mp3Buffer->size() >= PLAYBACKBUFFER && Playback::instance()->m_waveBuffer->size() < 32768 ) { QByteArray *in = new QByteArray( Playback::instance()->m_mp3Buffer->left( PLAYBACKBUFFER ) ); + + dumpfile.write(Playback::instance()->m_mp3Buffer->left(PLAYBACKBUFFER), PLAYBACKBUFFER); Playback::instance()->m_mp3Buffer->remove( 0, PLAYBACKBUFFER ); mutex.unlock(); @@ -108,7 +117,7 @@ float pcmValue = (float)pcmData.i * scale; pcmData.i = (short)pcmValue; - + Playback::instance()->m_waveBuffer->append( pcmData.b[0] ); Playback::instance()->m_waveBuffer->append( pcmData.b[1] ); } @@ -417,10 +426,22 @@ // Append it the binary-safe way! mutex.lock(); for ( int i = 0; i < len; i++ ) + { m_mp3Buffer->append( inBuf[ i ] ); + } if ( m_mp3Buffer->indexOf( "SYNC" ) >= 0 ) { + if(dumpfile.isOpen()){ + if ( !m_directSkip) + dumpfile.rename("("+Playback::instance()->playingSong->album()+\ + ") "+ + Playback::instance()->playingSong->artist()+\ + " - "+ + Playback::instance()->playingSong->track()+\ + ".mp3"); + dumpfile.close(); + } WebserviceConnector::instance()->metaData(); if ( m_directSkip )