Diffstat (limited to 'noncore/multimedia/opierec/qtrec.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opierec/qtrec.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp index 2187d5a..6eb6524 100644 --- a/noncore/multimedia/opierec/qtrec.cpp +++ b/noncore/multimedia/opierec/qtrec.cpp | |||
@@ -172,19 +172,20 @@ void quickRec() | |||
172 | //if(stereo == 2) { | 172 | //if(stereo == 2) { |
173 | // adpcm_coder( sbuf2, abuf, number/2, &encoder_state); | 173 | // adpcm_coder( sbuf2, abuf, number/2, &encoder_state); |
174 | adpcm_coder( sbuf, abuf, number/2, &encoder_state); | 174 | adpcm_coder( sbuf, abuf, number/2, &encoder_state); |
175 | 175 | ||
176 | bytesWritten = ::write( filePara.fd , (short *)abuf, number/4); | 176 | bytesWritten = ::write( filePara.fd , (short *)abuf, number/4); |
177 | 177 | ||
178 | waveform->newSamples( (const short *)abuf, bytesWritten ); | 178 | waveform->newSamples( sbuf, number ); |
179 | 179 | ||
180 | total += bytesWritten; | 180 | total += bytesWritten; |
181 | filePara.numberSamples = total; | 181 | filePara.numberSamples = total; |
182 | timeSlider->setValue( total); | 182 | timeSlider->setValue( total); |
183 | 183 | ||
184 | filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate * (float)2 / filePara.channels; | 184 | filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate * (float)2 |
185 | / filePara.channels; | ||
185 | 186 | ||
186 | qApp->processEvents(); | 187 | qApp->processEvents(); |
187 | if( total >= filePara.samplesToRecord) { | 188 | if( total >= filePara.samplesToRecord) { |
188 | stopped = true; | 189 | stopped = true; |
189 | break; | 190 | break; |
190 | } | 191 | } |
@@ -202,22 +203,22 @@ void quickRec() | |||
202 | stopped = true; | 203 | stopped = true; |
203 | break; // stop if playing was set to false | 204 | break; // stop if playing was set to false |
204 | return; | 205 | return; |
205 | } | 206 | } |
206 | 207 | ||
207 | number = soundDevice->devRead( filePara.sd, (short *)inbuffer, BUFSIZE); | 208 | number = soundDevice->devRead( filePara.sd, (short *)inbuffer, BUFSIZE); |
208 | waveform->newSamples( inbuffer, number ); | ||
209 | 209 | ||
210 | if( number <= 0) { | 210 | if( number <= 0) { |
211 | perror( "recording error "); | 211 | perror( "recording error "); |
212 | odebug << filePara.fileName << oendl; | 212 | odebug << filePara.fileName << oendl; |
213 | stopped = true; | 213 | stopped = true; |
214 | return; | 214 | return; |
215 | } | 215 | } |
216 | 216 | ||
217 | bytesWritten = ::write( filePara.fd , inbuffer, number); | 217 | bytesWritten = ::write( filePara.fd , inbuffer, number); |
218 | waveform->newSamples( inbuffer, number ); | ||
218 | 219 | ||
219 | if( bytesWritten < 0) { | 220 | if( bytesWritten < 0) { |
220 | perror("File writing error "); | 221 | perror("File writing error "); |
221 | stopped = true; | 222 | stopped = true; |
222 | return; | 223 | return; |
223 | } | 224 | } |
@@ -228,13 +229,14 @@ void quickRec() | |||
228 | 229 | ||
229 | if( filePara.SecondsToRecord != 0) | 230 | if( filePara.SecondsToRecord != 0) |
230 | timeSlider->setValue( total); | 231 | timeSlider->setValue( total); |
231 | // printf("Writing number %d, bytes %d,total %d\r",number, bytesWritten , total); | 232 | // printf("Writing number %d, bytes %d,total %d\r",number, bytesWritten , total); |
232 | // fflush(stdout); | 233 | // fflush(stdout); |
233 | 234 | ||
234 | filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / (float)2/filePara.channels; | 235 | filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate |
236 | / (float)2/filePara.channels; | ||
235 | qApp->processEvents(); | 237 | qApp->processEvents(); |
236 | 238 | ||
237 | if( total >= filePara.samplesToRecord) { | 239 | if( total >= filePara.samplesToRecord) { |
238 | stopped = true; | 240 | stopped = true; |
239 | break; | 241 | break; |
240 | } | 242 | } |
@@ -252,16 +254,17 @@ void quickRec() | |||
252 | odebug << "quickRec:: stopped" << oendl; | 254 | odebug << "quickRec:: stopped" << oendl; |
253 | break; // stop if playing was set to false | 255 | break; // stop if playing was set to false |
254 | } | 256 | } |
255 | 257 | ||
256 | number = ::read( filePara.sd, unsigned_inbuffer, BUFSIZE); | 258 | number = ::read( filePara.sd, unsigned_inbuffer, BUFSIZE); |
257 | bytesWritten = ::write( filePara.fd , unsigned_inbuffer, number); | 259 | bytesWritten = ::write( filePara.fd , unsigned_inbuffer, number); |
260 | waveform->newSamples( (const short *) unsigned_inbuffer, number ); | ||
258 | 261 | ||
259 | if(bytesWritten < 0) { | 262 | if(bytesWritten < 0) { |
260 | stopped = true; | 263 | stopped = true; |
261 | QMessageBox::message("Note","There was a problem\nwriting to the file"); | 264 | QMessageBox::message("Note","<p>There was a problem writing to the file</p>"); |
262 | perror("File writing error "); | 265 | perror("File writing error "); |
263 | return; | 266 | return; |
264 | } | 267 | } |
265 | 268 | ||
266 | total += bytesWritten; | 269 | total += bytesWritten; |
267 | filePara.numberSamples = total; | 270 | filePara.numberSamples = total; |
@@ -310,13 +313,13 @@ void playIt() | |||
310 | adpcm_decoder( abuf, sbuf, number * 2, &decoder_state); | 313 | adpcm_decoder( abuf, sbuf, number * 2, &decoder_state); |
311 | 314 | ||
312 | // for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel | 315 | // for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel |
313 | // sbuf2[i+1]=sbuf2[i]=sbuf[i]; | 316 | // sbuf2[i+1]=sbuf2[i]=sbuf[i]; |
314 | // } | 317 | // } |
315 | bytesWritten = write ( filePara.sd, sbuf, number * 4); | 318 | bytesWritten = write ( filePara.sd, sbuf, number * 4); |
316 | waveform->newSamples( (const short *)sbuf, number ); | 319 | waveform->newSamples( (const short *)sbuf, number *4); |
317 | // if(filePara.channels==1) | 320 | // if(filePara.channels==1) |
318 | // total += bytesWritten/2; //mono | 321 | // total += bytesWritten/2; //mono |
319 | // else | 322 | // else |
320 | total += bytesWritten; | 323 | total += bytesWritten; |
321 | filePara.numberSamples = total/4; | 324 | filePara.numberSamples = total/4; |
322 | filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / 2; | 325 | filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / 2; |
@@ -351,13 +354,13 @@ void playIt() | |||
351 | number = ::read( filePara.fd, inbuffer, BUFSIZE); | 354 | number = ::read( filePara.fd, inbuffer, BUFSIZE); |
352 | // for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel | 355 | // for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel |
353 | // // for (int i=0;i< number ; i++) { //2*i is left channel | 356 | // // for (int i=0;i< number ; i++) { //2*i is left channel |
354 | // outbuffer[i+1]= outbuffer[i]=inbuffer[i]; | 357 | // outbuffer[i+1]= outbuffer[i]=inbuffer[i]; |
355 | // } | 358 | // } |
356 | bytesWritten = ::write( filePara.sd, inbuffer, number); | 359 | bytesWritten = ::write( filePara.sd, inbuffer, number); |
357 | waveform->newSamples( inbuffer, bytesWritten ); | 360 | waveform->newSamples( inbuffer, number); |
358 | //-------------->>>> out to device | 361 | //-------------->>>> out to device |
359 | // total+=bytesWritten; | 362 | // total+=bytesWritten; |
360 | // if(filePara.channels==1) | 363 | // if(filePara.channels==1) |
361 | // total += bytesWritten/2; //mono | 364 | // total += bytesWritten/2; //mono |
362 | // else | 365 | // else |
363 | total += bytesWritten; | 366 | total += bytesWritten; |
@@ -375,14 +378,14 @@ void playIt() | |||
375 | owarn << "Jane! Stop this crazy thing!" << oendl; | 378 | owarn << "Jane! Stop this crazy thing!" << oendl; |
376 | stopped = true; | 379 | stopped = true; |
377 | // playing = false; | 380 | // playing = false; |
378 | break; | 381 | break; |
379 | } | 382 | } |
380 | } | 383 | } |
381 | printf("\nplaying number %d, bytes %d, total %d\r",number, bytesWritten, total); | 384 | // printf("\nplaying number %d, bytes %d, total %d\r",number, bytesWritten, total); |
382 | fflush(stdout); | 385 | // fflush(stdout); |
383 | } //end loop | 386 | } //end loop |
384 | } else { | 387 | } else { |
385 | /////////////////////////////// format = AFMT_U8; | 388 | /////////////////////////////// format = AFMT_U8; |
386 | unsigned char unsigned_inbuffer[ BUFSIZE ]; //, unsigned_outbuffer[BUFSIZE]; | 389 | unsigned char unsigned_inbuffer[ BUFSIZE ]; //, unsigned_outbuffer[BUFSIZE]; |
387 | memset( unsigned_inbuffer, 0, BUFSIZE); | 390 | memset( unsigned_inbuffer, 0, BUFSIZE); |
388 | for(;;) { | 391 | for(;;) { |
@@ -447,23 +450,24 @@ QtRec::QtRec( QWidget* parent, const char* name, WFlags fl ) | |||
447 | 450 | ||
448 | soundDevice->closeDevice( true); | 451 | soundDevice->closeDevice( true); |
449 | soundDevice->sd = -1; | 452 | soundDevice->sd = -1; |
450 | soundDevice = 0; | 453 | soundDevice = 0; |
451 | wavFile = 0; | 454 | wavFile = 0; |
452 | 455 | ||
453 | if( soundDevice) delete soundDevice; | 456 | // if( soundDevice) delete soundDevice; |
454 | 457 | ||
455 | initIconView(); | 458 | initIconView(); |
456 | 459 | ||
457 | if( autoMute) | 460 | if( autoMute) |
458 | doMute( true); | 461 | doMute( true); |
459 | ListView1->setFocus(); | 462 | ListView1->setFocus(); |
460 | playing = false; | 463 | playing = false; |
461 | } | 464 | } |
462 | 465 | ||
463 | QtRec::~QtRec() { | 466 | QtRec::~QtRec() { |
467 | // if( soundDevice) delete soundDevice; | ||
464 | 468 | ||
465 | } | 469 | } |
466 | 470 | ||
467 | void QtRec::cleanUp() { | 471 | void QtRec::cleanUp() { |
468 | 472 | ||
469 | if( !stopped) { | 473 | if( !stopped) { |
@@ -473,13 +477,13 @@ void QtRec::cleanUp() { | |||
473 | 477 | ||
474 | ListView1->clear(); | 478 | ListView1->clear(); |
475 | 479 | ||
476 | if( autoMute) | 480 | if( autoMute) |
477 | doMute(false); | 481 | doMute(false); |
478 | 482 | ||
479 | if( wavFile) delete wavFile; | 483 | // if( wavFile) delete wavFile; |
480 | // if(soundDevice) delete soundDevice; | 484 | // if(soundDevice) delete soundDevice; |
481 | } | 485 | } |
482 | 486 | ||
483 | void QtRec::init() { | 487 | void QtRec::init() { |
484 | 488 | ||
485 | needsStereoOut = false; | 489 | needsStereoOut = false; |
@@ -1498,13 +1502,13 @@ void QtRec::endRecording() { | |||
1498 | 1502 | ||
1499 | cfg.write(); | 1503 | cfg.write(); |
1500 | odebug << "finished recording" << oendl; | 1504 | odebug << "finished recording" << oendl; |
1501 | timeLabel->setText(""); | 1505 | timeLabel->setText(""); |
1502 | } | 1506 | } |
1503 | 1507 | ||
1504 | if(soundDevice) delete soundDevice; | 1508 | // if(soundDevice) delete soundDevice; |
1505 | 1509 | ||
1506 | timeSlider->setValue(0); | 1510 | timeSlider->setValue(0); |
1507 | initIconView(); | 1511 | initIconView(); |
1508 | selectItemByName( currentFile); | 1512 | selectItemByName( currentFile); |
1509 | } | 1513 | } |
1510 | 1514 | ||
@@ -1538,13 +1542,13 @@ void QtRec::endPlaying() { | |||
1538 | 1542 | ||
1539 | // odebug << "track closed" << oendl; | 1543 | // odebug << "track closed" << oendl; |
1540 | killTimers(); | 1544 | killTimers(); |
1541 | owarn << "reset slider" << oendl; | 1545 | owarn << "reset slider" << oendl; |
1542 | timeSlider->setValue(0); | 1546 | timeSlider->setValue(0); |
1543 | 1547 | ||
1544 | if(soundDevice) delete soundDevice; | 1548 | // if(soundDevice) delete soundDevice; |
1545 | 1549 | ||
1546 | } | 1550 | } |
1547 | 1551 | ||
1548 | bool QtRec::openPlayFile() { | 1552 | bool QtRec::openPlayFile() { |
1549 | 1553 | ||
1550 | qApp->processEvents(); | 1554 | qApp->processEvents(); |
@@ -1787,13 +1791,13 @@ void QtRec::compressionSelected(bool b) { | |||
1787 | cfg.writeEntry("bitrate", 16); | 1791 | cfg.writeEntry("bitrate", 16); |
1788 | filePara.resolution = 16; | 1792 | filePara.resolution = 16; |
1789 | cfg.write(); | 1793 | cfg.write(); |
1790 | 1794 | ||
1791 | if(b) { | 1795 | if(b) { |
1792 | bitRateComboBox->setEnabled( false); | 1796 | bitRateComboBox->setEnabled( false); |
1793 | bitRateComboBox->setCurrentItem( 0); | 1797 | bitRateComboBox->setCurrentItem( 1); |
1794 | filePara.resolution = 16; | 1798 | filePara.resolution = 16; |
1795 | } else{ | 1799 | } else{ |
1796 | bitRateComboBox->setEnabled( true); | 1800 | bitRateComboBox->setEnabled( true); |
1797 | } | 1801 | } |
1798 | } | 1802 | } |
1799 | 1803 | ||