summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/applets/vmemo/vmemo.cpp66
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;