-rw-r--r-- | noncore/multimedia/opierec/qtrec.cpp | 35 | ||||
-rw-r--r-- | noncore/multimedia/opierec/qtrec.h | 13 | ||||
-rw-r--r-- | noncore/multimedia/opierec/wavFile.cpp | 36 |
3 files changed, 40 insertions, 44 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 @@ -711,26 +711,31 @@ void QtRec::initIconView() { ListView1->setSelected( item, true); } } } void QtRec::initConnections() { connect(qApp,SIGNAL(aboutToQuit()),SLOT(cleanUp())); connect(toBeginningButton,SIGNAL(pressed()),this,SLOT(rewindPressed())); connect(toBeginningButton,SIGNAL(released()),this,SLOT(rewindReleased())); connect(toEndButton,SIGNAL(pressed()),this,SLOT(FastforwardPressed())); connect(toEndButton,SIGNAL(released()),this,SLOT(FastforwardReleased())); + connect(deleteSoundButton,SIGNAL(released()),this,SLOT(deleteSound())); + connect(Stop_PushButton,SIGNAL(released()),this,SLOT(doPlayBtn())); +// connect(Stop_PushButton,SIGNAL(released()),this,SLOT(doPlayBtn())); + +// connect(Rec_PushButton,SIGNAL(released()),this,SIGNAL(startRecording())); connect(Rec_PushButton,SIGNAL(released()),this,SLOT(newSound())); connect(TabWidget,SIGNAL(currentChanged(QWidget*)),this,SLOT(thisTab(QWidget*))); connect(OutputSlider,SIGNAL(sliderReleased()),this,SLOT(changedOutVolume())); connect(InputSlider,SIGNAL(sliderReleased()),this,SLOT(changedInVolume())); connect(sampleRateComboBox,SIGNAL(activated(int)),this,SLOT(changesamplerateCombo(int))); connect(bitRateComboBox,SIGNAL(activated(int)),this,SLOT(changebitrateCombo(int))); connect(directoryComboBox,SIGNAL(activated(int)),this,SLOT(changeDirCombo(int))); connect(sizeLimitCombo,SIGNAL(activated(int)),this,SLOT(changeSizeLimitCombo(int))); @@ -802,28 +807,31 @@ void QtRec::initConfig() { slotAutoMute(false); Config cofg( "qpe"); cofg.setGroup( "Volume"); outMuteCheckBox->setChecked( cofg.readBoolEntry( "Mute",0)); inMuteCheckBox->setChecked( cofg.readBoolEntry( "MicMute",0)); } void QtRec::stop() { // owarn << "STOP" << oendl; setRecordButton(false); - if( !recording) + if( !recording) { + emit stopPlaying(); endPlaying(); - else + } else { + emit stopRecording(); endRecording(); + } timeSlider->setValue(0); } void QtRec::doPlayBtn() { if(!stopped) { // playLabel2->setText(tr("Play")); stop(); } else { if(ListView1->currentItem() == 0) return; // playLabel2->setText(tr("Stop")); currentFile = ListView1->currentItem()->text(0); @@ -855,33 +863,25 @@ bool QtRec::rec() { //record return false; } else { secCount = 1; // playLabel2->setText(tr("Stop")); monitoring = false; setRecordButton( true); if( setupAudio( true)) if(setUpFile()) { int fileSize = 0; Config cfg("OpieRec"); cfg.setGroup("Settings"); -// odebug << "<<<<<<<Device bits " << soundDevice->getDeviceBits() -// << ", device rate " << soundDevice->getDeviceRate() -// << ", device channels " << soundDevice->getDeviceChannels() << oendl; - - //filePara.sampleRate = cfg.readNumEntry("samplerate", 22050); -// odebug << "sample rate is " << filePara.sampleRate << "" << oendl; filePara.SecondsToRecord = getCurrentSizeLimit(); - -// odebug << "size limit " << filePara.SecondsToRecord << " sec" << oendl; int diskSize = checkDiskSpace( (const QString &) wavFile->trackName()); if( filePara.SecondsToRecord == 0) { fileSize = diskSize; } else if( filePara.format == WAVE_FORMAT_PCM) { // odebug << "WAVE_FORMAT_PCM" << oendl; fileSize = (filePara.SecondsToRecord ) * filePara.channels * filePara.sampleRate * ( filePara.resolution / 8) + 1000; } else { // odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl; fileSize = ((filePara.SecondsToRecord) * filePara.channels * filePara.sampleRate * ( filePara.resolution / 8) ) / 4 + 250; @@ -1039,26 +1039,25 @@ bool QtRec::setupAudio( bool b) { filePara.format = WAVE_FORMAT_DVI_ADPCM; sampleformat = AFMT_S16_LE; // odebug << "WAVE_FORMAT_DVI_ADPCM" << oendl; } #endif stereo = filePara.channels; // filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100; flags= O_RDWR; // flags= O_RDONLY; recording = true; } - - // if(soundDevice) delete soundDevice; + owarn << "<<<<<<<<<<<<<<<<<<<open dsp " << filePara.sampleRate << " " << filePara.channels << " " << sampleformat << "" << oendl; // owarn << "change waveform settings" << oendl; waveform->changeSettings( filePara.sampleRate, filePara.channels ); soundDevice = new Device( this, b); //open rec // soundDevice->openDsp(); soundDevice->reset(); odebug << "device has been made " << soundDevice->sd << "" << oendl; ////////////////// <<<<<<<<<<<<>>>>>>>>>>>> soundDevice->setDeviceFormat( sampleformat); @@ -1080,38 +1079,35 @@ bool QtRec::setupAudio( bool b) { update(); setCaption( tr( "OpieRecord " )+ QString::number(VERSION) ); return false; } if(autoMute) doMute(false); return true; } bool QtRec::setUpFile() { //setup file for recording -// odebug << "Setting up wavfile" << oendl; -// if(wavFile) delete wavFile; wavFile = new WavFile( this, (const QString &)"", true, filePara.sampleRate, filePara.channels, filePara.resolution, filePara.format); filePara.fd = wavFile->wavHandle(); if(filePara.fd == -1) { return false; } else { -// filePara.channels=1; } return true; } /// <<<<<<<<<<<<<<<< PLAY >>>>>>>>>>>>>>>>>>> bool QtRec::doPlay() { if( !paused) { total = 0; filePara.numberOfRecordedSeconds = 0; } else { paused = false; @@ -1216,31 +1212,24 @@ void QtRec::newSound() { } void QtRec::itClick(QListViewItem *item) { currentFile = item->text(0); setCaption("OpieRecord "+currentFile); } void QtRec::deleteSound() { Config cfg("OpieRec"); cfg.setGroup("Sounds"); if( ListView1->currentItem() == NULL) return; -// #ifndef DEV_VERSION -// switch ( QMessageBox::warning(this,tr("Delete"), -// tr("Do you really want to <font size=+2><B>DELETE</B></font>\nthe selected file?"), -// tr("Yes"),tr("No"),0,1,1) ) { -// case 0: -// #endif - // { QString file = ListView1->currentItem()->text(0); QString fileName; fileName = cfg.readEntry( file, ""); QFile f( fileName); if( f.exists()) if( !f.remove()) QMessageBox::message( tr("Error"), tr("Could not remove file.")); int nFiles = cfg.readNumEntry( "NumberofFiles",0); bool found = false; for(int i=0;i<nFiles+1;i++) { @@ -1392,27 +1381,25 @@ void QtRec::endRecording() { toBeginningButton->setEnabled( true); toEndButton->setEnabled( true); killTimers(); if(autoMute) doMute( true); soundDevice->closeDevice( true); if( wavFile->track.isOpen()) { wavFile->adjustHeaders( filePara.fd, filePara.numberSamples); - // soundDevice->sd=-1; filePara.numberSamples = 0; - // filePara.sd=-1; wavFile->closeFile(); filePara.fd=0; if( wavFile->isTempFile()) { // move tmp file to regular file QString cmd; cmd.sprintf("mv "+ wavFile->trackName() + " " + wavFile->currentFileName); odebug << "moving tmp file to "+currentFileName << oendl; system( cmd.latin1()); } odebug << "Just moved " + wavFile->currentFileName << oendl; 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 @@ -51,25 +51,32 @@ class QLineEdit; //AFMT_IMA_ADPCM class QtRec : public QWidget { Q_OBJECT public: static QString appName() { return QString::fromLatin1("opierec"); } QtRec( QWidget* parent=0, const char* name=0, WFlags fl=0 ); ~QtRec(); QSlider *OutputSlider,*InputSlider; +signals: + void stopRecording(); + void startRecording(); + void stopPlaying(); + void startPlaying(); + public slots: + private: // int fragment; int fd1; int secCount; QString timeString; QLineEdit *renameBox; QGroupBox* GroupBox1; QString currentFile; QString date, currentFileName, tmpFileName; QTimer *t_timer; bool needsStereoOut, paused; @@ -88,36 +95,40 @@ private: void getInVol(); void getOutVol(); void init(); void initConfig(); void initConnections(); void selectItemByName(const QString &); void setRecordButton(bool); void start(); void stop(); void timerEvent( QTimerEvent *e ); private slots: + void endPlaying(); + void endRecording(); void FastforwardPressed(); void FastforwardReleased(); + void changeDirCombo(int); void changeSizeLimitCombo(int); void changeTimeSlider(int); void changebitrateCombo(int); void changeStereoCheck( bool); void changedInVolume(); void changedOutVolume(); void changesamplerateCombo(int); + void cleanUp(); void compressionSelected(bool); void deleteSound(); void doBeam(); void doMenuPlay(); void doMicMuting(bool); void doPlayBtn(); void doRename(); void doVolMuting(bool); void forwardTimerTimeout(); void itClick(QListViewItem *item); void listPressed(int, QListViewItem *, const QPoint&, int); @@ -161,26 +172,24 @@ protected: int sliderPos, total; // short inbuffer[BUFSIZE], outbuffer[BUFSIZE]; // unsigned short unsigned_inbuffer[BUFSIZE], unsigned_outbuffer[BUFSIZE]; QGroupBox *sampleGroup, *bitGroup, *dirGroup, *sizeGroup; /* short inbuffer[65536], outbuffer[65536]; */ /* unsigned short unsigned_inbuffer[65536], unsigned_outbuffer[65536]; */ bool doPlay(); bool openPlayFile(); bool setUpFile(); bool setupAudio( bool b); - void endPlaying(); - void endRecording(); void fileBeamFinished( Ir *ir); void keyPressEvent( QKeyEvent *e); void keyReleaseEvent( QKeyEvent *e); void receive( const QCString &, const QByteArray & ); void showListMenu(QListViewItem * ); #ifndef THREADED void quickRec(); void playIt(); #endif }; 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 @@ -143,112 +143,112 @@ bool WavFile::setWavHeader(int fd, wavhdr *hdr) { // (*hdr).nChannels = 1;//filePara.channels;// ? 2 : 1*/; // channels (*hdr).nChannels = wavChannels;// ? 2 : 1*/; // channels (*hdr).sampleRate = wavSampleRate; //samples per second (*hdr).avgBytesPerSec = (wavSampleRate)*( wavChannels*(wavResolution/8)); // bytes per second (*hdr).nBlockAlign = wavChannels*( wavResolution/8); //block align (*hdr).bitsPerSample = wavResolution; //bits per sample 8, or 16 strncpy((*hdr).dataID, "data", 4); write( fd,hdr, sizeof(*hdr)); - owarn << "writing header: bitrate " << wavResolution << ", samplerate " << wavSampleRate << ", channels " << wavChannels << oendl; +// owarn << "writing header: bitrate " << wavResolution << ", samplerate " << wavSampleRate << ", channels " << wavChannels << oendl; return true; } bool WavFile::adjustHeaders(int fd, int total) { lseek(fd, 4, SEEK_SET); int i = total + 36; write( fd, &i, sizeof(i)); lseek( fd, 40, SEEK_SET); write( fd, &total, sizeof(total)); - owarn << "adjusting header " << total << "" << oendl; +// owarn << "adjusting header " << total << "" << oendl; return true; } int WavFile::parseWavHeader(int fd) { - owarn << "Parsing wav header" << oendl; +// owarn << "Parsing wav header" << oendl; char string[4]; int found; short fmt; unsigned short ch, bitrate; unsigned long samplerrate, longdata; if (read(fd, string, 4) < 4) { - owarn << " Could not read from sound file." << oendl; +// owarn << " Could not read from sound file." << oendl; return -1; } if (strncmp(string, "RIFF", 4)) { - owarn << " not a valid WAV file." << oendl; +// owarn << " not a valid WAV file." << oendl; return -1; } lseek(fd, 4, SEEK_CUR); if (read(fd, string, 4) < 4) { - owarn << "Could not read from sound file." << oendl; +// owarn << "Could not read from sound file." << oendl; return -1; } if (strncmp(string, "WAVE", 4)) { - owarn << "not a valid WAV file." << oendl; +// owarn << "not a valid WAV file." << oendl; return -1; } found = 0; while (!found) { if (read(fd, string, 4) < 4) { - owarn << "Could not read from sound file." << oendl; +// owarn << "Could not read from sound file." << oendl; return -1; } if (strncmp(string, "fmt ", 4)) { if (read(fd, &longdata, 4) < 4) { - owarn << "Could not read from sound file." << oendl; +// owarn << "Could not read from sound file." << oendl; return -1; } lseek(fd, longdata, SEEK_CUR); } else { lseek(fd, 4, SEEK_CUR); if (read(fd, &fmt, 2) < 2) { - owarn << "Could not read format chunk." << oendl; +// owarn << "Could not read format chunk." << oendl; return -1; } if (fmt != WAVE_FORMAT_PCM && fmt != WAVE_FORMAT_DVI_ADPCM) { - owarn << "Wave file contains unknown format. Unable to continue." << oendl; +// owarn << "Wave file contains unknown format. Unable to continue." << oendl; return -1; } wavFormat = fmt; // compressionFormat=fmt; - owarn << "compressionFormat is " << fmt << "" << oendl; +// owarn << "compressionFormat is " << fmt << "" << oendl; if (read(fd, &ch, 2) < 2) { - owarn << "Could not read format chunk." << oendl; +// owarn << "Could not read format chunk." << oendl; return -1; } else { wavChannels = ch; - owarn << "File has " << ch << " channels" << oendl; +// owarn << "File has " << ch << " channels" << oendl; } if (read(fd, &samplerrate, 4) < 4) { - owarn << "Could not read from format chunk." << oendl; +// owarn << "Could not read from format chunk." << oendl; return -1; } else { wavSampleRate = samplerrate; // sampleRate = samplerrate; - owarn << "File has samplerate of " << (int) samplerrate << "" << oendl; +// owarn << "File has samplerate of " << (int) samplerrate << "" << oendl; } lseek(fd, 6, SEEK_CUR); if (read(fd, &bitrate, 2) < 2) { - owarn << "Could not read format chunk." << oendl; +// owarn << "Could not read format chunk." << oendl; return -1; } else { wavResolution=bitrate; // resolution = bitrate; - owarn << "File has bitrate of " << bitrate << "" << oendl; +// owarn << "File has bitrate of " << bitrate << "" << oendl; } found++; } } found = 0; while (!found) { if (read(fd, string, 4) < 4) { odebug << "Could not read from sound file." << oendl; return -1; } if (strncmp(string, "data", 4)) { |