summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opierec/qtrec.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opierec/qtrec.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp
index e827083..9b761aa 100644
--- a/noncore/multimedia/opierec/qtrec.cpp
+++ b/noncore/multimedia/opierec/qtrec.cpp
@@ -147,36 +147,36 @@ void quickRec()
147 number = soundDevice->devRead( filePara.sd, sbuf, BUFSIZE); 147 number = soundDevice->devRead( filePara.sd, sbuf, BUFSIZE);
148 148
149 if(number <= 0) { 149 if(number <= 0) {
150 perror("recording error "); 150 perror("recording error ");
151 odebug << "" << filePara.fileName << " " << number << "" << oendl; 151 odebug << "" << filePara.fileName << " " << number << "" << oendl;
152 stopped = true; 152 stopped = true;
153 return; 153 return;
154 } 154 }
155 //if(stereo == 2) { 155 //if(stereo == 2) {
156// adpcm_coder( sbuf2, abuf, number/2, &encoder_state); 156// adpcm_coder( sbuf2, abuf, number/2, &encoder_state);
157 adpcm_coder( sbuf, abuf, number/2, &encoder_state); 157 adpcm_coder( sbuf, abuf, number/2, &encoder_state);
158 158
159 bytesWritten = ::write( filePara.fd , (short *)abuf, number/4); 159 bytesWritten = ::write( filePara.fd , abuf, number/4);
160 160
161 waveform->newSamples( sbuf, number ); 161 waveform->newSamples( sbuf, number );
162 162
163 total += bytesWritten; 163 total += bytesWritten;
164 filePara.numberSamples = total; 164 filePara.numberSamples = total;
165 timeSlider->setValue( total); 165 timeSlider->setValue( total);
166 166
167 printf("%d, bytes %d,total %d\r", number, bytesWritten, total); 167 printf("%d, bytes %d,total %d\r", number, bytesWritten, total);
168 fflush(stdout); 168 fflush(stdout);
169 169
170 filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate * (float)2/ filePara.channels; 170 filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate * (float)2;/// filePara.channels;
171 171
172 qApp->processEvents(); 172 qApp->processEvents();
173 if( total >= filePara.samplesToRecord) { 173 if( total >= filePara.samplesToRecord) {
174 stopped = true; 174 stopped = true;
175 break; 175 break;
176 } 176 }
177 } 177 }
178 } else { 178 } else {
179 // <<<<<<<<<<<<<<<<<<<<<<<<<<< WAVE_FORMAT_PCM >>>>>>>>>>>>>>>>>>>>>> 179 // <<<<<<<<<<<<<<<<<<<<<<<<<<< WAVE_FORMAT_PCM >>>>>>>>>>>>>>>>>>>>>>
180 odebug << "start recording WAVE_FORMAT_PCM" << oendl; 180 odebug << "start recording WAVE_FORMAT_PCM" << oendl;
181 short inbuffer[ BUFSIZE ], outbuffer[ BUFSIZE ]; 181 short inbuffer[ BUFSIZE ], outbuffer[ BUFSIZE ];
182 memset( inbuffer, 0, BUFSIZE); 182 memset( inbuffer, 0, BUFSIZE);
@@ -292,26 +292,28 @@ void playIt()
292 for(;;) { // play loop 292 for(;;) { // play loop
293 if ( stopped) { 293 if ( stopped) {
294 break; 294 break;
295 return; 295 return;
296 }// stop if playing was set to false 296 }// stop if playing was set to false
297 297
298 number = ::read( filePara.fd, abuf, BUFSIZE / 2); 298 number = ::read( filePara.fd, abuf, BUFSIZE / 2);
299 adpcm_decoder( abuf, sbuf, number * 2, &decoder_state); 299 adpcm_decoder( abuf, sbuf, number * 2, &decoder_state);
300 300
301// for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel 301// for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel
302// sbuf2[i+1]=sbuf2[i]=sbuf[i]; 302// sbuf2[i+1]=sbuf2[i]=sbuf[i];
303// } 303// }
304 bytesWritten = write ( filePara.sd, sbuf, number * 4); 304 bytesWritten = write ( soundDevice->sd , sbuf, number * 4);
305 waveform->newSamples( (const short *)sbuf, number *4); 305
306 waveform->newSamples( sbuf, number );
307
306 // if(filePara.channels==1) 308 // if(filePara.channels==1)
307 // total += bytesWritten/2; //mono 309 // total += bytesWritten/2; //mono
308 // else 310 // else
309 total += bytesWritten; 311 total += bytesWritten;
310 filePara.numberSamples = total/4; 312 filePara.numberSamples = total/4;
311 filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / 2; 313 filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / 2;
312 314
313 timeSlider->setValue( total/4); 315 timeSlider->setValue( total/4);
314// timeString.sprintf("%.2f", filePara.numberOfRecordedSeconds); 316// timeString.sprintf("%.2f", filePara.numberOfRecordedSeconds);
315// if(filePara.numberOfRecordedSeconds>1) 317// if(filePara.numberOfRecordedSeconds>1)
316// timeLabel->setText( timeString+ tr(" seconds")); 318// timeLabel->setText( timeString+ tr(" seconds"));
317// printf("playing number %d, bytes %d, total %d\n",number, bytesWritten, total/4); 319// printf("playing number %d, bytes %d, total %d\n",number, bytesWritten, total/4);
@@ -333,25 +335,25 @@ void playIt()
333 335
334 for(;;) { // play loop 336 for(;;) { // play loop
335 if ( stopped) { 337 if ( stopped) {
336 break; 338 break;
337 return; 339 return;
338 } 340 }
339// stop if playing was set to false 341// stop if playing was set to false
340 number = ::read( filePara.fd, inbuffer, BUFSIZE); 342 number = ::read( filePara.fd, inbuffer, BUFSIZE);
341// for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel 343// for (int i=0;i< number * 2; 2 * i++) { //2*i is left channel
342// // for (int i=0;i< number ; i++) { //2*i is left channel 344// // for (int i=0;i< number ; i++) { //2*i is left channel
343// outbuffer[i+1]= outbuffer[i]=inbuffer[i]; 345// outbuffer[i+1]= outbuffer[i]=inbuffer[i];
344// } 346// }
345 bytesWritten = ::write( filePara.sd, inbuffer, number); 347 bytesWritten = ::write( soundDevice->sd, inbuffer, number);
346 waveform->newSamples( inbuffer, number); 348 waveform->newSamples( inbuffer, number);
347 //-------------->>>> out to device 349 //-------------->>>> out to device
348 // total+=bytesWritten; 350 // total+=bytesWritten;
349 // if(filePara.channels==1) 351 // if(filePara.channels==1)
350 // total += bytesWritten/2; //mono 352 // total += bytesWritten/2; //mono
351 // else 353 // else
352 total += bytesWritten; 354 total += bytesWritten;
353 timeSlider->setValue( total); 355 timeSlider->setValue( total);
354 356
355 filePara.numberSamples = total; 357 filePara.numberSamples = total;
356 filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / (float)2; 358 filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / (float)2;
357 359
@@ -779,26 +781,26 @@ void QtRec::initConfig() {
779 QString temp; 781 QString temp;
780 sizeLimitCombo->setCurrentItem((i/5)); 782 sizeLimitCombo->setCurrentItem((i/5));
781 783
782 stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1)); 784 stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1));
783 if( stereoCheckBox->isChecked()) { 785 if( stereoCheckBox->isChecked()) {
784 filePara.channels = 2; 786 filePara.channels = 2;
785 } else { 787 } else {
786 filePara.channels = 1; 788 filePara.channels = 1;
787 } 789 }
788 790
789 compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1)); 791 compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1));
790 if( compressionCheckBox->isChecked()) { 792 if( compressionCheckBox->isChecked()) {
793 bitRateComboBox->setCurrentItem(1);
791 bitRateComboBox->setEnabled(false); 794 bitRateComboBox->setEnabled(false);
792 bitRateComboBox->setCurrentItem(0);
793 filePara.resolution=16; 795 filePara.resolution=16;
794 } 796 }
795 797
796 autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0)); 798 autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0));
797 if( autoMuteCheckBox->isChecked()) 799 if( autoMuteCheckBox->isChecked())
798 slotAutoMute(true); 800 slotAutoMute(true);
799 else 801 else
800 slotAutoMute(false); 802 slotAutoMute(false);
801 803
802 Config cofg( "qpe"); 804 Config cofg( "qpe");
803 cofg.setGroup( "Volume"); 805 cofg.setGroup( "Volume");
804 outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0)); 806 outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0));
@@ -1039,25 +1041,25 @@ bool QtRec::setupAudio( bool b) {
1039// odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl; 1041// odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl;
1040 } 1042 }
1041#endif 1043#endif
1042 1044
1043 stereo = filePara.channels; 1045 stereo = filePara.channels;
1044// filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100; 1046// filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100;
1045 flags= O_RDWR; 1047 flags= O_RDWR;
1046// flags= O_RDONLY; 1048// flags= O_RDONLY;
1047 recording = true; 1049 recording = true;
1048 } 1050 }
1049 1051
1050 // if(soundDevice) delete soundDevice; 1052 // if(soundDevice) delete soundDevice;
1051 odebug << "<<<<<<<<<<<<<<<<<<<open dsp " << filePara.sampleRate << " " << filePara.channels << " " << sampleformat << "" << oendl; 1053 owarn << "<<<<<<<<<<<<<<<<<<<open dsp " << filePara.sampleRate << " " << filePara.channels << " " << sampleformat << "" << oendl;
1052 // owarn << "change waveform settings" << oendl; 1054 // owarn << "change waveform settings" << oendl;
1053 waveform->changeSettings( filePara.sampleRate, filePara.channels ); 1055 waveform->changeSettings( filePara.sampleRate, filePara.channels );
1054 1056
1055 soundDevice = new Device( this, b); //open rec 1057 soundDevice = new Device( this, b); //open rec
1056// soundDevice->openDsp(); 1058// soundDevice->openDsp();
1057 soundDevice->reset(); 1059 soundDevice->reset();
1058 1060
1059 odebug << "device has been made " << soundDevice->sd << "" << oendl; 1061 odebug << "device has been made " << soundDevice->sd << "" << oendl;
1060 1062
1061 ////////////////// <<<<<<<<<<<<>>>>>>>>>>>> 1063 ////////////////// <<<<<<<<<<<<>>>>>>>>>>>>
1062 soundDevice->setDeviceFormat( sampleformat); 1064 soundDevice->setDeviceFormat( sampleformat);
1063 soundDevice->setDeviceChannels( filePara.channels); 1065 soundDevice->setDeviceChannels( filePara.channels);
@@ -1474,25 +1476,25 @@ void QtRec::endPlaying() {
1474// if(wavFile) delete wavFile; //this crashes 1476// if(wavFile) delete wavFile; //this crashes
1475 1477
1476 odebug << "track closed" << oendl; 1478 odebug << "track closed" << oendl;
1477 killTimers(); 1479 killTimers();
1478 // owarn << "reset slider" << oendl; 1480 // owarn << "reset slider" << oendl;
1479 timeSlider->setValue(0); 1481 timeSlider->setValue(0);
1480 1482
1481// if(soundDevice) delete soundDevice; 1483// if(soundDevice) delete soundDevice;
1482 1484
1483} 1485}
1484 1486
1485bool QtRec::openPlayFile() { 1487bool QtRec::openPlayFile() {
1486 1488 qWarning("opening file");
1487 qApp->processEvents(); 1489 qApp->processEvents();
1488 if( currentFile.isEmpty()) { 1490 if( currentFile.isEmpty()) {
1489 QMessageBox::message(tr("Opierec"),tr("Please select file to play")); 1491 QMessageBox::message(tr("Opierec"),tr("Please select file to play"));
1490 endPlaying(); 1492 endPlaying();
1491 return false; 1493 return false;
1492 } 1494 }
1493 QString currentFileName; 1495 QString currentFileName;
1494 Config cfg("OpieRec"); 1496 Config cfg("OpieRec");
1495 cfg.setGroup("Sounds"); 1497 cfg.setGroup("Sounds");
1496 int nFiles = cfg.readNumEntry( "NumberofFiles", 0); 1498 int nFiles = cfg.readNumEntry( "NumberofFiles", 0);
1497 for(int i=0;i<nFiles+1;i++) { //look for file 1499 for(int i=0;i<nFiles+1;i++) { //look for file
1498 if( cfg.readEntry( QString::number(i),"").find( currentFile,0,true) != -1) { 1500 if( cfg.readEntry( QString::number(i),"").find( currentFile,0,true) != -1) {
@@ -1717,26 +1719,27 @@ void QtRec::doMicMuting(bool b) {
1717 QCopEnvelope( "QPE/System", "micChange(bool)" ) << b; 1719 QCopEnvelope( "QPE/System", "micChange(bool)" ) << b;
1718} 1720}
1719 1721
1720void QtRec::compressionSelected(bool b) { 1722void QtRec::compressionSelected(bool b) {
1721 Config cfg("OpieRec"); 1723 Config cfg("OpieRec");
1722 cfg.setGroup("Settings"); 1724 cfg.setGroup("Settings");
1723 cfg.writeEntry("wavCompression", b); 1725 cfg.writeEntry("wavCompression", b);
1724 cfg.writeEntry("bitrate", 16); 1726 cfg.writeEntry("bitrate", 16);
1725 filePara.resolution = 16; 1727 filePara.resolution = 16;
1726 cfg.write(); 1728 cfg.write();
1727 1729
1728 if(b) { 1730 if(b) {
1729 bitRateComboBox->setEnabled( false); 1731 qWarning("set adpcm");
1730 bitRateComboBox->setCurrentItem( 1); 1732 bitRateComboBox->setCurrentItem( 1);
1733 bitRateComboBox->setEnabled( false);
1731 filePara.resolution = 16; 1734 filePara.resolution = 16;
1732 } else{ 1735 } else{
1733 bitRateComboBox->setEnabled( true); 1736 bitRateComboBox->setEnabled( true);
1734 } 1737 }
1735} 1738}
1736 1739
1737long QtRec::checkDiskSpace(const QString &path) { 1740long QtRec::checkDiskSpace(const QString &path) {
1738 1741
1739 struct statfs fs; 1742 struct statfs fs;
1740 1743
1741 if ( !statfs( path.latin1(), &fs ) ) { 1744 if ( !statfs( path.latin1(), &fs ) ) {
1742 1745