summaryrefslogtreecommitdiff
path: root/noncore/multimedia
Unidiff
Diffstat (limited to 'noncore/multimedia') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp33
-rw-r--r--noncore/multimedia/opierec/qtrec.h13
-rw-r--r--noncore/multimedia/opierec/wavFile.cpp36
3 files changed, 39 insertions, 43 deletions
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp
index 9b761aa..9d3d5cf 100644
--- a/noncore/multimedia/opierec/qtrec.cpp
+++ b/noncore/multimedia/opierec/qtrec.cpp
@@ -699,50 +699,55 @@ void QtRec::initIconView() {
699 filePath = cfg.readEntry( temp,""); //currentFileName 699 filePath = cfg.readEntry( temp,""); //currentFileName
700 700
701 QFileInfo info(filePath); 701 QFileInfo info(filePath);
702 fileDate = info.lastModified().toString(); 702 fileDate = info.lastModified().toString();
703 703
704 fileS = cfg.readEntry( filePath, "0" );// file length in seconds 704 fileS = cfg.readEntry( filePath, "0" );// file length in seconds
705 mediaLocation = getStorage( filePath); 705 mediaLocation = getStorage( filePath);
706 if( info.exists()) { 706 if( info.exists()) {
707 // owarn << "new item " << temp << oendl; 707 // owarn << "new item " << temp << oendl;
708 item = new QListViewItem( ListView1, temp, fileS /*, mediaLocation, fileDate*/); 708 item = new QListViewItem( ListView1, temp, fileS /*, mediaLocation, fileDate*/);
709 item->setPixmap( 0, image0); 709 item->setPixmap( 0, image0);
710 if( currentFileName == filePath) 710 if( currentFileName == filePath)
711 ListView1->setSelected( item, true); 711 ListView1->setSelected( item, true);
712 } 712 }
713 } 713 }
714} 714}
715 715
716void QtRec::initConnections() { 716void QtRec::initConnections() {
717 connect(qApp,SIGNAL(aboutToQuit()),SLOT(cleanUp())); 717 connect(qApp,SIGNAL(aboutToQuit()),SLOT(cleanUp()));
718 718
719 connect(toBeginningButton,SIGNAL(pressed()),this,SLOT(rewindPressed())); 719 connect(toBeginningButton,SIGNAL(pressed()),this,SLOT(rewindPressed()));
720 connect(toBeginningButton,SIGNAL(released()),this,SLOT(rewindReleased())); 720 connect(toBeginningButton,SIGNAL(released()),this,SLOT(rewindReleased()));
721 connect(toEndButton,SIGNAL(pressed()),this,SLOT(FastforwardPressed())); 721 connect(toEndButton,SIGNAL(pressed()),this,SLOT(FastforwardPressed()));
722 connect(toEndButton,SIGNAL(released()),this,SLOT(FastforwardReleased())); 722 connect(toEndButton,SIGNAL(released()),this,SLOT(FastforwardReleased()));
723
723 connect(deleteSoundButton,SIGNAL(released()),this,SLOT(deleteSound())); 724 connect(deleteSoundButton,SIGNAL(released()),this,SLOT(deleteSound()));
725
724 connect(Stop_PushButton,SIGNAL(released()),this,SLOT(doPlayBtn())); 726 connect(Stop_PushButton,SIGNAL(released()),this,SLOT(doPlayBtn()));
727 // connect(Stop_PushButton,SIGNAL(released()),this,SLOT(doPlayBtn()));
728
729 // connect(Rec_PushButton,SIGNAL(released()),this,SIGNAL(startRecording()));
725 connect(Rec_PushButton,SIGNAL(released()),this,SLOT(newSound())); 730 connect(Rec_PushButton,SIGNAL(released()),this,SLOT(newSound()));
726 731
727 connect(TabWidget,SIGNAL(currentChanged(QWidget*)),this,SLOT(thisTab(QWidget*))); 732 connect(TabWidget,SIGNAL(currentChanged(QWidget*)),this,SLOT(thisTab(QWidget*)));
728 733
729 connect(OutputSlider,SIGNAL(sliderReleased()),this,SLOT(changedOutVolume())); 734 connect(OutputSlider,SIGNAL(sliderReleased()),this,SLOT(changedOutVolume()));
730 connect(InputSlider,SIGNAL(sliderReleased()),this,SLOT(changedInVolume())); 735 connect(InputSlider,SIGNAL(sliderReleased()),this,SLOT(changedInVolume()));
731 736
732 connect(sampleRateComboBox,SIGNAL(activated(int)),this,SLOT(changesamplerateCombo(int))); 737 connect(sampleRateComboBox,SIGNAL(activated(int)),this,SLOT(changesamplerateCombo(int)));
733 connect(bitRateComboBox,SIGNAL(activated(int)),this,SLOT(changebitrateCombo(int))); 738 connect(bitRateComboBox,SIGNAL(activated(int)),this,SLOT(changebitrateCombo(int)));
734 connect(directoryComboBox,SIGNAL(activated(int)),this,SLOT(changeDirCombo(int))); 739 connect(directoryComboBox,SIGNAL(activated(int)),this,SLOT(changeDirCombo(int)));
735 connect(sizeLimitCombo,SIGNAL(activated(int)),this,SLOT(changeSizeLimitCombo(int))); 740 connect(sizeLimitCombo,SIGNAL(activated(int)),this,SLOT(changeSizeLimitCombo(int)));
736 741
737 connect(stereoCheckBox,SIGNAL(toggled(bool)),this,SLOT(changeStereoCheck(bool))); 742 connect(stereoCheckBox,SIGNAL(toggled(bool)),this,SLOT(changeStereoCheck(bool)));
738 connect(outMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(doVolMuting(bool))); 743 connect(outMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(doVolMuting(bool)));
739 connect(inMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(doMicMuting(bool))); 744 connect(inMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(doMicMuting(bool)));
740 745
741 connect(ListView1,SIGNAL(doubleClicked(QListViewItem*)),this,SLOT(itClick(QListViewItem*))); 746 connect(ListView1,SIGNAL(doubleClicked(QListViewItem*)),this,SLOT(itClick(QListViewItem*)));
742 connect(ListView1,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT(listPressed(int,QListViewItem*,const QPoint&,int))); 747 connect(ListView1,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT(listPressed(int,QListViewItem*,const QPoint&,int)));
743 748
744 connect(timeSlider,SIGNAL(sliderMoved(int)),this,SLOT(changeTimeSlider(int))); 749 connect(timeSlider,SIGNAL(sliderMoved(int)),this,SLOT(changeTimeSlider(int)));
745 connect(timeSlider,SIGNAL(sliderPressed()),this,SLOT(timeSliderPressed())); 750 connect(timeSlider,SIGNAL(sliderPressed()),this,SLOT(timeSliderPressed()));
746 connect(timeSlider,SIGNAL(sliderReleased()),this,SLOT(timeSliderReleased())); 751 connect(timeSlider,SIGNAL(sliderReleased()),this,SLOT(timeSliderReleased()));
747 752
748 connect(compressionCheckBox,SIGNAL(toggled(bool)),this,SLOT(compressionSelected(bool))); 753 connect(compressionCheckBox,SIGNAL(toggled(bool)),this,SLOT(compressionSelected(bool)));
@@ -790,52 +795,55 @@ void QtRec::initConfig() {
790 795
791 compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1)); 796 compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1));
792 if( compressionCheckBox->isChecked()) { 797 if( compressionCheckBox->isChecked()) {
793 bitRateComboBox->setCurrentItem(1); 798 bitRateComboBox->setCurrentItem(1);
794 bitRateComboBox->setEnabled(false); 799 bitRateComboBox->setEnabled(false);
795 filePara.resolution=16; 800 filePara.resolution=16;
796 } 801 }
797 802
798 autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0)); 803 autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0));
799 if( autoMuteCheckBox->isChecked()) 804 if( autoMuteCheckBox->isChecked())
800 slotAutoMute(true); 805 slotAutoMute(true);
801 else 806 else
802 slotAutoMute(false); 807 slotAutoMute(false);
803 808
804 Config cofg( "qpe"); 809 Config cofg( "qpe");
805 cofg.setGroup( "Volume"); 810 cofg.setGroup( "Volume");
806 outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0)); 811 outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0));
807 inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0)); 812 inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0));
808} 813}
809 814
810void QtRec::stop() { 815void QtRec::stop() {
811 // owarn << "STOP" << oendl; 816 // owarn << "STOP" << oendl;
812 setRecordButton(false); 817 setRecordButton(false);
813 818
814 if( !recording) 819 if( !recording) {
820 emit stopPlaying();
815 endPlaying(); 821 endPlaying();
816 else 822 } else {
823 emit stopRecording();
817 endRecording(); 824 endRecording();
825 }
818 timeSlider->setValue(0); 826 timeSlider->setValue(0);
819} 827}
820 828
821void QtRec::doPlayBtn() { 829void QtRec::doPlayBtn() {
822 830
823 if(!stopped) { 831 if(!stopped) {
824 // playLabel2->setText(tr("Play")); 832 // playLabel2->setText(tr("Play"));
825 stop(); 833 stop();
826 } else { 834 } else {
827 if(ListView1->currentItem() == 0) return; 835 if(ListView1->currentItem() == 0) return;
828 // playLabel2->setText(tr("Stop")); 836 // playLabel2->setText(tr("Stop"));
829 currentFile = ListView1->currentItem()->text(0); 837 currentFile = ListView1->currentItem()->text(0);
830 start(); 838 start();
831 } 839 }
832} 840}
833 841
834void QtRec::start() { //play 842void QtRec::start() { //play
835 if( stopped) { 843 if( stopped) {
836 QPixmap image3( ( const char** ) image3_data ); 844 QPixmap image3( ( const char** ) image3_data );
837 Stop_PushButton->setPixmap( image3 ); 845 Stop_PushButton->setPixmap( image3 );
838 Stop_PushButton->setDown( true); 846 Stop_PushButton->setDown( true);
839 stopped = false; 847 stopped = false;
840 paused = false; 848 paused = false;
841 secCount = 1; 849 secCount = 1;
@@ -843,57 +851,49 @@ void QtRec::start() { //play
843 if( openPlayFile()) 851 if( openPlayFile())
844 if( setupAudio( false)) //recording is false 852 if( setupAudio( false)) //recording is false
845 doPlay(); 853 doPlay();
846 } 854 }
847} 855}
848 856
849bool QtRec::rec() { //record 857bool QtRec::rec() { //record
850 QString timeString; 858 QString timeString;
851 timeString.sprintf("%.0f", 0.0); 859 timeString.sprintf("%.0f", 0.0);
852 // timeLabel->setText( timeString+ " seconds"); 860 // timeLabel->setText( timeString+ " seconds");
853 if(!stopped) { 861 if(!stopped) {
854 monitoring = true; 862 monitoring = true;
855 return false; 863 return false;
856 } else { 864 } else {
857 secCount = 1; 865 secCount = 1;
858 // playLabel2->setText(tr("Stop")); 866 // playLabel2->setText(tr("Stop"));
859 monitoring = false; 867 monitoring = false;
860 setRecordButton( true); 868 setRecordButton( true);
861 869
862 if( setupAudio( true)) 870 if( setupAudio( true))
863 if(setUpFile()) { 871 if(setUpFile()) {
864 int fileSize = 0; 872 int fileSize = 0;
865 Config cfg("OpieRec"); 873 Config cfg("OpieRec");
866 cfg.setGroup("Settings"); 874 cfg.setGroup("Settings");
867// odebug << "<<<<<<<Device bits " << soundDevice->getDeviceBits()
868// << ", device rate " << soundDevice->getDeviceRate()
869// << ", device channels " << soundDevice->getDeviceChannels() << oendl;
870
871 //filePara.sampleRate = cfg.readNumEntry("samplerate", 22050);
872// odebug << "sample rate is " << filePara.sampleRate << "" << oendl;
873 filePara.SecondsToRecord = getCurrentSizeLimit(); 875 filePara.SecondsToRecord = getCurrentSizeLimit();
874
875// odebug << "size limit " << filePara.SecondsToRecord << " sec" << oendl;
876 int diskSize = checkDiskSpace( (const QString &) wavFile->trackName()); 876 int diskSize = checkDiskSpace( (const QString &) wavFile->trackName());
877 877
878 if( filePara.SecondsToRecord == 0) { 878 if( filePara.SecondsToRecord == 0) {
879 fileSize = diskSize; 879 fileSize = diskSize;
880 } else if( filePara.format == WAVE_FORMAT_PCM) { 880 } else if( filePara.format == WAVE_FORMAT_PCM) {
881// odebug << "WAVE_FORMAT_PCM" << oendl; 881// odebug << "WAVE_FORMAT_PCM" << oendl;
882 fileSize = (filePara.SecondsToRecord ) * filePara.channels 882 fileSize = (filePara.SecondsToRecord ) * filePara.channels
883 * filePara.sampleRate * ( filePara.resolution / 8) + 1000; 883 * filePara.sampleRate * ( filePara.resolution / 8) + 1000;
884 } else { 884 } else {
885// odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl; 885// odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl;
886 fileSize = ((filePara.SecondsToRecord) * filePara.channels 886 fileSize = ((filePara.SecondsToRecord) * filePara.channels
887 * filePara.sampleRate * ( filePara.resolution / 8) ) / 4 + 250; 887 * filePara.sampleRate * ( filePara.resolution / 8) ) / 4 + 250;
888 } 888 }
889 889
890 filePara.samplesToRecord = fileSize; 890 filePara.samplesToRecord = fileSize;
891 odebug << "filesize should be " << filePara.samplesToRecord 891 odebug << "filesize should be " << filePara.samplesToRecord
892 << ", bits " << filePara.resolution << ", rate " << filePara.sampleRate; 892 << ", bits " << filePara.resolution << ", rate " << filePara.sampleRate;
893 if( paused) { 893 if( paused) {
894 paused = false; 894 paused = false;
895 } 895 }
896 // else { 896 // else {
897 odebug << "Setting timeslider " << filePara.samplesToRecord << "" << oendl; 897 odebug << "Setting timeslider " << filePara.samplesToRecord << "" << oendl;
898 // if(fileSize != 0) 898 // if(fileSize != 0)
899 timeSlider->setRange(0, filePara.samplesToRecord); 899 timeSlider->setRange(0, filePara.samplesToRecord);
@@ -1028,102 +1028,98 @@ bool QtRec::setupAudio( bool b) {
1028 1028
1029#else 1029#else
1030 if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "16") 1030 if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "16")
1031 sampleformat = AFMT_S16_LE; 1031 sampleformat = AFMT_S16_LE;
1032 else 1032 else
1033 sampleformat = AFMT_U8; 1033 sampleformat = AFMT_U8;
1034 1034
1035 if( !compressionCheckBox->isChecked()) { 1035 if( !compressionCheckBox->isChecked()) {
1036 filePara.format = WAVE_FORMAT_PCM; 1036 filePara.format = WAVE_FORMAT_PCM;
1037// odebug << "WAVE_FORMAT_PCM" << oendl; 1037// odebug << "WAVE_FORMAT_PCM" << oendl;
1038 } else { 1038 } else {
1039 filePara.format = WAVE_FORMAT_DVI_ADPCM; 1039 filePara.format = WAVE_FORMAT_DVI_ADPCM;
1040 sampleformat = AFMT_S16_LE; 1040 sampleformat = AFMT_S16_LE;
1041// odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl; 1041// odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl;
1042 } 1042 }
1043#endif 1043#endif
1044 1044
1045 stereo = filePara.channels; 1045 stereo = filePara.channels;
1046// filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100; 1046// filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100;
1047 flags= O_RDWR; 1047 flags= O_RDWR;
1048// flags= O_RDONLY; 1048// flags= O_RDONLY;
1049 recording = true; 1049 recording = true;
1050 } 1050 }
1051 1051
1052 // if(soundDevice) delete soundDevice;
1053 owarn << "<<<<<<<<<<<<<<<<<<<open dsp " << filePara.sampleRate << " " << filePara.channels << " " << sampleformat << "" << oendl; 1052 owarn << "<<<<<<<<<<<<<<<<<<<open dsp " << filePara.sampleRate << " " << filePara.channels << " " << sampleformat << "" << oendl;
1054 // owarn << "change waveform settings" << oendl; 1053 // owarn << "change waveform settings" << oendl;
1055 waveform->changeSettings( filePara.sampleRate, filePara.channels ); 1054 waveform->changeSettings( filePara.sampleRate, filePara.channels );
1056 1055
1057 soundDevice = new Device( this, b); //open rec 1056 soundDevice = new Device( this, b); //open rec
1058// soundDevice->openDsp(); 1057// soundDevice->openDsp();
1059 soundDevice->reset(); 1058 soundDevice->reset();
1060 1059
1061 odebug << "device has been made " << soundDevice->sd << "" << oendl; 1060 odebug << "device has been made " << soundDevice->sd << "" << oendl;
1062 1061
1063 ////////////////// <<<<<<<<<<<<>>>>>>>>>>>> 1062 ////////////////// <<<<<<<<<<<<>>>>>>>>>>>>
1064 soundDevice->setDeviceFormat( sampleformat); 1063 soundDevice->setDeviceFormat( sampleformat);
1065 soundDevice->setDeviceChannels( filePara.channels); 1064 soundDevice->setDeviceChannels( filePara.channels);
1066 soundDevice->setDeviceRate( filePara.sampleRate); 1065 soundDevice->setDeviceRate( filePara.sampleRate);
1067 soundDevice->getDeviceFragSize(); 1066 soundDevice->getDeviceFragSize();
1068#ifdef QT_QWS_EBX 1067#ifdef QT_QWS_EBX
1069 int frag = FRAGSIZE; 1068 int frag = FRAGSIZE;
1070 soundDevice->setFragSize( frag); 1069 soundDevice->setFragSize( frag);
1071 soundDevice->getDeviceFragSize(); 1070 soundDevice->getDeviceFragSize();
1072#endif 1071#endif
1073 ///////////////// 1072 /////////////////
1074 filePara.sd = soundDevice->sd; 1073 filePara.sd = soundDevice->sd;
1075 1074
1076 if ( filePara.sd == -1) { 1075 if ( filePara.sd == -1) {
1077 1076
1078 monitoring = false; 1077 monitoring = false;
1079 stopped = true; 1078 stopped = true;
1080 update(); 1079 update();
1081 setCaption( tr( "OpieRecord " )+ QString::number(VERSION) ); 1080 setCaption( tr( "OpieRecord " )+ QString::number(VERSION) );
1082 return false; 1081 return false;
1083 } 1082 }
1084 if(autoMute) 1083 if(autoMute)
1085 doMute(false); 1084 doMute(false);
1086 1085
1087 return true; 1086 return true;
1088} 1087}
1089 1088
1090 1089
1091bool QtRec::setUpFile() { //setup file for recording 1090bool QtRec::setUpFile() { //setup file for recording
1092// odebug << "Setting up wavfile" << oendl;
1093// if(wavFile) delete wavFile;
1094 wavFile = new WavFile( this, (const QString &)"", 1091 wavFile = new WavFile( this, (const QString &)"",
1095 true, 1092 true,
1096 filePara.sampleRate, 1093 filePara.sampleRate,
1097 filePara.channels, 1094 filePara.channels,
1098 filePara.resolution, 1095 filePara.resolution,
1099 filePara.format); 1096 filePara.format);
1100 1097
1101 filePara.fd = wavFile->wavHandle(); 1098 filePara.fd = wavFile->wavHandle();
1102 if(filePara.fd == -1) { 1099 if(filePara.fd == -1) {
1103 return false; 1100 return false;
1104 } else { 1101 } else {
1105// filePara.channels=1;
1106 } 1102 }
1107 return true; 1103 return true;
1108} 1104}
1109 1105
1110/// <<<<<<<<<<<<<<<< PLAY >>>>>>>>>>>>>>>>>>> 1106/// <<<<<<<<<<<<<<<< PLAY >>>>>>>>>>>>>>>>>>>
1111bool QtRec::doPlay() { 1107bool QtRec::doPlay() {
1112 1108
1113 if( !paused) { 1109 if( !paused) {
1114 total = 0; 1110 total = 0;
1115 filePara.numberOfRecordedSeconds = 0; 1111 filePara.numberOfRecordedSeconds = 0;
1116 } else { 1112 } else {
1117 paused = false; 1113 paused = false;
1118 secCount = (int)filePara.numberOfRecordedSeconds; 1114 secCount = (int)filePara.numberOfRecordedSeconds;
1119 } 1115 }
1120 playing = true; 1116 playing = true;
1121 stopped = false; 1117 stopped = false;
1122 recording = false; 1118 recording = false;
1123 1119
1124 QString num; 1120 QString num;
1125 odebug << "Play number of samples " << filePara.numberSamples << "" << oendl; 1121 odebug << "Play number of samples " << filePara.numberSamples << "" << oendl;
1126 1122
1127// timeSlider->setRange( 0, filePara.numberSamples); 1123// timeSlider->setRange( 0, filePara.numberSamples);
1128 1124
1129 timeString.sprintf("%f", filePara.numberOfRecordedSeconds); 1125 timeString.sprintf("%f", filePara.numberOfRecordedSeconds);
@@ -1204,55 +1200,48 @@ void QtRec::changeDirCombo(int index) {
1204void QtRec::changeSizeLimitCombo(int) { 1200void QtRec::changeSizeLimitCombo(int) {
1205 Config cfg("OpieRec"); 1201 Config cfg("OpieRec");
1206 cfg.setGroup("Settings"); 1202 cfg.setGroup("Settings");
1207 cfg.writeEntry("sizeLimit", getCurrentSizeLimit() ); 1203 cfg.writeEntry("sizeLimit", getCurrentSizeLimit() );
1208 cfg.write(); 1204 cfg.write();
1209} 1205}
1210 1206
1211void QtRec::newSound() { 1207void QtRec::newSound() {
1212 if( !rec()) { 1208 if( !rec()) {
1213 endRecording(); 1209 endRecording();
1214 deleteSound(); 1210 deleteSound();
1215 } 1211 }
1216} 1212}
1217 1213
1218void QtRec::itClick(QListViewItem *item) { 1214void QtRec::itClick(QListViewItem *item) {
1219 currentFile = item->text(0); 1215 currentFile = item->text(0);
1220 setCaption("OpieRecord "+currentFile); 1216 setCaption("OpieRecord "+currentFile);
1221} 1217}
1222 1218
1223void QtRec::deleteSound() { 1219void QtRec::deleteSound() {
1224 Config cfg("OpieRec"); 1220 Config cfg("OpieRec");
1225 cfg.setGroup("Sounds"); 1221 cfg.setGroup("Sounds");
1226 if( ListView1->currentItem() == NULL) 1222 if( ListView1->currentItem() == NULL)
1227 return; 1223 return;
1228// #ifndef DEV_VERSION
1229 // switch ( QMessageBox::warning(this,tr("Delete"),
1230 // tr("Do you really want to <font size=+2><B>DELETE</B></font>\nthe selected file?"),
1231 // tr("Yes"),tr("No"),0,1,1) ) {
1232 // case 0:
1233// #endif
1234 // {
1235 QString file = ListView1->currentItem()->text(0); 1224 QString file = ListView1->currentItem()->text(0);
1236 QString fileName; 1225 QString fileName;
1237 fileName = cfg.readEntry( file, ""); 1226 fileName = cfg.readEntry( file, "");
1238 QFile f( fileName); 1227 QFile f( fileName);
1239 if( f.exists()) 1228 if( f.exists())
1240 if( !f.remove()) 1229 if( !f.remove())
1241 QMessageBox::message( tr("Error"), tr("Could not remove file.")); 1230 QMessageBox::message( tr("Error"), tr("Could not remove file."));
1242 1231
1243 int nFiles = cfg.readNumEntry( "NumberofFiles",0); 1232 int nFiles = cfg.readNumEntry( "NumberofFiles",0);
1244 bool found = false; 1233 bool found = false;
1245 for(int i=0;i<nFiles+1;i++) { 1234 for(int i=0;i<nFiles+1;i++) {
1246 1235
1247 if( cfg.readEntry( QString::number(i),"").find( file,0,true) != -1) { 1236 if( cfg.readEntry( QString::number(i),"").find( file,0,true) != -1) {
1248 found = true; 1237 found = true;
1249 cfg.writeEntry( QString::number(i), cfg.readEntry( QString::number(i+1),"")); 1238 cfg.writeEntry( QString::number(i), cfg.readEntry( QString::number(i+1),""));
1250 } 1239 }
1251 if(found) 1240 if(found)
1252 cfg.writeEntry( QString::number(i), cfg.readEntry( QString::number(i+1),"")); 1241 cfg.writeEntry( QString::number(i), cfg.readEntry( QString::number(i+1),""));
1253 } 1242 }
1254 1243
1255 cfg.removeEntry( cfg.readEntry( file)); 1244 cfg.removeEntry( cfg.readEntry( file));
1256 cfg.removeEntry( file); 1245 cfg.removeEntry( file);
1257 cfg.writeEntry( "NumberofFiles", nFiles-1); 1246 cfg.writeEntry( "NumberofFiles", nFiles-1);
1258 cfg.write(); 1247 cfg.write();
@@ -1380,51 +1369,49 @@ void QtRec::keyReleaseEvent( QKeyEvent *e) {
1380 break; 1369 break;
1381 } 1370 }
1382} 1371}
1383 1372
1384void QtRec::endRecording() { 1373void QtRec::endRecording() {
1385 1374
1386 monitoring = false; 1375 monitoring = false;
1387 recording = false; 1376 recording = false;
1388 stopped = true; 1377 stopped = true;
1389 waveform->reset(); 1378 waveform->reset();
1390 setRecordButton( false); 1379 setRecordButton( false);
1391 1380
1392 toBeginningButton->setEnabled( true); 1381 toBeginningButton->setEnabled( true);
1393 toEndButton->setEnabled( true); 1382 toEndButton->setEnabled( true);
1394 1383
1395 killTimers(); 1384 killTimers();
1396 1385
1397 if(autoMute) 1386 if(autoMute)
1398 doMute( true); 1387 doMute( true);
1399 1388
1400 soundDevice->closeDevice( true); 1389 soundDevice->closeDevice( true);
1401 1390
1402 if( wavFile->track.isOpen()) { 1391 if( wavFile->track.isOpen()) {
1403 wavFile->adjustHeaders( filePara.fd, filePara.numberSamples); 1392 wavFile->adjustHeaders( filePara.fd, filePara.numberSamples);
1404 // soundDevice->sd=-1;
1405 filePara.numberSamples = 0; 1393 filePara.numberSamples = 0;
1406 // filePara.sd=-1;
1407 wavFile->closeFile(); 1394 wavFile->closeFile();
1408 filePara.fd=0; 1395 filePara.fd=0;
1409 1396
1410 if( wavFile->isTempFile()) { 1397 if( wavFile->isTempFile()) {
1411// move tmp file to regular file 1398// move tmp file to regular file
1412 QString cmd; 1399 QString cmd;
1413 cmd.sprintf("mv "+ wavFile->trackName() + " " + wavFile->currentFileName); 1400 cmd.sprintf("mv "+ wavFile->trackName() + " " + wavFile->currentFileName);
1414 odebug << "moving tmp file to "+currentFileName << oendl; 1401 odebug << "moving tmp file to "+currentFileName << oendl;
1415 system( cmd.latin1()); 1402 system( cmd.latin1());
1416 } 1403 }
1417 1404
1418 odebug << "Just moved " + wavFile->currentFileName << oendl; 1405 odebug << "Just moved " + wavFile->currentFileName << oendl;
1419 Config cfg("OpieRec"); 1406 Config cfg("OpieRec");
1420 cfg.setGroup("Sounds"); 1407 cfg.setGroup("Sounds");
1421 1408
1422 int nFiles = cfg.readNumEntry( "NumberofFiles",0); 1409 int nFiles = cfg.readNumEntry( "NumberofFiles",0);
1423 1410
1424 currentFile = QFileInfo( wavFile->currentFileName).fileName(); 1411 currentFile = QFileInfo( wavFile->currentFileName).fileName();
1425 currentFile = currentFile.left( currentFile.length() - 4); 1412 currentFile = currentFile.left( currentFile.length() - 4);
1426 1413
1427 cfg.writeEntry( "NumberofFiles", nFiles + 1); 1414 cfg.writeEntry( "NumberofFiles", nFiles + 1);
1428 cfg.writeEntry( QString::number( nFiles + 1), currentFile); 1415 cfg.writeEntry( QString::number( nFiles + 1), currentFile);
1429 cfg.writeEntry( currentFile, wavFile->currentFileName); 1416 cfg.writeEntry( currentFile, wavFile->currentFileName);
1430 1417
diff --git a/noncore/multimedia/opierec/qtrec.h b/noncore/multimedia/opierec/qtrec.h
index 642048a..6e81af6 100644
--- a/noncore/multimedia/opierec/qtrec.h
+++ b/noncore/multimedia/opierec/qtrec.h
@@ -39,97 +39,108 @@ class QTimer;
39class QVBoxLayout; 39class QVBoxLayout;
40class QLineEdit; 40class QLineEdit;
41 41
42#define MAX_TRACKS 2 42#define MAX_TRACKS 2
43//#define BUFSIZE 4096 43//#define BUFSIZE 4096
44// #define BUFSIZE 8182 //Z default buffer size 44// #define BUFSIZE 8182 //Z default buffer size
45#define BUFSIZE 1024 45#define BUFSIZE 1024
46//#define BUFSIZE 2048 46//#define BUFSIZE 2048
47#define FRAGSIZE 0x7fff000A; 47#define FRAGSIZE 0x7fff000A;
48 48
49#define WAVE_FORMAT_DVI_ADPCM (0x0011) 49#define WAVE_FORMAT_DVI_ADPCM (0x0011)
50#define WAVE_FORMAT_PCM (0x0001) 50#define WAVE_FORMAT_PCM (0x0001)
51//AFMT_IMA_ADPCM 51//AFMT_IMA_ADPCM
52 52
53class QtRec : public QWidget 53class QtRec : public QWidget
54{ 54{
55 Q_OBJECT 55 Q_OBJECT
56 56
57public: 57public:
58 static QString appName() { return QString::fromLatin1("opierec"); } 58 static QString appName() { return QString::fromLatin1("opierec"); }
59 QtRec( QWidget* parent=0, const char* name=0, WFlags fl=0 ); 59 QtRec( QWidget* parent=0, const char* name=0, WFlags fl=0 );
60 ~QtRec(); 60 ~QtRec();
61 QSlider *OutputSlider,*InputSlider; 61 QSlider *OutputSlider,*InputSlider;
62 62
63signals:
64 void stopRecording();
65 void startRecording();
66 void stopPlaying();
67 void startPlaying();
68
63public slots: 69public slots:
70
64private: 71private:
65// int fragment; 72// int fragment;
66 int fd1; 73 int fd1;
67 int secCount; 74 int secCount;
68 QString timeString; 75 QString timeString;
69 76
70 QLineEdit *renameBox; 77 QLineEdit *renameBox;
71 QGroupBox* GroupBox1; 78 QGroupBox* GroupBox1;
72 QString currentFile; 79 QString currentFile;
73 QString date, currentFileName, tmpFileName; 80 QString date, currentFileName, tmpFileName;
74 QTimer *t_timer; 81 QTimer *t_timer;
75 bool needsStereoOut, paused; 82 bool needsStereoOut, paused;
76 bool useTmpFile, autoMute; 83 bool useTmpFile, autoMute;
77 84
78 bool eventFilter( QObject * , QEvent * ); 85 bool eventFilter( QObject * , QEvent * );
79 void okRename(); 86 void okRename();
80 void cancelRename(); 87 void cancelRename();
81 QString getStorage(const QString &); 88 QString getStorage(const QString &);
82 bool rec(); 89 bool rec();
83 int getCurrentSizeLimit(); 90 int getCurrentSizeLimit();
84 long checkDiskSpace(const QString &); 91 long checkDiskSpace(const QString &);
85 void doMute(bool); 92 void doMute(bool);
86 void errorStop(); 93 void errorStop();
87 void fillDirectoryCombo(); 94 void fillDirectoryCombo();
88 void getInVol(); 95 void getInVol();
89 void getOutVol(); 96 void getOutVol();
90 void init(); 97 void init();
91 void initConfig(); 98 void initConfig();
92 void initConnections(); 99 void initConnections();
93 void selectItemByName(const QString &); 100 void selectItemByName(const QString &);
94 void setRecordButton(bool); 101 void setRecordButton(bool);
95 void start(); 102 void start();
96 void stop(); 103 void stop();
97 void timerEvent( QTimerEvent *e ); 104 void timerEvent( QTimerEvent *e );
98 105
99private slots: 106private slots:
107 void endPlaying();
108 void endRecording();
100 109
101 void FastforwardPressed(); 110 void FastforwardPressed();
102 void FastforwardReleased(); 111 void FastforwardReleased();
112
103 void changeDirCombo(int); 113 void changeDirCombo(int);
104 void changeSizeLimitCombo(int); 114 void changeSizeLimitCombo(int);
105 void changeTimeSlider(int); 115 void changeTimeSlider(int);
106 void changebitrateCombo(int); 116 void changebitrateCombo(int);
107 void changeStereoCheck( bool); 117 void changeStereoCheck( bool);
108 118
109 void changedInVolume(); 119 void changedInVolume();
110 void changedOutVolume(); 120 void changedOutVolume();
111 void changesamplerateCombo(int); 121 void changesamplerateCombo(int);
122
112 void cleanUp(); 123 void cleanUp();
113 void compressionSelected(bool); 124 void compressionSelected(bool);
114 void deleteSound(); 125 void deleteSound();
115 void doBeam(); 126 void doBeam();
116 void doMenuPlay(); 127 void doMenuPlay();
117 void doMicMuting(bool); 128 void doMicMuting(bool);
118 void doPlayBtn(); 129 void doPlayBtn();
119 void doRename(); 130 void doRename();
120 void doVolMuting(bool); 131 void doVolMuting(bool);
121 void forwardTimerTimeout(); 132 void forwardTimerTimeout();
122 void itClick(QListViewItem *item); 133 void itClick(QListViewItem *item);
123 void listPressed(int, QListViewItem *, const QPoint&, int); 134 void listPressed(int, QListViewItem *, const QPoint&, int);
124 void newSound(); 135 void newSound();
125 void rewindPressed(); 136 void rewindPressed();
126 void rewindReleased(); 137 void rewindReleased();
127 void rewindTimerTimeout(); 138 void rewindTimerTimeout();
128 void slotAutoMute(bool); 139 void slotAutoMute(bool);
129 void thisTab(QWidget*); 140 void thisTab(QWidget*);
130 void timeSliderPressed(); 141 void timeSliderPressed();
131 void timeSliderReleased(); 142 void timeSliderReleased();
132 void timerBreak(); 143 void timerBreak();
133 void initIconView(); 144 void initIconView();
134/* void changedOutVolume(int); */ 145/* void changedOutVolume(int); */
135/* void changedInVolume(int); */ 146/* void changedInVolume(int); */
@@ -149,39 +160,37 @@ protected:
149 QIconView *IconView1; 160 QIconView *IconView1;
150 QLabel *NewSoundLabel,*playLabel2; 161 QLabel *NewSoundLabel,*playLabel2;
151 QLabel *TextLabel3, *TextLabel1, *TextLabel2; 162 QLabel *TextLabel3, *TextLabel1, *TextLabel2;
152 QListView *ListView1; 163 QListView *ListView1;
153 QPushButton *Stop_PushButton, *Play_PushButton, *Rec_PushButton, *NewSoundButton, *deleteSoundButton, *toBeginningButton, *toEndButton; 164 QPushButton *Stop_PushButton, *Play_PushButton, *Rec_PushButton, *NewSoundButton, *deleteSoundButton, *toBeginningButton, *toEndButton;
154 QString recDir; 165 QString recDir;
155 QTabWidget *TabWidget; 166 QTabWidget *TabWidget;
156 QTimer *t, *rewindTimer, *forwardTimer; 167 QTimer *t, *rewindTimer, *forwardTimer;
157 QVBoxLayout* Layout15; 168 QVBoxLayout* Layout15;
158 QVBoxLayout* Layout15b; 169 QVBoxLayout* Layout15b;
159 QVBoxLayout* Layout18; 170 QVBoxLayout* Layout18;
160 QWidget *tab, *tab_2, *tab_3, *tab_4, *tab_5; 171 QWidget *tab, *tab_2, *tab_3, *tab_4, *tab_5;
161 int sliderPos, total; 172 int sliderPos, total;
162// short inbuffer[BUFSIZE], outbuffer[BUFSIZE]; 173// short inbuffer[BUFSIZE], outbuffer[BUFSIZE];
163// unsigned short unsigned_inbuffer[BUFSIZE], unsigned_outbuffer[BUFSIZE]; 174// unsigned short unsigned_inbuffer[BUFSIZE], unsigned_outbuffer[BUFSIZE];
164 QGroupBox *sampleGroup, *bitGroup, *dirGroup, *sizeGroup; 175 QGroupBox *sampleGroup, *bitGroup, *dirGroup, *sizeGroup;
165/* short inbuffer[65536], outbuffer[65536]; */ 176/* short inbuffer[65536], outbuffer[65536]; */
166/* unsigned short unsigned_inbuffer[65536], unsigned_outbuffer[65536]; */ 177/* unsigned short unsigned_inbuffer[65536], unsigned_outbuffer[65536]; */
167 178
168 179
169 bool doPlay(); 180 bool doPlay();
170 bool openPlayFile(); 181 bool openPlayFile();
171 bool setUpFile(); 182 bool setUpFile();
172 bool setupAudio( bool b); 183 bool setupAudio( bool b);
173 void endPlaying();
174 void endRecording();
175 void fileBeamFinished( Ir *ir); 184 void fileBeamFinished( Ir *ir);
176 void keyPressEvent( QKeyEvent *e); 185 void keyPressEvent( QKeyEvent *e);
177 void keyReleaseEvent( QKeyEvent *e); 186 void keyReleaseEvent( QKeyEvent *e);
178 void receive( const QCString &, const QByteArray & ); 187 void receive( const QCString &, const QByteArray & );
179 void showListMenu(QListViewItem * ); 188 void showListMenu(QListViewItem * );
180#ifndef THREADED 189#ifndef THREADED
181 void quickRec(); 190 void quickRec();
182 void playIt(); 191 void playIt();
183#endif 192#endif
184 193
185}; 194};
186 195
187#endif // QTREC_H 196#endif // QTREC_H
diff --git a/noncore/multimedia/opierec/wavFile.cpp b/noncore/multimedia/opierec/wavFile.cpp
index b53c416..a0423f0 100644
--- a/noncore/multimedia/opierec/wavFile.cpp
+++ b/noncore/multimedia/opierec/wavFile.cpp
@@ -131,136 +131,136 @@ bool WavFile::setWavHeader(int fd, wavhdr *hdr) {
131 strncpy((*hdr).wavID, "WAVE", 4); //WAVE 131 strncpy((*hdr).wavID, "WAVE", 4); //WAVE
132 strncpy((*hdr).fmtID, "fmt ", 4); // fmt 132 strncpy((*hdr).fmtID, "fmt ", 4); // fmt
133 (*hdr).fmtLen = 16; // format length = 16 133 (*hdr).fmtLen = 16; // format length = 16
134 134
135 if( wavFormat == WAVE_FORMAT_PCM) { 135 if( wavFormat == WAVE_FORMAT_PCM) {
136 (*hdr).fmtTag = 1; // PCM 136 (*hdr).fmtTag = 1; // PCM
137// odebug << "set header WAVE_FORMAT_PCM" << oendl; 137// odebug << "set header WAVE_FORMAT_PCM" << oendl;
138 } 138 }
139 else { 139 else {
140 (*hdr).fmtTag = WAVE_FORMAT_DVI_ADPCM; //intel ADPCM 140 (*hdr).fmtTag = WAVE_FORMAT_DVI_ADPCM; //intel ADPCM
141 // odebug << "set header WAVE_FORMAT_DVI_ADPCM" << oendl; 141 // odebug << "set header WAVE_FORMAT_DVI_ADPCM" << oendl;
142 } 142 }
143 143
144 // (*hdr).nChannels = 1;//filePara.channels;// ? 2 : 1*/; // channels 144 // (*hdr).nChannels = 1;//filePara.channels;// ? 2 : 1*/; // channels
145 (*hdr).nChannels = wavChannels;// ? 2 : 1*/; // channels 145 (*hdr).nChannels = wavChannels;// ? 2 : 1*/; // channels
146 146
147 (*hdr).sampleRate = wavSampleRate; //samples per second 147 (*hdr).sampleRate = wavSampleRate; //samples per second
148 (*hdr).avgBytesPerSec = (wavSampleRate)*( wavChannels*(wavResolution/8)); // bytes per second 148 (*hdr).avgBytesPerSec = (wavSampleRate)*( wavChannels*(wavResolution/8)); // bytes per second
149 (*hdr).nBlockAlign = wavChannels*( wavResolution/8); //block align 149 (*hdr).nBlockAlign = wavChannels*( wavResolution/8); //block align
150 (*hdr).bitsPerSample = wavResolution; //bits per sample 8, or 16 150 (*hdr).bitsPerSample = wavResolution; //bits per sample 8, or 16
151 151
152 strncpy((*hdr).dataID, "data", 4); 152 strncpy((*hdr).dataID, "data", 4);
153 153
154 write( fd,hdr, sizeof(*hdr)); 154 write( fd,hdr, sizeof(*hdr));
155 owarn << "writing header: bitrate " << wavResolution << ", samplerate " << wavSampleRate << ", channels " << wavChannels << oendl; 155// owarn << "writing header: bitrate " << wavResolution << ", samplerate " << wavSampleRate << ", channels " << wavChannels << oendl;
156 return true; 156 return true;
157} 157}
158 158
159bool WavFile::adjustHeaders(int fd, int total) { 159bool WavFile::adjustHeaders(int fd, int total) {
160 lseek(fd, 4, SEEK_SET); 160 lseek(fd, 4, SEEK_SET);
161 int i = total + 36; 161 int i = total + 36;
162 write( fd, &i, sizeof(i)); 162 write( fd, &i, sizeof(i));
163 lseek( fd, 40, SEEK_SET); 163 lseek( fd, 40, SEEK_SET);
164 write( fd, &total, sizeof(total)); 164 write( fd, &total, sizeof(total));
165 owarn << "adjusting header " << total << "" << oendl; 165// owarn << "adjusting header " << total << "" << oendl;
166 return true; 166 return true;
167} 167}
168 168
169int WavFile::parseWavHeader(int fd) { 169int WavFile::parseWavHeader(int fd) {
170 owarn << "Parsing wav header" << oendl; 170// owarn << "Parsing wav header" << oendl;
171 char string[4]; 171 char string[4];
172 int found; 172 int found;
173 short fmt; 173 short fmt;
174 unsigned short ch, bitrate; 174 unsigned short ch, bitrate;
175 unsigned long samplerrate, longdata; 175 unsigned long samplerrate, longdata;
176 176
177 if (read(fd, string, 4) < 4) { 177 if (read(fd, string, 4) < 4) {
178 owarn << " Could not read from sound file." << oendl; 178// owarn << " Could not read from sound file." << oendl;
179 return -1; 179 return -1;
180 } 180 }
181 if (strncmp(string, "RIFF", 4)) { 181 if (strncmp(string, "RIFF", 4)) {
182 owarn << " not a valid WAV file." << oendl; 182// owarn << " not a valid WAV file." << oendl;
183 return -1; 183 return -1;
184 } 184 }
185 lseek(fd, 4, SEEK_CUR); 185 lseek(fd, 4, SEEK_CUR);
186 if (read(fd, string, 4) < 4) { 186 if (read(fd, string, 4) < 4) {
187 owarn << "Could not read from sound file." << oendl; 187// owarn << "Could not read from sound file." << oendl;
188 return -1; 188 return -1;
189 } 189 }
190 if (strncmp(string, "WAVE", 4)) { 190 if (strncmp(string, "WAVE", 4)) {
191 owarn << "not a valid WAV file." << oendl; 191// owarn << "not a valid WAV file." << oendl;
192 return -1; 192 return -1;
193 } 193 }
194 found = 0; 194 found = 0;
195 195
196 while (!found) { 196 while (!found) {
197 if (read(fd, string, 4) < 4) { 197 if (read(fd, string, 4) < 4) {
198 owarn << "Could not read from sound file." << oendl; 198// owarn << "Could not read from sound file." << oendl;
199 return -1; 199 return -1;
200 } 200 }
201 if (strncmp(string, "fmt ", 4)) { 201 if (strncmp(string, "fmt ", 4)) {
202 if (read(fd, &longdata, 4) < 4) { 202 if (read(fd, &longdata, 4) < 4) {
203 owarn << "Could not read from sound file." << oendl; 203// owarn << "Could not read from sound file." << oendl;
204 return -1; 204 return -1;
205 } 205 }
206 lseek(fd, longdata, SEEK_CUR); 206 lseek(fd, longdata, SEEK_CUR);
207 } else { 207 } else {
208 lseek(fd, 4, SEEK_CUR); 208 lseek(fd, 4, SEEK_CUR);
209 if (read(fd, &fmt, 2) < 2) { 209 if (read(fd, &fmt, 2) < 2) {
210 owarn << "Could not read format chunk." << oendl; 210// owarn << "Could not read format chunk." << oendl;
211 return -1; 211 return -1;
212 } 212 }
213 if (fmt != WAVE_FORMAT_PCM && fmt != WAVE_FORMAT_DVI_ADPCM) { 213 if (fmt != WAVE_FORMAT_PCM && fmt != WAVE_FORMAT_DVI_ADPCM) {
214 owarn << "Wave file contains unknown format. Unable to continue." << oendl; 214// owarn << "Wave file contains unknown format. Unable to continue." << oendl;
215 return -1; 215 return -1;
216 } 216 }
217 wavFormat = fmt; 217 wavFormat = fmt;
218 // compressionFormat=fmt; 218 // compressionFormat=fmt;
219 owarn << "compressionFormat is " << fmt << "" << oendl; 219// owarn << "compressionFormat is " << fmt << "" << oendl;
220 if (read(fd, &ch, 2) < 2) { 220 if (read(fd, &ch, 2) < 2) {
221 owarn << "Could not read format chunk." << oendl; 221// owarn << "Could not read format chunk." << oendl;
222 return -1; 222 return -1;
223 } else { 223 } else {
224 wavChannels = ch; 224 wavChannels = ch;
225 owarn << "File has " << ch << " channels" << oendl; 225// owarn << "File has " << ch << " channels" << oendl;
226 } 226 }
227 if (read(fd, &samplerrate, 4) < 4) { 227 if (read(fd, &samplerrate, 4) < 4) {
228 owarn << "Could not read from format chunk." << oendl; 228// owarn << "Could not read from format chunk." << oendl;
229 return -1; 229 return -1;
230 } else { 230 } else {
231 wavSampleRate = samplerrate; 231 wavSampleRate = samplerrate;
232 // sampleRate = samplerrate; 232 // sampleRate = samplerrate;
233 owarn << "File has samplerate of " << (int) samplerrate << "" << oendl; 233// owarn << "File has samplerate of " << (int) samplerrate << "" << oendl;
234 } 234 }
235 lseek(fd, 6, SEEK_CUR); 235 lseek(fd, 6, SEEK_CUR);
236 if (read(fd, &bitrate, 2) < 2) { 236 if (read(fd, &bitrate, 2) < 2) {
237 owarn << "Could not read format chunk." << oendl; 237// owarn << "Could not read format chunk." << oendl;
238 return -1; 238 return -1;
239 } else { 239 } else {
240 wavResolution=bitrate; 240 wavResolution=bitrate;
241 // resolution = bitrate; 241 // resolution = bitrate;
242 owarn << "File has bitrate of " << bitrate << "" << oendl; 242// owarn << "File has bitrate of " << bitrate << "" << oendl;
243 } 243 }
244 found++; 244 found++;
245 } 245 }
246 } 246 }
247 found = 0; 247 found = 0;
248 while (!found) { 248 while (!found) {
249 if (read(fd, string, 4) < 4) { 249 if (read(fd, string, 4) < 4) {
250 odebug << "Could not read from sound file." << oendl; 250 odebug << "Could not read from sound file." << oendl;
251 return -1; 251 return -1;
252 } 252 }
253 253
254 if (strncmp(string, "data", 4)) { 254 if (strncmp(string, "data", 4)) {
255 if (read(fd, &longdata, 4)<4) { 255 if (read(fd, &longdata, 4)<4) {
256 odebug << "Could not read from sound file." << oendl; 256 odebug << "Could not read from sound file." << oendl;
257 return -1; 257 return -1;
258 } 258 }
259 259
260 lseek(fd, longdata, SEEK_CUR); 260 lseek(fd, longdata, SEEK_CUR);
261 } else { 261 } else {
262 if (read(fd, &longdata, 4) < 4) { 262 if (read(fd, &longdata, 4) < 4) {
263 odebug << "Could not read from sound file." << oendl; 263 odebug << "Could not read from sound file." << oendl;
264 return -1; 264 return -1;
265 } else { 265 } else {
266 wavNumberSamples = longdata; 266 wavNumberSamples = longdata;