Diffstat (limited to 'core/multimedia/opieplayer/wavplugin/wavplugin.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavplugin.cpp | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp index 4e82900..7f3a0a8 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp @@ -10,31 +10,39 @@ ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ // L.J.Potter added changes Fri 02-15-2002 + +#include "wavplugin.h" + +/* OPIE */ +#include <opie2/odebug.h> + +/* QT */ +#include <qfile.h> + +/* STD */ #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> -#include <qfile.h> -#include "wavplugin.h" //#define debugMsg(a) qDebug(a) #define debugMsg(a) struct RiffChunk { char id[4]; Q_UINT32 size; char data[4]; }; @@ -67,32 +75,32 @@ public: max = out = sound_buffer_size; wavedata_remaining = 0; samples_due = 0; samples = -1; } // expands out samples to the frequency of 44kHz //not any more bool add( short *output, long count, long& done, bool stereo ) { done = 0; if ( input == 0 ) { - qDebug("no input"); + odebug << "no input" << oendl; return FALSE; } while ( count ) { int l,r; if ( getSample(l, r) == FALSE ) { - qDebug("didn't get sample"); + odebug << "didn't get sample" << oendl; return FALSE; } samples_due += chunkdata.samplesPerSec; printf("samples due %d\r", samples_due); fflush(stdout); while ( count && (samples_due > chunkdata.samplesPerSec) ) { *output++ = l; if ( stereo ) *output++ = r; samples_due -= chunkdata.samplesPerSec; count--; done++; @@ -126,35 +134,35 @@ public: if ( qstrncmp(d,"WAVE",4) != 0 ) { // skip if ( chunk.size > 1000000000 || !input->at(input->at()+chunk.size-4) ) { return FALSE; } } } else if ( qstrncmp(chunk.id,"fmt ",4) == 0 ) { if ( input->readBlock((char*)&chunkdata,sizeof(chunkdata)) != sizeof(chunkdata) ) { return FALSE; } #define WAVE_FORMAT_PCM 1 if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { - qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); + odebug << "WAV file: UNSUPPORTED FORMAT " << chunkdata.formatTag << "" << oendl; return FALSE; } } else { // ignored chunk if ( chunk.size > 1000000000 || !input->at(input->at()+chunk.size) ) { return FALSE; } } } // while - qDebug("bits %d", chunkdata.wBitsPerSample); + odebug << "bits " << chunkdata.wBitsPerSample << "" << oendl; return TRUE; } // gets a sample from the file bool getSample(int& l, int& r) { l = r = 0; if ( input == 0 ) return FALSE; @@ -198,113 +206,113 @@ WavPlugin::WavPlugin() { d = new WavPluginData; d->input = 0; } WavPlugin::~WavPlugin() { close(); delete d; } bool WavPlugin::isFileSupported( const QString& path ) { -// qDebug( "WavPlugin::isFileSupported" ); +// odebug << "WavPlugin::isFileSupported" << oendl; char *ext = strrchr( path.latin1(), '.' ); // Test file extension if ( ext ) { if ( strncasecmp(ext, ".raw", 4) == 0 ) return TRUE; if ( strncasecmp(ext, ".wav", 4) == 0 ) return TRUE; if ( strncasecmp(ext, ".wave", 4) == 0 ) return TRUE; } return FALSE; } bool WavPlugin::open( const QString& path ) { -// qDebug( "WavPlugin::open" ); +// odebug << "WavPlugin::open" << oendl; d->max = d->out = sound_buffer_size; d->wavedata_remaining = 0; d->samples_due = 0; d->input = new QFile( path ); if ( d->input->open(IO_ReadOnly) == FALSE ) { - qDebug("couldn't open file"); + odebug << "couldn't open file" << oendl; delete d->input; d->input = 0; return FALSE; } d->initialise(); qApp->processEvents(); return TRUE; } bool WavPlugin::close() { -// qDebug( "WavPlugin::close" ); +// odebug << "WavPlugin::close" << oendl; d->input->close(); delete d->input; d->input = 0; return TRUE; } bool WavPlugin::isOpen() { -// qDebug( "WavPlugin::isOpen" ); +// odebug << "WavPlugin::isOpen" << oendl; return ( d->input != 0 ); } int WavPlugin::audioStreams() { -// qDebug( "WavPlugin::audioStreams" ); +// odebug << "WavPlugin::audioStreams" << oendl; return 1; } int WavPlugin::audioChannels( int ) { -// qDebug( "WavPlugin::audioChannels" ); +// odebug << "WavPlugin::audioChannels" << oendl; return d->chunkdata.channels;// 2; // ### Always scale audio to stereo samples } int WavPlugin::audioFrequency( int ) { -// qDebug( "WavPlugin::audioFrequency %d", d->chunkdata.samplesPerSec ); +// odebug << "WavPlugin::audioFrequency " << d->chunkdata.samplesPerSec << "" << oendl; return d->chunkdata.samplesPerSec; //44100; // ### Always scale to frequency of 44100 } int WavPlugin::audioSamples( int ) { -// qDebug( "WavPlugin::audioSamples" ); +// odebug << "WavPlugin::audioSamples" << oendl; return d->samples / d->chunkdata.channels/2; // ### Scaled samples will be made stereo, // Therefore if source is mono we will double the number of samples } bool WavPlugin::audioSetSample( long, int ) { -// qDebug( "WavPlugin::audioSetSample" ); +// odebug << "WavPlugin::audioSetSample" << oendl; return FALSE; } long WavPlugin::audioGetSample( int ) { -// qDebug( "WavPlugin::audioGetSample" ); +// odebug << "WavPlugin::audioGetSample" << oendl; return 0; } /* bool WavPlugin::audioReadSamples( short *, int, long, int ) { debugMsg( "WavPlugin::audioReadSamples" ); return FALSE; } bool WavPlugin::audioReReadSamples( short *, int, long, int ) { debugMsg( "WavPlugin::audioReReadSamples" ); @@ -316,27 +324,27 @@ bool WavPlugin::audioReadMonoSamples( short *output, long samples, long& samples debugMsg( "WavPlugin::audioReadMonoSamples" ); return !d->add( output, samples, samplesMade, FALSE ); } bool WavPlugin::audioReadStereoSamples( short *output, long samples, long& samplesMade, int ) { debugMsg( "WavPlugin::audioReadStereoSamples" ); return !d->add( output, samples, samplesMade, TRUE ); } */ bool WavPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesMade, int ) { -// qDebug( "WavPlugin::audioReadSamples" ); +// odebug << "WavPlugin::audioReadSamples" << oendl; return d->add( output, samples, samplesMade, channels != 1 ); } double WavPlugin::getTime() { -// qDebug( "WavPlugin::getTime" ); //this is a stupid hack here!! +// odebug << "WavPlugin::getTime" << oendl; //this is a stupid hack here!! return d->chunkdata.wBitsPerSample; /*0.0*/; } // int WavPlugin::audioBitsPerSample( int ) { -// // qDebug( "WavPlugin::audioFormat %d", d->chunkdata.wBitsPerSample ); -// return d->chunkdata.wBitsPerSample; // +// // odebug << "WavPlugin::audioFormat " << d->chunkdata.wBitsPerSample << "" << oendl; +// return d->chunkdata.wBitsPerSample; // // } |