author | llornkcor <llornkcor> | 2004-04-22 10:53:59 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2004-04-22 10:53:59 (UTC) |
commit | 2a950511ee173c2cbce5da4d14de9cea6fcd5034 (patch) (side-by-side diff) | |
tree | e669b1291dba50a1ea59ad89a63ef75c3b5ddcaf | |
parent | 8340f9a7ab295f769721e23f3840220c09b7b144 (diff) | |
download | opie-2a950511ee173c2cbce5da4d14de9cea6fcd5034.zip opie-2a950511ee173c2cbce5da4d14de9cea6fcd5034.tar.gz opie-2a950511ee173c2cbce5da4d14de9cea6fcd5034.tar.bz2 |
optimize, remove an if statement from loop
-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 1ead4dd..835f63a 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp @@ -270,5 +270,5 @@ void VMemo::paintEvent( QPaintEvent* ) { } -void VMemo::mousePressEvent( QMouseEvent * me) { +void VMemo::mousePressEvent( QMouseEvent * /*me*/) { /* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions mousePressEvent and mouseReleaseEvent with a NULL parameter. */ @@ -486,5 +486,7 @@ int VMemo::openWAV(const char *filename) { bool VMemo::record() { length = 0; - int result, value; + int bytesWritten = 0; + int result = 0; + int value = 0; QString msg; msg.sprintf("Recording format %d", format); @@ -496,31 +498,20 @@ bool VMemo::record() { t_timer->start( sRate * 1000+1000, TRUE); -// if(systemZaurus) { -// } else { // 16 bit only capabilities - msg.sprintf("Recording format other"); odebug << msg << oendl; + config.setGroup("Defaults"); + useADPCM = config.readBoolEntry("use_ADPCM", 0); - int bytesWritten = 0; - - Config vmCfg("Vmemo"); - vmCfg.setGroup("Defaults"); - useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); - - int bufsize = vmCfg.readNumEntry("BufferSize",1024); - signed short sound[bufsize], monoBuffer[bufsize]; + int bufsize = config.readNumEntry("BufferSize",1024); + unsigned short sound[bufsize]; //, monoBuffer[bufsize]; char abuf[bufsize / 2]; short sbuf[bufsize]; + if(useADPCM) { while(recording) { - - if(useADPCM) - result = ::read(dsp, sbuf, bufsize); // 8192 - else - result = ::read(dsp, sound, bufsize); // 8192 + result = ::read(dsp, sbuf, bufsize); // adpcm read if( result <= 0) { perror("recording error "); -// odebug << currentFileName << oendl; QMessageBox::message(tr("Note"),tr("error recording")); recording = FALSE; @@ -528,16 +519,30 @@ bool VMemo::record() { return FALSE; } - - if(useADPCM) { adpcm_coder( sbuf, abuf, result/2, &encoder_state); - bytesWritten = ::write(wav, abuf, result/4); + bytesWritten = ::write(wav, abuf, result/4); // adpcm write + length += bytesWritten; + if(length < 0) { + recording = false; + perror("dev/dsp's is a lookin' messy"); + QMessageBox::message("Vmemo","Error writing to file\n"+ fileName); + break; + return FALSE; + } + // printf("%d\r", length); + // fflush(stdout); + qApp->processEvents(); + } } else { -// for (int i = 0; i < result; i++) { //since Z is mono do normally -// monoBuffer[i] = sound[i]; -// } + while(recording) { + result = ::read(dsp, sound, bufsize); // read + if( result <= 0) { + perror("recording error "); + QMessageBox::message(tr("Note"),tr("error recording")); + recording = FALSE; + break; + return FALSE; - length += write(wav, sound, result); - } + bytesWritten = ::write(wav, sound, result); // write length += bytesWritten; @@ -549,13 +554,12 @@ bool VMemo::record() { return FALSE; } - // odebug << "" << length << "\r" << oendl; + // printf("%d\r", length); // fflush(stdout); qApp->processEvents(); } + } + } // qDebug("file has length of %d lasting %d seconds", // length, (( length / speed) / channels) / 2 ); - // } - - //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<// value = length + 36; |