author | llornkcor <llornkcor> | 2004-01-01 01:42:49 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2004-01-01 01:42:49 (UTC) |
commit | 0e411b3eb674699979998d4878388f03ffbcb1cd (patch) (side-by-side diff) | |
tree | 1c7dfb9ac61b9403f66a78e30ef5fb4fcf8ff49e | |
parent | c395fd13c51385f212648c9995361715ffc9e182 (diff) | |
download | opie-0e411b3eb674699979998d4878388f03ffbcb1cd.zip opie-0e411b3eb674699979998d4878388f03ffbcb1cd.tar.gz opie-0e411b3eb674699979998d4878388f03ffbcb1cd.tar.bz2 |
make device user configurable
-rw-r--r-- | noncore/multimedia/opierec/opierec.pro | 5 | ||||
-rw-r--r-- | noncore/multimedia/opierec/qtrec.cpp | 143 | ||||
-rw-r--r-- | noncore/multimedia/opierec/qtrec.h | 2 |
3 files changed, 62 insertions, 88 deletions
diff --git a/noncore/multimedia/opierec/opierec.pro b/noncore/multimedia/opierec/opierec.pro index 39fe493..5651151 100644 --- a/noncore/multimedia/opierec/opierec.pro +++ b/noncore/multimedia/opierec/opierec.pro @@ -1,6 +1,6 @@ -#CONFIG = qt qtopia warn_on release pdaudio -CONFIG = qt warn_on release opie +CONFIG = qt qtopia warn_on release pdaudio +#CONFIG = qt warn_on release opie #CONFIG = qt warn_on release quick-app HEADERS = adpcm.h \ pixmaps.h \ helpwindow.h \ @@ -22,8 +22,9 @@ contains(CONFIG, pdaudio) { LIBS += -L$(QPEDIR)/lib -lqpe -lpthread -ljpeg -lpng -lz INCLUDEPATH += $(QPEDIR)/include DEPENDPATH += $(QPEDIR)/include DEFINES += PDAUDIO + DEFINES += THREADED TARGET = qperec # DESTDIR=$(QPEDIR)/bin } diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp index bc6abcc..0a6e5ae 100644 --- a/noncore/multimedia/opierec/qtrec.cpp +++ b/noncore/multimedia/opierec/qtrec.cpp @@ -2,9 +2,8 @@ // qtrec.cpp Created: Thu Jan 17 11:19:58 2002 copyright 2002 by L.J. Potter <ljp@llornkcor.com> ****************************************************************************/ - #define DEV_VERSION #include "pixmaps.h" #include "qtrec.h" @@ -115,13 +114,15 @@ int sd; Waveform* waveform; Device *soundDevice; -// threaded recording -//fuckin fulgy here -//void quickRec() -//{ -void QtRec::quickRec() { + +#ifdef THREADED +void quickRec() +#else + void QtRec::quickRec() +#endif +{ qDebug("%d", filePara.numberSamples/filePara.sampleRate * filePara.channels); qDebug("samples %d, rate %d, channels %d", @@ -156,9 +157,9 @@ void QtRec::quickRec() { memset( sbuf2, 0, BUFSIZE); for(;;) { if ( stopped) { - qDebug("quickRec:: stopped"); +// qDebug("quickRec:: stopped"); break; } // number=::read( filePara.sd, sbuf, BUFSIZE); @@ -232,9 +233,8 @@ void QtRec::quickRec() { // printf("Writing number %d, bytes %d,total %d\r",number, bytesWritten , total); // fflush(stdout); filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate / (float)2/filePara.channels; - qApp->processEvents(); if( total >= filePara.samplesToRecord) { stopped = true; @@ -242,9 +242,10 @@ void QtRec::quickRec() { } } } //end main loop - } else { // <<<<<<<<<<<<<<<<<<<<<<< format = AFMT_U8; + } else { +// <<<<<<<<<<<<<<<<<<<<<<< format = AFMT_U8; unsigned char unsigned_inbuffer[ BUFSIZE ], unsigned_outbuffer[ BUFSIZE ]; memset( unsigned_inbuffer, 0, BUFSIZE); memset( unsigned_outbuffer, 0, BUFSIZE); @@ -281,13 +282,17 @@ void QtRec::quickRec() { } //end main loop } } /// END quickRec() -void QtRec::playIt() -//void playIt() +#ifdef THREADED +void playIt() +#else + void QtRec::playIt() +#endif { - int bytesWritten, number; + int bytesWritten = 0; + int number = 0; int total = 0; // Total number of bytes read in so far. if( filePara.resolution == 16 ) { //AFMT_S16_LE) { if( filePara.format == WAVE_FORMAT_DVI_ADPCM) { char abuf[ BUFSIZE / 2 ]; @@ -321,10 +326,10 @@ void QtRec::playIt() timeSlider->setValue( total/4); // timeString.sprintf("%.2f", filePara.numberOfRecordedSeconds); // if(filePara.numberOfRecordedSeconds>1) // timeLabel->setText( timeString+ tr(" seconds")); - printf("playing number %d, bytes %d, total %d\n",number, bytesWritten, total/4); - fflush(stdout); +// printf("playing number %d, bytes %d, total %d\n",number, bytesWritten, total/4); +// fflush(stdout); qApp->processEvents(); if( /*total >= filePara.numberSamples || */ bytesWritten == 0) { @@ -407,15 +412,14 @@ void QtRec::playIt() // if( total >= filePara.numberSamples ) { stopped = true; break; } - printf("Writing number %d, bytes %d, total %d, numberSamples %d\r",number, bytesWritten , total, filePara.numberSamples); - fflush(stdout); +// printf("Writing number %d, bytes %d, total %d, numberSamples %d\r",number, bytesWritten , total, filePara.numberSamples); +// fflush(stdout); } } } -/////////////////<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>> QtRec::QtRec( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { @@ -426,9 +430,16 @@ QtRec::QtRec( QWidget* parent, const char* name, WFlags fl ) initConnections(); renameBox = 0; // open sound device to get volumes - soundDevice = new Device( this, DSPSTROUT, DSPSTRMIXEROUT, false); + Config hwcfg("OpieRec"); + hwcfg.setGroup("Hardware"); + + + soundDevice = new Device( this, + hwcfg.readEntry( "Audio",DSPSTROUT), + hwcfg.readEntry( "Mixer",DSPSTRMIXEROUT), false); +// soundDevice = new Device( this, hwcfg.readEntry( "Audio","hw:0"), hwcfg.readEntry( "Mixer","hw:0"), false); // soundDevice->setDeviceFormat(AFMT_S16_LE); // soundDevice->setDeviceChannels(1); // soundDevice->setDeviceRate( 22050); @@ -639,14 +650,8 @@ void QtRec::init() { glayout3->addMultiCellWidget( compressionCheckBox, 2, 2, 0, 3); glayout3->addMultiCellWidget( autoMuteCheckBox, 3, 3, 0, 0); glayout3->addMultiCellWidget( stereoCheckBox, 3, 3, 1, 1); - QWidget *d = QApplication::desktop(); - int width = d->width(); - int height = d->height(); - - if( width < height) { - tab_5 = new QWidget( TabWidget, "tab_5" ); QHBoxLayout *Layout19a; Layout19a = new QHBoxLayout( tab_5); @@ -695,54 +700,8 @@ void QtRec::init() { TabWidget->insertTab( tab_3, tr( "Options" ) ); TabWidget->insertTab( tab_5, tr( "Volume" ) ); - } else {// landscape - - // Layout16->addWidget( dirGroup ); - // Layout18->addLayout( Layout16 ); - Layout15 = new QVBoxLayout(this); - Layout15->setSpacing( 2 ); - Layout15->setMargin( 0 ); - - Layout15b = new QVBoxLayout(this); - Layout15b->setSpacing( 2 ); - Layout15b->setMargin( 0 ); - - TextLabel2 = new QLabel( tab_3, "InputLabel" ); - TextLabel2->setText( tr( "In")); - TextLabel2->setFixedWidth(35); - Layout15->addWidget( TextLabel2 ); - - TextLabel3 = new QLabel( tab_3, "OutputLabel" ); - TextLabel3->setText( tr( "Out" ) ); - Layout15b->addWidget( TextLabel3 ); - - InputSlider = new QSlider( -100, 0, 10, 0, QSlider::Vertical, tab_3, (const char *) "InputSlider" ); - InputSlider->setTickmarks(QSlider::Both); - Layout15->addWidget( InputSlider); - - OutputSlider = new QSlider( -100,0,10,0, QSlider::Vertical,tab_3,(const char *) "OutputSlider" ); - OutputSlider->setTickmarks(QSlider::Both); - - Layout15b->addWidget( OutputSlider ); - - outMuteCheckBox = new QCheckBox ( tr("mute"), tab_3 ); - Layout15->addWidget( outMuteCheckBox ); - - inMuteCheckBox = new QCheckBox ( tr("mute"), tab_3 ); - inMuteCheckBox-> setFocusPolicy ( QWidget::NoFocus ); - Layout15b->addWidget( inMuteCheckBox ); - - - Layout19->addLayout( Layout15 ); - Layout19->addLayout( Layout15b ); - - fillDirectoryCombo(); - - TabWidget->insertTab( tab_3, tr( "Options" ) ); - - } waveform = new Waveform( this, "waveform" ); // waveform->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)3, waveform->sizePolicy().hasHeightForWidth() ) ); waveform->setMinimumSize( QSize( 0, 50 ) ); @@ -759,9 +718,9 @@ void QtRec::initIconView() { QString temp; QPixmap image0( ( const char** ) image0_data ); int nFiles = cfg.readNumEntry("NumberofFiles",0); - qDebug("init number of files %d", nFiles); +// qDebug("init number of files %d", nFiles); for(int i=1;i<= nFiles;i++) { QListViewItem * item; @@ -1007,18 +966,22 @@ bool QtRec::rec() { //record #ifdef DEV_VERSION setCaption( msg); #endif filePara.fileName=currentFile.latin1(); -// qDebug("Start recording thread"); + qDebug("Start recording thread"); stopped = false; -// pthread_t thread1; -// pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/); +#ifdef THREADED + pthread_t thread1; + pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/); +#endif toBeginningButton->setEnabled( false); toEndButton->setEnabled( false); startTimer(1000); +#ifndef THREADED quickRec(); +#endif } } //end setUpFile } //end setupAudio return true; @@ -1069,14 +1032,15 @@ void QtRec::changedInVolume( ) { bool QtRec::setupAudio( bool b) { bool ok; int sampleformat, stereo, flags; - char * dspString, *mixerString; + QString dspString, mixerString; filePara.resolution = bitRateComboBox->currentText().toInt( &ok,10); //16 + if( !b) { +// we want to play #ifdef PDAUDIO //ALSA - if( !b) { // we want to play if( filePara.resolution == 16 || compressionCheckBox->isChecked() ) { sampleformat = SND_PCM_FORMAT_S16; filePara.resolution = 16; } else if( filePara.resolution == 24 || compressionCheckBox->isChecked() ) { @@ -1089,9 +1053,8 @@ bool QtRec::setupAudio( bool b) { sampleformat = SND_PCM_FORMAT_U8; filePara.resolution = 8; } #else - if( !b) { // we want to play if( filePara.resolution == 16 || compressionCheckBox->isChecked() ) { sampleformat = AFMT_S16_LE; filePara.resolution = 16; @@ -1102,10 +1065,12 @@ bool QtRec::setupAudio( bool b) { #endif stereo = filePara.channels; flags = O_WRONLY; - dspString = DSPSTROUT; - mixerString = DSPSTRMIXEROUT; + Config hwcfg("OpieRec"); + hwcfg.setGroup("Hardware"); + dspString = hwcfg.readEntry( "Audio", DSPSTROUT); + mixerString = hwcfg.readEntry( "Mixer", DSPSTRMIXEROUT); recording = false; } else { // we want to record #ifdef PDAUDIO //ALSA @@ -1137,10 +1102,12 @@ bool QtRec::setupAudio( bool b) { stereo = filePara.channels; // filePara.sampleRate = sampleRateComboBox->currentText().toInt( &ok,10);//44100; flags= O_RDWR; // flags= O_RDONLY; - dspString = DSPSTRIN; - mixerString = DSPSTRMIXEROUT; + Config hwcfg("OpieRec"); + hwcfg.setGroup("Hardware"); + dspString = hwcfg.readEntry( "Audio", DSPSTRIN); + mixerString = hwcfg.readEntry( "Mixer", DSPSTRMIXERIN); recording = true; } // if(soundDevice) delete soundDevice; @@ -1219,9 +1186,9 @@ bool QtRec::doPlay() { qDebug( "Play number of samples %d", filePara.numberSamples); // timeSlider->setRange( 0, filePara.numberSamples); - timeString.sprintf("%d", filePara.numberOfRecordedSeconds); + timeString.sprintf("%f", filePara.numberOfRecordedSeconds); timeLabel->setText( timeString+ tr(" seconds")); QString msg; msg.sprintf("%d, %d, %d", @@ -1232,15 +1199,18 @@ bool QtRec::doPlay() { setCaption( msg); #endif startTimer( 1000); -// pthread_t thread2; -// pthread_create( &thread2, NULL, (void * (*)(void *))playIt, NULL/* &*/); +#ifdef THREADED + pthread_t thread2; + pthread_create( &thread2, NULL, (void * (*)(void *))playIt, NULL/* &*/); +#endif toBeginningButton->setEnabled( false); toEndButton->setEnabled( false); +#ifndef THREADED playIt(); - +#endif return true; } @@ -1865,9 +1835,9 @@ void QtRec::receive( const QCString &msg, const QByteArray & ) { } ///////////////////////////// timerEvent -void QtRec::timerEvent( QTimerEvent *e ) { +void QtRec::timerEvent( QTimerEvent * ) { // if(!recording) // timeSlider->setValue( secCount); // else @@ -2159,4 +2129,5 @@ void QtRec::changeStereoCheck(bool b) { cfg.write(); } + diff --git a/noncore/multimedia/opierec/qtrec.h b/noncore/multimedia/opierec/qtrec.h index 31cff9e..5878d37 100644 --- a/noncore/multimedia/opierec/qtrec.h +++ b/noncore/multimedia/opierec/qtrec.h @@ -176,10 +176,12 @@ protected: void keyPressEvent( QKeyEvent *e); void keyReleaseEvent( QKeyEvent *e); void receive( const QCString &, const QByteArray & ); void showListMenu(QListViewItem * ); +#ifndef THREADED void quickRec(); void playIt(); +#endif }; #endif // QTREC_H |