summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/vmemo/vmemo.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp
index 07ef15c..d5808b7 100644
--- a/core/applets/vmemo/vmemo.cpp
+++ b/core/applets/vmemo/vmemo.cpp
@@ -173,130 +173,132 @@ static char * vmemo_xpm[] = {
173 ".. c #999AA2", 173 ".. c #999AA2",
174 "+. c #52535A", 174 "+. c #52535A",
175 "@. c #151B21", 175 "@. c #151B21",
176 "#. c #515257", 176 "#. c #515257",
177 "$. c #B5B5BE", 177 "$. c #B5B5BE",
178 "%. c #616167", 178 "%. c #616167",
179 "&. c #1A1D22", 179 "&. c #1A1D22",
180 "*. c #000713", 180 "*. c #000713",
181 "=. c #1F1F21", 181 "=. c #1F1F21",
182 " ", 182 " ",
183 " . + @ # ", 183 " . + @ # ",
184 " $ % & * = - ", 184 " $ % & * = - ",
185 " ; > , ' ) ! ~ ", 185 " ; > , ' ) ! ~ ",
186 " { ] ^ / ( _ : ", 186 " { ] ^ / ( _ : ",
187 " < [ } | 1 2 3 ", 187 " < [ } | 1 2 3 ",
188 " 4 5 6 7 8 9 0 a b c ", 188 " 4 5 6 7 8 9 0 a b c ",
189 " d e f g h i j 3 k l m n ", 189 " d e f g h i j 3 k l m n ",
190 " o p q r s t u v w n ", 190 " o p q r s t u v w n ",
191 " o x y z A B C D E n ", 191 " o x y z A B C D E n ",
192 " F G H I J K L M N O ", 192 " F G H I J K L M N O ",
193 " P Q R S T U V W X ", 193 " P Q R S T U V W X ",
194 " Y Z ` b ...+. ", 194 " Y Z ` b ...+. ",
195 " @.#.$.%.&. ", 195 " @.#.$.%.&. ",
196 " *.B =. ", 196 " *.B =. ",
197 " n n n n n n n n n "}; 197 " n n n n n n n n n "};
198 198
199 199
200using namespace Opie::Ui; 200using namespace Opie::Ui;
201VMemo::VMemo( QWidget *parent, const char *_name ) 201VMemo::VMemo( QWidget *parent, const char *_name )
202 : QWidget( parent, _name ) { 202 : QWidget( parent, _name ) {
203 setFixedHeight( 18 ); 203 setFixedHeight( 18 );
204 setFixedWidth( 14 ); 204 setFixedWidth( 14 );
205 205
206 t_timer = new QTimer( this ); 206 t_timer = new QTimer( this );
207 connect( t_timer, SIGNAL( timeout() ), SLOT( timerBreak() ) ); 207 connect( t_timer, SIGNAL( timeout() ), SLOT( timerBreak() ) );
208 208
209 Config vmCfg("Vmemo"); 209 Config vmCfg("Vmemo");
210 vmCfg.setGroup("Defaults"); 210 vmCfg.setGroup("Defaults");
211 int toggleKey = setToggleButton(vmCfg.readNumEntry("toggleKey", -1)); 211 int toggleKey = setToggleButton(vmCfg.readNumEntry("toggleKey", -1));
212 useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0); 212 useADPCM = vmCfg.readBoolEntry("use_ADPCM", 0);
213 213
214 odebug << "toggleKey " << toggleKey << "" << oendl; 214 odebug << "toggleKey " << toggleKey << "" << oendl;
215 215
216// if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) 216// if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ))
217// systemZaurus=TRUE; 217// systemZaurus=TRUE;
218// else 218// else
219 systemZaurus = FALSE; 219 systemZaurus = FALSE;
220 220
221// myChannel = new QCopChannel( "QPE/VMemo", this );
221 myChannel = new QCopChannel( "QPE/VMemo", this ); 222 myChannel = new QCopChannel( "QPE/VMemo", this );
223
222 connect( myChannel, SIGNAL(received(const QCString&,const QByteArray&)), 224 connect( myChannel, SIGNAL(received(const QCString&,const QByteArray&)),
223 this, SLOT(receive(const QCString&,const QByteArray&)) ); 225 this, SLOT(receive(const QCString&,const QByteArray&)) );
224 226
227
225 if( toggleKey != -1 ) { 228 if( toggleKey != -1 ) {
226 odebug << "Register key " << toggleKey << "" << oendl; 229 odebug << "Register key " << toggleKey << "" << oendl;
227 QCopEnvelope e("QPE/Launcher", "keyRegister(int,QCString,QCString)"); 230 QCopEnvelope e("QPE/Launcher", "keyRegister(int,QCString,QCString)");
228 // e << 4096; // Key_Escape 231 // e << 4096; // Key_Escape
229 // e << Key_F5; //4148 232 // e << Key_F5; //4148
230 e << toggleKey; 233 e << toggleKey;
231 e << QString("QPE/VMemo"); 234 e << QCString("QPE/VMemo");
232 e << QString("toggleRecord()"); 235 e << QCString("toggleRecord()");
233 } 236 }
234 if(toggleKey == 1) 237 if(toggleKey == 1)
235 usingIcon = TRUE; 238 usingIcon = TRUE;
236 else 239 else
237 usingIcon = FALSE; 240 usingIcon = FALSE;
238// if( vmCfg.readNumEntry("hideIcon",0) == 1) 241// if( vmCfg.readNumEntry("hideIcon",0) == 1)
239 if (!usingIcon) 242 if (!usingIcon)
240 hide(); 243 hide();
241 recording = FALSE; 244 recording = FALSE;
242 // } 245 // }
243} 246}
244 247
245VMemo::~VMemo() { 248VMemo::~VMemo() {
246} 249}
247 250
248int VMemo::position() 251int VMemo::position()
249{ 252{
250 return 6; 253 return 6;
251} 254}
252 255
253void VMemo::receive( const QCString &msg, const QByteArray &data ) { 256void VMemo::receive( const QCString &msg, const QByteArray &data ) {
254 odebug << "Vmemo receive" << oendl;
255 QDataStream stream( data, IO_ReadOnly ); 257 QDataStream stream( data, IO_ReadOnly );
256 258
257 if (msg == "toggleRecord()") { 259 if (msg == "toggleRecord()") {
258 if (recording) { 260 if (recording) {
259 fromToggle = TRUE; 261 fromToggle = TRUE;
260 stopRecording(); 262 stopRecording();
261 } else { 263 } else {
262 fromToggle = TRUE; 264 fromToggle = TRUE;
263 startRecording(); 265 startRecording();
264 } 266 }
265 } 267 }
266} 268}
267 269
268void VMemo::paintEvent( QPaintEvent* ) { 270void VMemo::paintEvent( QPaintEvent* ) {
269 QPainter p(this); 271 QPainter p(this);
270 p.drawPixmap( 0, 1,( const char** ) vmemo_xpm ); 272 p.drawPixmap( 0, 1,( const char** ) vmemo_xpm );
271} 273}
272 274
273void VMemo::mousePressEvent( QMouseEvent * /*me*/) { 275void VMemo::mousePressEvent( QMouseEvent * /*me*/) {
274 /* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions 276 /* No mousePress/mouseRelease recording on the iPAQ. The REC button on the iPAQ calls these functions
275 mousePressEvent and mouseReleaseEvent with a NULL parameter. */ 277 mousePressEvent and mouseReleaseEvent with a NULL parameter. */
276 278
277// if (!systemZaurus && me != NULL) 279// if (!systemZaurus && me != NULL)
278// return; 280// return;
279// } 281// }
280 282
281 if(!recording) 283 if(!recording)
282 startRecording(); 284 startRecording();
283 else 285 else
284 stopRecording(); 286 stopRecording();
285} 287}
286 288
287void VMemo::mouseReleaseEvent( QMouseEvent * ) { 289void VMemo::mouseReleaseEvent( QMouseEvent * ) {
288} 290}
289 291
290bool VMemo::startRecording() { 292bool VMemo::startRecording() {
291 Config config( "Vmemo" ); 293 Config config( "Vmemo" );
292 config.setGroup( "System" ); 294 config.setGroup( "System" );
293 295
294 useAlerts = config.readBoolEntry("Alert",1); 296 useAlerts = config.readBoolEntry("Alert",1);
295 if(useAlerts) { 297 if(useAlerts) {
296 298
297 msgLabel = new QLabel( 0, "alertLabel" ); 299 msgLabel = new QLabel( 0, "alertLabel" );
298 msgLabel->setText("<B><P><font size=+2>VMemo-Recording</font></B>"); 300 msgLabel->setText("<B><P><font size=+2>VMemo-Recording</font></B>");
299 msgLabel->show(); 301 msgLabel->show();
300 } 302 }
301 303
302 odebug << "Start recording engines" << oendl; 304 odebug << "Start recording engines" << oendl;
@@ -475,97 +477,97 @@ int VMemo::openWAV(const char *filename) {
475 else 477 else
476 wh.format = PCM_CODE; 478 wh.format = PCM_CODE;
477 wh.modus = channels; 479 wh.modus = channels;
478 wh.sample_fq = speed; 480 wh.sample_fq = speed;
479 wh.byte_p_sec = speed * channels * resolution/8; 481 wh.byte_p_sec = speed * channels * resolution/8;
480 wh.byte_p_spl = channels * (resolution / 8); 482 wh.byte_p_spl = channels * (resolution / 8);
481 wh.bit_p_spl = resolution; 483 wh.bit_p_spl = resolution;
482 wh.data_chunk = DATA; 484 wh.data_chunk = DATA;
483 wh.data_length= 0; 485 wh.data_length= 0;
484 // odebug << "Write header channels " << wh.modus << ", speed " << wh.sample_fq << ", b/s " 486 // odebug << "Write header channels " << wh.modus << ", speed " << wh.sample_fq << ", b/s "
485 // << wh.byte_p_sec << ", blockalign " << wh.byte_p_spl << ", bitrate " << wh.bit_p_spl << oendl; 487 // << wh.byte_p_sec << ", blockalign " << wh.byte_p_spl << ", bitrate " << wh.bit_p_spl << oendl;
486 write (wav, &wh, sizeof(WaveHeader)); 488 write (wav, &wh, sizeof(WaveHeader));
487 489
488 return 1; 490 return 1;
489} 491}
490 492
491bool VMemo::record() { 493bool VMemo::record() {
492 length = 0; 494 length = 0;
493 int bytesWritten = 0; 495 int bytesWritten = 0;
494 int result = 0; 496 int result = 0;
495 int value = 0; 497 int value = 0;
496 498
497 QString msg; 499 QString msg;
498 msg.sprintf("Recording format %d", format); 500 msg.sprintf("Recording format %d", format);
499 odebug << msg << oendl; 501 odebug << msg << oendl;
500 502
501 Config config("Vmemo"); 503 Config config("Vmemo");
502 config.setGroup("Record"); 504 config.setGroup("Record");
503 int sRate = config.readNumEntry("SizeLimit", 30); 505 int sRate = config.readNumEntry("SizeLimit", 30);
504 odebug << "VMEMO rate" << sRate << oendl; 506 odebug << "VMEMO rate" << sRate << oendl;
505 507
506 if(sRate > 0) { 508 if(sRate > 0) {
507 t_timer->start( sRate * 1000+1000, TRUE); 509 t_timer->start( sRate * 1000+1000, TRUE);
508 } 510 }
509 511
510 msg.sprintf("Recording format other"); 512 msg.sprintf("Recording format other");
511 odebug << msg << oendl; 513 odebug << msg << oendl;
512 514
513 config.setGroup("Defaults"); 515 config.setGroup("Defaults");
514 useADPCM = config.readBoolEntry("use_ADPCM", 0); 516 useADPCM = config.readBoolEntry("use_ADPCM", 0);
515 517
516 int bufsize = config.readNumEntry("BufferSize",1024); 518 int bufsize = config.readNumEntry("BufferSize",1024);
517 unsigned short sound[bufsize]; //, monoBuffer[bufsize]; 519 unsigned short sound[bufsize]; //, monoBuffer[bufsize];
518 char abuf[bufsize / 2]; 520 char abuf[bufsize / 2];
519 short sbuf[bufsize]; 521 short sbuf[bufsize];
520 odebug << "ready to record"<< oendl; 522 odebug << "ready to record"<< oendl;
521 if(useADPCM) { 523 if(useADPCM) {
522 odebug << "usr ADPCM" << oendl; 524 odebug << "usr ADPCM" << oendl;
523 525
524 while(recording) { 526 while(recording) {
525 result = ::read(dsp, sbuf, bufsize); // adpcm read 527 result = ::read(dsp, sbuf, bufsize); // adpcm read
526 if( result <= 0) { 528 if( result <= 0) {
527 perror("recording error "); 529 perror("recording error ");
528 QMessageBox::message(tr("Note"),tr("error recording")); 530 QMessageBox::message(tr("Note"),tr("error recording"));
529 recording = FALSE; 531 recording = FALSE;
530 break; 532 break;
531 return FALSE; 533 return FALSE;
532 } 534 }
533 adpcm_coder( sbuf, abuf, result/2, &encoder_state); 535 adpcm_coder( sbuf, abuf, result/2, &encoder_state);
534 bytesWritten = ::write(wav, abuf, result/4); // adpcm write 536 bytesWritten = ::write(wav, abuf, result/4); // adpcm write
535 length += bytesWritten; 537 length += bytesWritten;
536 538
537 if(length < 0) { 539 if(length < 0) {
538 recording = false; 540 recording = false;
539 perror("dev/dsp's is a lookin' messy"); 541 perror("dev/dsp's is a lookin' messy");
540 QMessageBox::message("Vmemo","Error writing to file\n"+ fileName); 542 QMessageBox::message("Vmemo","Error writing to file\n"+ fileName);
541 break; 543 break;
542 return FALSE; 544 return FALSE;
543 } 545 }
544 printf("%d\r", length); 546 printf("%d\r", length);
545 fflush(stdout); 547 fflush(stdout);
546 qApp->processEvents(); 548 qApp->processEvents();
547 } 549 }
548 } else { 550 } else {
549 odebug << "use regular wav" << oendl; 551 odebug << "use regular wav" << oendl;
550 while(recording) { 552 while(recording) {
551 result = ::read(dsp, sound, bufsize); // read 553 result = ::read(dsp, sound, bufsize); // read
552 if( result <= 0) { 554 if( result <= 0) {
553 perror("recording error "); 555 perror("recording error ");
554 QMessageBox::message(tr("Note"),tr("error recording")); 556 QMessageBox::message(tr("Note"),tr("error recording"));
555 recording = FALSE; 557 recording = FALSE;
556 break; 558 break;
557 return FALSE; 559 return FALSE;
558 } 560 }
559 561
560 bytesWritten = ::write(wav, sound, result); // write 562 bytesWritten = ::write(wav, sound, result); // write
561 length += bytesWritten; 563 length += bytesWritten;
562 564
563 if(length < 0) { 565 if(length < 0) {
564 recording = false; 566 recording = false;
565 perror("dev/dsp's is a lookin' messy"); 567 perror("dev/dsp's is a lookin' messy");
566 QMessageBox::message("Vmemo","Error writing to file\n"+ fileName); 568 QMessageBox::message("Vmemo","Error writing to file\n"+ fileName);
567 break; 569 break;
568 return FALSE; 570 return FALSE;
569 } 571 }
570// printf("%d\r", length); 572// printf("%d\r", length);
571// fflush(stdout); 573// fflush(stdout);
@@ -620,50 +622,50 @@ bool VMemo::record() {
620 if(foo.find("TRUE",0,TRUE) != -1) 622 if(foo.find("TRUE",0,TRUE) != -1)
621 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute 623 QCopEnvelope( "QPE/System", "volumeChange(bool)" ) << TRUE; //mute
622 return TRUE; 624 return TRUE;
623} 625}
624 626
625int VMemo::setToggleButton(int tog) { 627int VMemo::setToggleButton(int tog) {
626 628
627 for( int i=0; i < 10;i++) { 629 for( int i=0; i < 10;i++) {
628 switch (tog) { 630 switch (tog) {
629 case 0: 631 case 0:
630 return -1; 632 return -1;
631 break; 633 break;
632 case 1: 634 case 1:
633 return 0; 635 return 0;
634 break; 636 break;
635 case 2: 637 case 2:
636 return Key_F24; //was Escape 638 return Key_F24; //was Escape
637 break; 639 break;
638 case 3: 640 case 3:
639 return Key_Space; 641 return Key_Space;
640 break; 642 break;
641 case 4: 643 case 4:
642 return Key_F12; 644 return Key_F12;
643 break; 645 break;
644 case 5: 646 case 5:
645 return Key_F9; 647 return Key_F9;
646 break; 648 break;
647 case 6: 649 case 6:
648 return Key_F10; 650 return Key_F10;
649 break; 651 break;
650 case 7: 652 case 7:
651 return Key_F11; 653 return Key_F11;
652 break; 654 break;
653 case 8: 655 case 8:
654 return Key_F13; 656 return Key_F13;
655 break; 657 break;
656 }; 658 };
657 } 659 }
658 return -1; 660 return -1;
659} 661}
660 662
661void VMemo::timerBreak() { 663void VMemo::timerBreak() {
662 //stop 664 //stop
663 stopRecording(); 665 stopRecording();
664 QMessageBox::message("Vmemo","Vmemo recording has ended"); 666 QMessageBox::message("Vmemo","Vmemo recording has ended");
665} 667}
666 668
667 669
668EXPORT_OPIE_APPLET_v1( VMemo ) 670//EXPORT_OPIE_APPLET_v1( VMemo )
669 671