summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (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
@@ -717,14 +717,19 @@ 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()));
@@ -808,16 +813,19 @@ void QtRec::initConfig() {
}
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) {
@@ -861,21 +869,13 @@ bool QtRec::rec() { //record
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;
@@ -1046,13 +1046,12 @@ bool QtRec::setupAudio( bool b) {
// 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();
@@ -1086,26 +1085,23 @@ bool QtRec::setupAudio( bool b) {
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() {
@@ -1222,19 +1218,12 @@ void QtRec::itClick(QListViewItem *item) {
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())
@@ -1398,15 +1387,13 @@ void QtRec::endRecording() {
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;
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
@@ -57,13 +57,20 @@ class QtRec : public QWidget
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;
@@ -94,24 +101,28 @@ private:
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);
@@ -167,14 +178,12 @@ protected:
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
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
@@ -149,100 +149,100 @@ bool WavFile::setWavHeader(int fd, wavhdr *hdr) {
(*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) {