-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 577db75..4b398ad 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp | |||
@@ -357,46 +357,50 @@ bool VMemo::startRecording() { | |||
357 | if( fileName.left(1).find('/') == -1) | 357 | if( fileName.left(1).find('/') == -1) |
358 | fileName="/"+fileName; | 358 | fileName="/"+fileName; |
359 | if( fileName.right(1).find('/') == -1) | 359 | if( fileName.right(1).find('/') == -1) |
360 | fileName+="/"; | 360 | fileName+="/"; |
361 | fName = "vm_"+ dt.toString()+ ".wav"; | 361 | fName = "vm_"+ dt.toString()+ ".wav"; |
362 | 362 | ||
363 | fileName+=fName; | 363 | fileName+=fName; |
364 | // No spaces in the filename | 364 | // No spaces in the filename |
365 | fileName.replace(QRegExp("'"),""); | 365 | fileName.replace(QRegExp("'"),""); |
366 | fileName.replace(QRegExp(" "),"_"); | 366 | fileName.replace(QRegExp(" "),"_"); |
367 | fileName.replace(QRegExp(":"),"."); | 367 | fileName.replace(QRegExp(":"),"."); |
368 | fileName.replace(QRegExp(","),""); | 368 | fileName.replace(QRegExp(","),""); |
369 | fileName += ".wav"; | 369 | |
370 | 370 | ||
371 | qDebug("filename is "+fileName); | 371 | qDebug("filename is "+fileName); |
372 | // open tmp file here | 372 | // open tmp file here |
373 | char *pointer; | 373 | char *pointer; |
374 | pointer=tmpnam(NULL); | 374 | pointer=tmpnam(NULL); |
375 | qDebug("Opening tmp file %s",pointer); | 375 | qDebug("Opening tmp file %s",pointer); |
376 | 376 | ||
377 | if(openWAV(pointer ) == -1) { | 377 | if(openWAV(pointer ) == -1) { |
378 | 378 | ||
379 | // if(openWAV(fileName.latin1()) == -1) { | 379 | // if(openWAV(fileName.latin1()) == -1) { |
380 | QString err("Could not open the temp file\n"); | 380 | QString err("Could not open the temp file\n"); |
381 | err += fileName; | 381 | err += fileName; |
382 | QMessageBox::critical(0, "vmemo", err, "Abort"); | 382 | QMessageBox::critical(0, "vmemo", err, "Abort"); |
383 | ::close(dsp); | 383 | ::close(dsp); |
384 | return FALSE; | 384 | return FALSE; |
385 | } | 385 | } |
386 | if( record() ) { | 386 | if( record() ) { |
387 | 387 | ||
388 | QString cmd; | 388 | QString cmd; |
389 | if( fileName.find(".wav",0,TRUE) == -1) | ||
390 | fileName += ".wav"; | ||
391 | |||
389 | cmd.sprintf("mv %s "+fileName, pointer); | 392 | cmd.sprintf("mv %s "+fileName, pointer); |
390 | // move tmp file to regular file here | 393 | // move tmp file to regular file here |
394 | |||
391 | system(cmd.latin1()); | 395 | system(cmd.latin1()); |
392 | 396 | ||
393 | QArray<int> cats(1); | 397 | QArray<int> cats(1); |
394 | cats[0] = config.readNumEntry("Category", 0); | 398 | cats[0] = config.readNumEntry("Category", 0); |
395 | 399 | ||
396 | QString dlName("vm_"); | 400 | QString dlName("vm_"); |
397 | dlName += dt.toString(); | 401 | dlName += dt.toString(); |
398 | DocLnk l; | 402 | DocLnk l; |
399 | l.setFile(fileName); | 403 | l.setFile(fileName); |
400 | l.setName(dlName); | 404 | l.setName(dlName); |
401 | l.setType("audio/x-wav"); | 405 | l.setType("audio/x-wav"); |
402 | l.setCategories(cats); | 406 | l.setCategories(cats); |
@@ -474,24 +478,26 @@ int VMemo::openDSP() { | |||
474 | 478 | ||
475 | return 1; | 479 | return 1; |
476 | } | 480 | } |
477 | 481 | ||
478 | int VMemo::openWAV(const char *filename) { | 482 | int VMemo::openWAV(const char *filename) { |
479 | track.setName(filename); | 483 | track.setName(filename); |
480 | if(!track.open(IO_WriteOnly|IO_Truncate|IO_Raw)) { | 484 | if(!track.open(IO_WriteOnly|IO_Truncate|IO_Raw)) { |
481 | errorMsg=filename; | 485 | errorMsg=filename; |
482 | return -1; | 486 | return -1; |
483 | } | 487 | } |
484 | 488 | ||
485 | wav=track.handle(); | 489 | wav=track.handle(); |
490 | Config vmCfg("Vmemo"); | ||
491 | vmCfg.setGroup("Defaults"); | ||
486 | useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); | 492 | useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); |
487 | 493 | ||
488 | WaveHeader wh; | 494 | WaveHeader wh; |
489 | 495 | ||
490 | wh.main_chunk = RIFF; | 496 | wh.main_chunk = RIFF; |
491 | wh.length=0; | 497 | wh.length=0; |
492 | wh.chunk_type = WAVE; | 498 | wh.chunk_type = WAVE; |
493 | wh.sub_chunk = FMT; | 499 | wh.sub_chunk = FMT; |
494 | wh.sc_len = 16; | 500 | wh.sc_len = 16; |
495 | if(useADPCM) | 501 | if(useADPCM) |
496 | wh.format = WAVE_FORMAT_DVI_ADPCM;//PCM_CODE; | 502 | wh.format = WAVE_FORMAT_DVI_ADPCM;//PCM_CODE; |
497 | else | 503 | else |
@@ -524,24 +530,26 @@ bool VMemo::record() { | |||
524 | 530 | ||
525 | // if(systemZaurus) { | 531 | // if(systemZaurus) { |
526 | // } else { // 16 bit only capabilities | 532 | // } else { // 16 bit only capabilities |
527 | 533 | ||
528 | msg.sprintf("Recording format other"); | 534 | msg.sprintf("Recording format other"); |
529 | qDebug(msg); | 535 | qDebug(msg); |
530 | 536 | ||
531 | int bufsize=1024; | 537 | int bufsize=1024; |
532 | int bytesWritten=0; | 538 | int bytesWritten=0; |
533 | signed short sound[1024], monoBuffer[1024]; | 539 | signed short sound[1024], monoBuffer[1024]; |
534 | char abuf[bufsize/2]; | 540 | char abuf[bufsize/2]; |
535 | short sbuf[bufsize]; | 541 | short sbuf[bufsize]; |
542 | Config vmCfg("Vmemo"); | ||
543 | vmCfg.setGroup("Defaults"); | ||
536 | useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); | 544 | useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); |
537 | 545 | ||
538 | while(recording) { | 546 | while(recording) { |
539 | 547 | ||
540 | if(useADPCM) | 548 | if(useADPCM) |
541 | result = read( dsp, sbuf, bufsize); // 8192 | 549 | result = read( dsp, sbuf, bufsize); // 8192 |
542 | else | 550 | else |
543 | result = read(dsp, sound, 1024); // 8192 | 551 | result = read(dsp, sound, 1024); // 8192 |
544 | if( result <= 0) { | 552 | if( result <= 0) { |
545 | perror("recording error "); | 553 | perror("recording error "); |
546 | // qDebug(currentFileName); | 554 | // qDebug(currentFileName); |
547 | QMessageBox::message(tr("Note"),tr("error recording")); | 555 | QMessageBox::message(tr("Note"),tr("error recording")); |
@@ -586,25 +594,25 @@ bool VMemo::record() { | |||
586 | write(wav, &value, 4); | 594 | write(wav, &value, 4); |
587 | lseek(wav, 40, SEEK_SET); | 595 | lseek(wav, 40, SEEK_SET); |
588 | 596 | ||
589 | write(wav, &length, 4); | 597 | write(wav, &length, 4); |
590 | 598 | ||
591 | track.close(); | 599 | track.close(); |
592 | qDebug("Track closed"); | 600 | qDebug("Track closed"); |
593 | 601 | ||
594 | if( ioctl( dsp, SNDCTL_DSP_RESET,0) == -1) | 602 | if( ioctl( dsp, SNDCTL_DSP_RESET,0) == -1) |
595 | perror("ioctl(\"SNDCTL_DSP_RESET\")"); | 603 | perror("ioctl(\"SNDCTL_DSP_RESET\")"); |
596 | 604 | ||
597 | ::close(dsp); | 605 | ::close(dsp); |
598 | fileName = fileName.left(fileName.length()-4); | 606 | |
599 | // if(useAlerts) | 607 | // if(useAlerts) |
600 | // QMessageBox::message("Vmemo"," Done1 recording\n"+ fileName); | 608 | // QMessageBox::message("Vmemo"," Done1 recording\n"+ fileName); |
601 | qDebug("done recording "+fileName); | 609 | qDebug("done recording "+fileName); |
602 | 610 | ||
603 | // QSound::play(Resource::findSound("vmemoe")); | 611 | // QSound::play(Resource::findSound("vmemoe")); |
604 | 612 | ||
605 | Config cfg("qpe"); | 613 | Config cfg("qpe"); |
606 | cfg.setGroup("Volume"); | 614 | cfg.setGroup("Volume"); |
607 | QString foo = cfg.readEntry("Mute","TRUE"); | 615 | QString foo = cfg.readEntry("Mute","TRUE"); |
608 | if(foo.find("TRUE",0,TRUE) != -1) | 616 | if(foo.find("TRUE",0,TRUE) != -1) |
609 | QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute | 617 | QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute |
610 | return TRUE; | 618 | return TRUE; |