-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 63ee0b8..84d53e0 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp | |||
@@ -220,34 +220,34 @@ VMemo::VMemo( QWidget *parent, const char *_name ) | |||
220 | else | 220 | else |
221 | systemZaurus=FALSE; | 221 | systemZaurus=FALSE; |
222 | 222 | ||
223 | myChannel = new QCopChannel( "QPE/VMemo", this ); | 223 | myChannel = new QCopChannel( "QPE/VMemo", this ); |
224 | connect( myChannel, SIGNAL(received(const QCString&, const QByteArray&)), | 224 | connect( myChannel, SIGNAL(received(const QCString&, const QByteArray&)), |
225 | this, SLOT(receive(const QCString&, const QByteArray&)) ); | 225 | this, SLOT(receive(const QCString&, const QByteArray&)) ); |
226 | 226 | ||
227 | if( toggleKey != -1 ) { | 227 | if( toggleKey != -1 ) { |
228 | // QPEApplication::grabKeyboard(); | 228 | // QPEApplication::grabKeyboard(); |
229 | QCopEnvelope e("QPE/Desktop", "keyRegister(int key, QString channel, QString message)"); | 229 | QCopEnvelope e("QPE/Desktop", "keyRegister(int key, QString channel, QString message)"); |
230 | // e << 4096; // Key_Escape | 230 | // e << 4096; // Key_Escape |
231 | // e << Key_F5; //4148 | 231 | // e << Key_F5; //4148 |
232 | e << toggleKey; | 232 | e << toggleKey; |
233 | e << QString("QPE/VMemo"); | 233 | e << QString("QPE/VMemo"); |
234 | e << QString("toggleRecord()"); | 234 | e << QString("toggleRecord()"); |
235 | } | 235 | } |
236 | // if( vmCfg.readNumEntry("hideIcon",0) == 1 || toggleKey > 0) | 236 | if( vmCfg.readNumEntry("hideIcon",0) == 1 || toggleKey > 0) |
237 | // hide(); | 237 | hide(); |
238 | } | 238 | } |
239 | } | 239 | } |
240 | 240 | ||
241 | VMemo::~VMemo() | 241 | VMemo::~VMemo() |
242 | { | 242 | { |
243 | } | 243 | } |
244 | 244 | ||
245 | void VMemo::receive( const QCString &msg, const QByteArray &data ) | 245 | void VMemo::receive( const QCString &msg, const QByteArray &data ) |
246 | { | 246 | { |
247 | QDataStream stream( data, IO_ReadOnly ); | 247 | QDataStream stream( data, IO_ReadOnly ); |
248 | if (msg == "toggleRecord()") { | 248 | if (msg == "toggleRecord()") { |
249 | if (recording) { | 249 | if (recording) { |
250 | fromToggle = TRUE; | 250 | fromToggle = TRUE; |
251 | stopRecording(); | 251 | stopRecording(); |
252 | } else { | 252 | } else { |
253 | fromToggle = TRUE; | 253 | fromToggle = TRUE; |
@@ -350,32 +350,33 @@ bool VMemo::startRecording() { | |||
350 | l.setFile(fileName); | 350 | l.setFile(fileName); |
351 | l.setName(dlName); | 351 | l.setName(dlName); |
352 | l.setType("audio/x-wav"); | 352 | l.setType("audio/x-wav"); |
353 | l.setCategories(cats); | 353 | l.setCategories(cats); |
354 | l.writeLink(); | 354 | l.writeLink(); |
355 | 355 | ||
356 | 356 | ||
357 | record(); | 357 | record(); |
358 | // delete msgLabel; | 358 | // delete msgLabel; |
359 | return TRUE; | 359 | return TRUE; |
360 | } | 360 | } |
361 | 361 | ||
362 | void VMemo::stopRecording() { | 362 | void VMemo::stopRecording() { |
363 | recording = FALSE; | 363 | recording = FALSE; |
364 | if(useAlerts) | 364 | if(useAlerts) |
365 | if( msgLabel) delete msgLabel; | 365 | if( msgLabel) delete msgLabel; |
366 | t_timer->stop(); | ||
366 | } | 367 | } |
367 | 368 | ||
368 | int VMemo::openDSP() | 369 | int VMemo::openDSP() |
369 | { | 370 | { |
370 | Config cfg("Vmemo"); | 371 | Config cfg("Vmemo"); |
371 | cfg.setGroup("Record"); | 372 | cfg.setGroup("Record"); |
372 | 373 | ||
373 | speed = cfg.readNumEntry("SampleRate", 22050); | 374 | speed = cfg.readNumEntry("SampleRate", 22050); |
374 | channels = cfg.readNumEntry("Stereo", 1) ? 2 : 1; // 1 = stereo(2), 0 = mono(1) | 375 | channels = cfg.readNumEntry("Stereo", 1) ? 2 : 1; // 1 = stereo(2), 0 = mono(1) |
375 | if (cfg.readNumEntry("SixteenBit", 1)==1) { | 376 | if (cfg.readNumEntry("SixteenBit", 1)==1) { |
376 | format = AFMT_S16_LE; | 377 | format = AFMT_S16_LE; |
377 | resolution = 16; | 378 | resolution = 16; |
378 | } else { | 379 | } else { |
379 | format = AFMT_U8; | 380 | format = AFMT_U8; |
380 | resolution = 8; | 381 | resolution = 8; |
381 | } | 382 | } |
@@ -443,104 +444,107 @@ int VMemo::openWAV(const char *filename) | |||
443 | wh.bit_p_spl = resolution; | 444 | wh.bit_p_spl = resolution; |
444 | wh.data_chunk = DATA; | 445 | wh.data_chunk = DATA; |
445 | wh.data_length= 0; | 446 | wh.data_length= 0; |
446 | // qDebug("Write header channels %d, speed %d, b/s %d, blockalign %d, bitrate %d" | 447 | // qDebug("Write header channels %d, speed %d, b/s %d, blockalign %d, bitrate %d" |
447 | // , wh.modus, wh.sample_fq, wh.byte_p_sec, wh.byte_p_spl, wh.bit_p_spl ); | 448 | // , wh.modus, wh.sample_fq, wh.byte_p_sec, wh.byte_p_spl, wh.bit_p_spl ); |
448 | write (wav, &wh, sizeof(WaveHeader)); | 449 | write (wav, &wh, sizeof(WaveHeader)); |
449 | 450 | ||
450 | return 1; | 451 | return 1; |
451 | } | 452 | } |
452 | 453 | ||
453 | void VMemo::record(void) | 454 | void VMemo::record(void) |
454 | { | 455 | { |
455 | int length=0, result, value; | 456 | int length=0, result, value; |
456 | QString msg; | 457 | QString msg; |
457 | msg.sprintf("Recording format %d", format); | 458 | msg.sprintf("Recording format %d", format); |
458 | qDebug(msg); | 459 | qDebug(msg); |
460 | Config config("Vmemo"); | ||
461 | config.setGroup("Record"); | ||
462 | int sRate=config.readNumEntry("SizeLimit", 30); | ||
459 | 463 | ||
460 | t_timer->start( 30 * 1000+1000, TRUE); | 464 | t_timer->start( sRate * 1000+1000, TRUE); |
461 | 465 | ||
462 | if(systemZaurus) { | 466 | if(systemZaurus) { |
463 | 467 | ||
464 | msg.sprintf("Recording format zaurus"); | 468 | msg.sprintf("Recording format zaurus"); |
465 | qDebug(msg); | 469 | qDebug(msg); |
466 | signed short sound[512], monoBuffer[512]; | 470 | signed short sound[512], monoBuffer[512]; |
467 | 471 | ||
468 | if(format==AFMT_S16_LE) { | 472 | if(format==AFMT_S16_LE) { |
469 | 473 | ||
470 | 474 | ||
471 | 475 | ||
472 | while(recording) { | 476 | while(recording) { |
473 | 477 | ||
474 | result = read(dsp, sound, 512); // 8192 | 478 | result = read(dsp, sound, 512); // 8192 |
475 | int j=0; | 479 | // int j=0; |
476 | 480 | ||
477 | for (int i = 0; i < result; i++) { //since Z is mono do normally | 481 | for (int i = 0; i < result; i++) { //since Z is mono do normally |
478 | monoBuffer[i] = sound[i]; | 482 | monoBuffer[i] = sound[i]; |
479 | } | 483 | } |
480 | 484 | ||
481 | length+=write(wav, monoBuffer, result); | 485 | length+=write(wav, monoBuffer, result); |
482 | if(length<0) | 486 | if(length<0) |
483 | recording=false; | 487 | recording=false; |
484 | 488 | ||
485 | // for (int i = 0; i < result; i+=2) { | 489 | // for (int i = 0; i < result; i+=2) { |
486 | // monoBuffer[j] = sound[i]; | 490 | // monoBuffer[j] = sound[i]; |
487 | // // monoBuffer[j] = (sound[i]+sound[i+1])/2; | 491 | // // monoBuffer[j] = (sound[i]+sound[i+1])/2; |
488 | 492 | ||
489 | // j++; | 493 | // j++; |
490 | // } | 494 | // } |
491 | qApp->processEvents(); | 495 | qApp->processEvents(); |
492 | // printf("%d\r",length); | 496 | // printf("%d\r",length); |
493 | // fflush(stdout); | 497 | // fflush(stdout); |
494 | } | 498 | } |
495 | 499 | ||
496 | } else { //AFMT_U8 | 500 | } else { //AFMT_U8 |
497 | // 8bit unsigned | 501 | // 8bit unsigned |
498 | unsigned short sound[512], monoBuffer[512]; | 502 | unsigned short sound[512], monoBuffer[512]; |
499 | while(recording) { | 503 | while(recording) { |
500 | result = read(dsp, sound, 512); // 8192 | 504 | result = read(dsp, sound, 512); // 8192 |
501 | int j=0; | 505 | // int j=0; |
502 | 506 | ||
503 | // if(systemZaurus) { | 507 | // if(systemZaurus) { |
504 | 508 | ||
505 | for (int i = 0; i < result; i++) { //since Z is mono do normally | 509 | for (int i = 0; i < result; i++) { //since Z is mono do normally |
506 | monoBuffer[i] = sound[i]; | 510 | monoBuffer[i] = sound[i]; |
507 | } | 511 | } |
508 | 512 | ||
509 | length+=write(wav, monoBuffer, result); | 513 | length+=write(wav, monoBuffer, result); |
510 | 514 | ||
511 | // for (int i = 0; i < result; i+=2) { | 515 | // for (int i = 0; i < result; i+=2) { |
512 | // monoBuffer[j] = (sound[i]+sound[i+1])/2; | 516 | // monoBuffer[j] = (sound[i]+sound[i+1])/2; |
513 | // j++; | 517 | // j++; |
514 | // } | 518 | // } |
515 | // length+=write(wav, monoBuffer, result/2); | 519 | // length+=write(wav, monoBuffer, result/2); |
516 | length += result; | 520 | length += result; |
517 | // printf("%d\r",length); | 521 | // printf("%d\r",length); |
518 | // fflush(stdout); | 522 | // fflush(stdout); |
519 | } | 523 | } |
520 | 524 | ||
521 | qApp->processEvents(); | 525 | qApp->processEvents(); |
522 | } | 526 | } |
523 | 527 | ||
524 | } else { // 16 bit only capabilities | 528 | } else { // 16 bit only capabilities |
525 | 529 | ||
526 | 530 | ||
527 | msg.sprintf("Recording format other"); | 531 | msg.sprintf("Recording format other"); |
528 | qDebug(msg); | 532 | qDebug(msg); |
529 | 533 | ||
530 | signed short sound[512], monoBuffer[512]; | 534 | signed short sound[512];//, monoBuffer[512]; |
531 | 535 | ||
532 | while(recording) { | 536 | while(recording) { |
533 | 537 | ||
534 | result = read(dsp, sound, 512); // 8192 | 538 | result = read(dsp, sound, 512); // 8192 |
535 | 539 | ||
536 | write(wav, sound, result); | 540 | write(wav, sound, result); |
537 | length += result; | 541 | length += result; |
538 | if(length<0) { | 542 | if(length<0) { |
539 | 543 | ||
540 | recording=false; | 544 | recording=false; |
541 | perror("dev/dsp's is a lookin' messy"); | 545 | perror("dev/dsp's is a lookin' messy"); |
542 | QMessageBox::message("Vmemo"," Done1 recording\n"+ fileName); | 546 | QMessageBox::message("Vmemo"," Done1 recording\n"+ fileName); |
543 | } | 547 | } |
544 | // printf("%d\r",length); | 548 | // printf("%d\r",length); |
545 | // fflush(stdout); | 549 | // fflush(stdout); |
546 | qApp->processEvents(); | 550 | qApp->processEvents(); |