rendered paste body--- 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 <QMessageBox>
#include <unistd.h>
+#include <QFile>
#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 )