summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opierec/qtrec.cpp
Side-by-side diff
Diffstat (limited to 'noncore/multimedia/opierec/qtrec.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp35
1 files changed, 11 insertions, 24 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() {
filePath = cfg.readEntry( temp,""); //currentFileName
QFileInfo info(filePath);
fileDate = info.lastModified().toString();
fileS = cfg.readEntry( filePath, "0" );// file length in seconds
mediaLocation = getStorage( filePath);
if( info.exists()) {
// owarn << "new item " << temp << oendl;
item = new QListViewItem( ListView1, temp, fileS /*, mediaLocation, fileDate*/);
item->setPixmap( 0, image0);
if( currentFileName == filePath)
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)));
connect(stereoCheckBox,SIGNAL(toggled(bool)),this,SLOT(changeStereoCheck(bool)));
connect(outMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(doVolMuting(bool)));
connect(inMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(doMicMuting(bool)));
connect(ListView1,SIGNAL(doubleClicked(QListViewItem*)),this,SLOT(itClick(QListViewItem*)));
connect(ListView1,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT(listPressed(int,QListViewItem*,const QPoint&,int)));
connect(timeSlider,SIGNAL(sliderMoved(int)),this,SLOT(changeTimeSlider(int)));
connect(timeSlider,SIGNAL(sliderPressed()),this,SLOT(timeSliderPressed()));
connect(timeSlider,SIGNAL(sliderReleased()),this,SLOT(timeSliderReleased()));
connect(compressionCheckBox,SIGNAL(toggled(bool)),this,SLOT(compressionSelected(bool)));
@@ -790,52 +795,55 @@ void QtRec::initConfig() {
compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1));
if( compressionCheckBox->isChecked()) {
bitRateComboBox->setCurrentItem(1);
bitRateComboBox->setEnabled(false);
filePara.resolution=16;
}
autoMuteCheckBox->setChecked( cfg.readBoolEntry("useAutoMute",0));
if( autoMuteCheckBox->isChecked())
slotAutoMute(true);
else
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);
start();
}
}
void QtRec::start() { //play
if( stopped) {
QPixmap image3( ( const char** ) image3_data );
Stop_PushButton->setPixmap( image3 );
Stop_PushButton->setDown( true);
stopped = false;
paused = false;
secCount = 1;
@@ -843,57 +851,49 @@ void QtRec::start() { //play
if( openPlayFile())
if( setupAudio( false)) //recording is false
doPlay();
}
}
bool QtRec::rec() { //record
QString timeString;
timeString.sprintf("%.0f", 0.0);
// timeLabel->setText( timeString+ " seconds");
if(!stopped) {
monitoring = true;
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;
}
filePara.samplesToRecord = fileSize;
odebug << "filesize should be " << filePara.samplesToRecord
<< ", bits " << filePara.resolution << ", rate " << filePara.sampleRate;
if( paused) {
paused = false;
}
// else {
odebug << "Setting timeslider " << filePara.samplesToRecord << "" << oendl;
// if(fileSize != 0)
timeSlider->setRange(0, filePara.samplesToRecord);
@@ -1027,103 +1027,99 @@ bool QtRec::setupAudio( bool b) {
sampleformat = SND_PCM_FORMAT_U8;
#else
if( !bitRateComboBox->isEnabled() || bitRateComboBox->currentText() == "16")
sampleformat = AFMT_S16_LE;
else
sampleformat = AFMT_U8;
if( !compressionCheckBox->isChecked()) {
filePara.format = WAVE_FORMAT_PCM;
// odebug << "WAVE_FORMAT_PCM" << oendl;
} else {
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);
soundDevice->setDeviceChannels( filePara.channels);
soundDevice->setDeviceRate( filePara.sampleRate);
soundDevice->getDeviceFragSize();
#ifdef QT_QWS_EBX
int frag = FRAGSIZE;
soundDevice->setFragSize( frag);
soundDevice->getDeviceFragSize();
#endif
/////////////////
filePara.sd = soundDevice->sd;
if ( filePara.sd == -1) {
monitoring = false;
stopped = true;
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;
secCount = (int)filePara.numberOfRecordedSeconds;
}
playing = true;
stopped = false;
recording = false;
QString num;
odebug << "Play number of samples " << filePara.numberSamples << "" << oendl;
// timeSlider->setRange( 0, filePara.numberSamples);
timeString.sprintf("%f", filePara.numberOfRecordedSeconds);
@@ -1204,55 +1200,48 @@ void QtRec::changeDirCombo(int index) {
void QtRec::changeSizeLimitCombo(int) {
Config cfg("OpieRec");
cfg.setGroup("Settings");
cfg.writeEntry("sizeLimit", getCurrentSizeLimit() );
cfg.write();
}
void QtRec::newSound() {
if( !rec()) {
endRecording();
deleteSound();
}
}
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++) {
if( cfg.readEntry( QString::number(i),"").find( file,0,true) != -1) {
found = true;
cfg.writeEntry( QString::number(i), cfg.readEntry( QString::number(i+1),""));
}
if(found)
cfg.writeEntry( QString::number(i), cfg.readEntry( QString::number(i+1),""));
}
cfg.removeEntry( cfg.readEntry( file));
cfg.removeEntry( file);
cfg.writeEntry( "NumberofFiles", nFiles-1);
cfg.write();
@@ -1380,51 +1369,49 @@ void QtRec::keyReleaseEvent( QKeyEvent *e) {
break;
}
}
void QtRec::endRecording() {
monitoring = false;
recording = false;
stopped = true;
waveform->reset();
setRecordButton( false);
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;
Config cfg("OpieRec");
cfg.setGroup("Sounds");
int nFiles = cfg.readNumEntry( "NumberofFiles",0);
currentFile = QFileInfo( wavFile->currentFileName).fileName();
currentFile = currentFile.left( currentFile.length() - 4);
cfg.writeEntry( "NumberofFiles", nFiles + 1);
cfg.writeEntry( QString::number( nFiles + 1), currentFile);
cfg.writeEntry( currentFile, wavFile->currentFileName);