Diffstat (limited to 'core/multimedia/opieplayer/wavplugin') (more/less context) (show whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavplugin.cpp | 216 | ||||
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavplugin.h | 5 | ||||
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavpluginimpl.h | 2 |
3 files changed, 36 insertions, 187 deletions
diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp index 0be667f..7ac63c0 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp @@ -19,2 +19,4 @@ **********************************************************************/ +// L.J.Potter added changes Fri 02-15-2002 + #include <stdio.h> @@ -48,3 +50,3 @@ struct ChunkData { -const int sound_buffer_size = 4096; +const int sound_buffer_size = 512; // 4096; // you got to be kidding right? @@ -62,6 +64,2 @@ public: int samples; - int freq; - int chan; - int sampleRate; - int resolution; @@ -77,4 +75,4 @@ public: { - qDebug("add"); done = 0; + qApp->processEvents(); @@ -91,3 +89,3 @@ public: } - samples_due += 44100; + samples_due += chunkdata.samplesPerSec; while ( count && (samples_due > chunkdata.samplesPerSec) ) { @@ -101,3 +99,2 @@ public: } - return TRUE; @@ -106,3 +103,2 @@ public: bool initialise() { - qDebug("initialize"); if ( input == 0 ) @@ -143,8 +139,3 @@ public: } - } - - - - - else { + } else { // ignored chunk @@ -155,3 +146,3 @@ public: } // while - + qDebug("bits %d", chunkdata.wBitsPerSample); return TRUE; @@ -182,3 +173,3 @@ public: } - if ( resolution == 8 ) { + if ( chunkdata.wBitsPerSample == 8 ) { l = (data[out++] - 128) * 128; @@ -188,6 +179,6 @@ public: } - if ( chan == 1 ) { + if ( chunkdata.channels == 1 ) { r = l; } else { - if ( resolution == 8 ) { + if ( chunkdata.wBitsPerSample == 8 ) { r = (data[out++] - 128) * 128; @@ -201,150 +192,2 @@ public: -////////////////////////////////////////////////////// -int getWavSettings(int fd) -{ //this came from wmrecord - - char t1[4]; - unsigned long l1; - int found; - short fmt; - unsigned short ch, brate; - unsigned long srate; - - - /* First read in the RIFF identifier. If this is missing then the - * file is not a valid WAVE file. - */ - if (read(fd, t1, 4)<4) { - qDebug(" Could not read from sound file.\n"); - return -1; - } - if (strncmp(t1, "RIFF", 4)) { - qDebug(" not a valid WAV file.\n"); - return -1; - } - /* Advance the file pointer to the next relevant field. */ - lseek(fd, 4, SEEK_CUR); - /* Read in the WAVE identifier. */ - if (read(fd, t1, 4)<4) { - qDebug("Could not read from sound file.\n"); - return -1; - } - if (strncmp(t1, "WAVE", 4)) { - qDebug("not a valid WAV file.\n"); - return -1; - } - - /* Search through the file for the format chunk. If the end of the - * file is reached without finding the chunk, then the file is not a - * valid WAVE file. - */ - found = 0; - while (!found) { - if (read(fd, t1, 4)<4) { - qDebug("Could not read from sound file.\n"); - return -1; - } - if (strncmp(t1, "fmt ", 4)) { - /* Determine the length of the chunk found and skip to the next - * chunk. The chunk length is always stored in the four bytes - * following the chunk id. - */ - if (read(fd, &l1, 4)<4) { - qDebug("Could not read from sound file.\n"); - return -1; - } - lseek(fd, l1, SEEK_CUR); - } - else { - /* This is the format chunk, which stores the playback settings - * for the recording. - */ - /* Skip the length field, since we don't really need it. */ - lseek(fd, 4, SEEK_CUR); - /* Read in the format tag. If it has a value of 1, then there is - * no compression and we can attempt to play the file - * back. Otherwise, return. - */ - if (read(fd, &fmt, 2)<2) { - qDebug("Could not read from format chunk.\n"); - return -1; - } - if (fmt != 1) { - qDebug("Wave file contains compressed data." - " Unable to continue.\n"); - return -1; - } - /* Get the stereo mode. */ - if (read(fd, &ch, 2)<2) { - qDebug("Could not read from format chunk.\n"); - return -1; - } - else { - chan = ch; - qDebug("File has %d channels", chan); - } - /* Get the sample rate. */ - if (read(fd, &srate, 4)<4) { - qDebug("Could not read from format chunk.\n"); - return -1; - } - else { - sampleRate = srate; - qDebug("File has samplerate of %d", sampleRate); - } - /* Get the bit rate. This is at the end of the format chunk. */ - lseek(fd, 6, SEEK_CUR); - if (read(fd, &brate, 2)<2) { - qDebug("Could not read from format chunk.\n"); - return -1; - } - else { - resolution = brate; - qDebug("File has bitrate of %d", resolution); - } - - found++; - } - } - - /* Search through the file for the data chunk. If the end of the - * file is reached without finding the chunk, then the file is not a - * valid WAVE file. - */ - found = 0; - while (!found) { - if (read(fd, t1, 4)<4) { - qDebug("Could not read from sound file.\n"); - return -1; - } - if (strncmp(t1, "data", 4)) { - /* Determine the length of the chunk found and skip to the next - * chunk. The chunk length is always stored in the four bytes - * following the chunk id. - */ - if (read(fd, &l1, 4)<4) { - qDebug("Could not read from sound file.\n"); - return -1; - } - lseek(fd, l1, SEEK_CUR); - } - else { - /* This is the data chunk, which stores the recording. */ - /* Get the length field. */ - if (read(fd, &l1, 4)<4) { - qDebug("Could not read from sound file.\n"); - return -1; - } - else { - samples =l1; - qDebug("file has length of %d\nlasting %d seconds",l1, (( l1 / sampleRate) / chan) / 2 ); // ???? - return l1; - } - } - } - - return 0; -} - -////////////////////////////////////////////////// }; @@ -365,3 +208,3 @@ WavPlugin::~WavPlugin() { bool WavPlugin::isFileSupported( const QString& path ) { - debugMsg( "WavPlugin::isFileSupported" ); +// qDebug( "WavPlugin::isFileSupported" ); @@ -384,3 +227,3 @@ bool WavPlugin::isFileSupported( const QString& path ) { bool WavPlugin::open( const QString& path ) { - qDebug( "WavPlugin::open" ); +// qDebug( "WavPlugin::open" ); @@ -398,3 +241,2 @@ bool WavPlugin::open( const QString& path ) { -// d->getWavSettings( d->input.handle()); d->initialise(); @@ -406,3 +248,3 @@ bool WavPlugin::open( const QString& path ) { bool WavPlugin::close() { - qDebug( "WavPlugin::close" ); +// qDebug( "WavPlugin::close" ); @@ -416,3 +258,3 @@ bool WavPlugin::close() { bool WavPlugin::isOpen() { - qDebug( "WavPlugin::isOpen" ); +// qDebug( "WavPlugin::isOpen" ); return ( d->input != 0 ); @@ -422,3 +264,3 @@ bool WavPlugin::isOpen() { int WavPlugin::audioStreams() { - qDebug( "WavPlugin::audioStreams" ); +// qDebug( "WavPlugin::audioStreams" ); return 1; @@ -428,4 +270,4 @@ int WavPlugin::audioStreams() { int WavPlugin::audioChannels( int ) { - debugMsg( "WavPlugin::audioChannels" ); - return d->chan; +// qDebug( "WavPlugin::audioChannels" ); + return d->chunkdata.channels;// 2; // ### Always scale audio to stereo samples } @@ -434,4 +276,4 @@ int WavPlugin::audioChannels( int ) { int WavPlugin::audioFrequency( int ) { - qDebug( "WavPlugin::audioFrequency" ); - return d->freq; +// qDebug( "WavPlugin::audioFrequency %d", d->chunkdata.samplesPerSec ); + return d->chunkdata.samplesPerSec; //44100; // ### Always scale to frequency of 44100 } @@ -440,6 +282,5 @@ int WavPlugin::audioFrequency( int ) { int WavPlugin::audioSamples( int ) { - qDebug( "WavPlugin::audioSamples" ); - return d->samples; -// return d->samples * 2 / d->chunkdata.channels; // ### Scaled samples will be made stereo, -// // Therefore if source is mono we will double the number of samples +// qDebug( "WavPlugin::audioSamples" ); + 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 } @@ -448,3 +289,3 @@ int WavPlugin::audioSamples( int ) { bool WavPlugin::audioSetSample( long, int ) { - qDebug( "WavPlugin::audioSetSample" ); +// qDebug( "WavPlugin::audioSetSample" ); return FALSE; @@ -454,3 +295,3 @@ bool WavPlugin::audioSetSample( long, int ) { long WavPlugin::audioGetSample( int ) { - qDebug( "WavPlugin::audioGetSample" ); +// qDebug( "WavPlugin::audioGetSample" ); return 0; @@ -484,3 +325,3 @@ bool WavPlugin::audioReadStereoSamples( short *output, long samples, long& sampl bool WavPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesMade, int ) { - qDebug( "WavPlugin::audioReadSamples" ); +// qDebug( "WavPlugin::audioReadSamples" ); return d->add( output, samples, samplesMade, channels != 1 ); @@ -489,3 +330,3 @@ bool WavPlugin::audioReadSamples( short *output, int channels, long samples, lon double WavPlugin::getTime() { - qDebug( "WavPlugin::getTime" ); +// qDebug( "WavPlugin::getTime" ); return 0.0; @@ -493,2 +334,7 @@ double WavPlugin::getTime() { +int WavPlugin::audioBitsPerSample( int ) { +// qDebug( "WavPlugin::audioFormat %d", d->chunkdata.wBitsPerSample ); + return d->chunkdata.wBitsPerSample; // +} + diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.h b/core/multimedia/opieplayer/wavplugin/wavplugin.h index 19d1a8e..6ae6e06 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.h +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.h @@ -19,2 +19,4 @@ **********************************************************************/ +// L.J.Potter added changes Fri 02-15-2002 + #ifndef WAV_PLUGIN_H @@ -24,3 +26,3 @@ #include <qapplication.h> -#include <qpe/mediaplayerplugininterface.h> +#include "../mediaplayerplugininterface.h" @@ -53,2 +55,3 @@ public: int audioFrequency( int stream ); + int audioBitsPerSample( int stream ); int audioSamples( int stream ); diff --git a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h index 71f5f20..10f9305 100644 --- a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h +++ b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h @@ -22,3 +22,3 @@ -#include <qpe/mediaplayerplugininterface.h> +#include "../mediaplayerplugininterface.h" |