-rw-r--r-- | noncore/multimedia/opierec/qtrec.cpp | 101 | ||||
-rw-r--r-- | noncore/multimedia/opierec/qtrec.h | 2 |
2 files changed, 40 insertions, 63 deletions
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp index c237726..6793b4e 100644 --- a/noncore/multimedia/opierec/qtrec.cpp +++ b/noncore/multimedia/opierec/qtrec.cpp @@ -405,136 +405,134 @@ void playIt() for(;;) { // main loop if (stopped) { break; // stop if playing was set to false return; } number = ::read( filePara.fd, unsigned_inbuffer, BUFSIZE); //data = (val >> 8) ^ 0x80; // unsigned_outbuffer = (unsigned_inbuffer >> 8) ^ 0x80; bytesWritten = write ( filePara.sd, unsigned_inbuffer, number); waveform->newSamples( (const short *)unsigned_inbuffer, bytesWritten ); total += bytesWritten; timeSlider->setValue( total); filePara.numberSamples = total; filePara.numberOfRecordedSeconds = (float)total / (float)filePara.sampleRate; // timeString.sprintf("%.2f",filePara.numberOfRecordedSeconds); // timeLabel->setText( timeString + tr(" seconds")); qApp->processEvents(); if( /*total >= filePara.numberSamples || */ bytesWritten == 0) { // 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); } } } QtRec::QtRec( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { if ( !name ) setName( "OpieRec" ); init(); initConfig(); initConnections(); renameBox = 0; // open sound device to get volumes 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); getInVol(); getOutVol(); soundDevice->closeDevice( true); soundDevice->sd = -1; soundDevice = 0; wavFile = 0; - // if( soundDevice) delete soundDevice; - - initIconView(); + QTimer::singleShot(100,this, SLOT(initIconView())); if( autoMute) doMute( true); - ListView1->setFocus(); +// ListView1->setFocus(); playing = false; } QtRec::~QtRec() { // if( soundDevice) delete soundDevice; } void QtRec::cleanUp() { if( !stopped) { stopped = true; endRecording(); } ListView1->clear(); if( autoMute) doMute(false); // if( wavFile) delete wavFile; // if(soundDevice) delete soundDevice; } void QtRec::init() { needsStereoOut = false; QPixmap image3( ( const char** ) image3_data ); QPixmap image4( ( const char** ) image4_data ); QPixmap image6( ( const char** ) image6_data ); stopped = true; setCaption( tr( "OpieRecord " ) + QString::number(VERSION) ); QGridLayout *layout = new QGridLayout( this ); layout->setSpacing( 2); layout->setMargin( 2); TabWidget = new QTabWidget( this, "TabWidget" ); layout->addMultiCellWidget(TabWidget, 0, 7, 0, 8); // TabWidget->setTabShape(QTabWidget::Triangular); ///**********<<<<<<<<<<<<>>>>>>>>>>>>*************** tab = new QWidget( TabWidget, "tab" ); QGridLayout *layout1 = new QGridLayout( tab); layout1->setSpacing( 2); layout1->setMargin( 2); timeSlider = new QSlider( 0,100,10,0, QSlider::Horizontal, tab, (const char *) "timeSlider" ); layout1->addMultiCellWidget( timeSlider, 1, 1, 0, 3); // timeLabel = new QLabel( tab, "TimeLabel" ); // layout1->addMultiCellWidget( timeLabel, 0, 0, 0, 3); // playLabel2 = new QLabel(tab, "PlayLabel2" ); // playLabel2->setText(tr("Play") ); // playLabel2->setFixedHeight( 18); // layout1->addMultiCellWidget( playLabel2, 0, 0, 4, 4); Stop_PushButton = new QPushButton( tab, "Stop_PushButton" ); layout1->addMultiCellWidget( Stop_PushButton, 1, 1, 4, 4); Stop_PushButton->setFixedSize( 22, 22); Stop_PushButton->setPixmap( image4 ); @@ -668,217 +666,196 @@ void QtRec::init() { glayout3->addMultiCellWidget( compressionCheckBox, 2, 2, 0, 3); glayout3->addMultiCellWidget( autoMuteCheckBox, 3, 3, 0, 0); glayout3->addMultiCellWidget( stereoCheckBox, 3, 3, 1, 1); tab_5 = new QWidget( TabWidget, "tab_5" ); QHBoxLayout *Layout19a; Layout19a = new QHBoxLayout( tab_5); Layout19a->setSpacing( 2 ); Layout19a->setMargin( 0 ); Layout15 = new QVBoxLayout( this); Layout15->setSpacing( 2 ); Layout15->setMargin( 0 ); Layout15b = new QVBoxLayout( this); Layout15b->setSpacing( 2 ); Layout15b->setMargin( 0 ); TextLabel2 = new QLabel( tab_5, "InputLabel" ); TextLabel2->setText( tr( "In")); TextLabel2->setFixedWidth( 35); Layout15->addWidget( TextLabel2 ); TextLabel3 = new QLabel( tab_5, "OutputLabel" ); TextLabel3->setText( tr( "Out" ) ); Layout15b->addWidget( TextLabel3 ); InputSlider = new QSlider( -100, 0, 10, 0, QSlider::Vertical, tab_5, (const char *) "InputSlider" ); InputSlider->setTickmarks( QSlider::Both); Layout15->addWidget( InputSlider); OutputSlider = new QSlider( -100,0,10,0, QSlider::Vertical,tab_5,(const char *) "OutputSlider" ); OutputSlider->setTickmarks( QSlider::Both); Layout15b->addWidget( OutputSlider ); outMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); Layout15->addWidget( outMuteCheckBox ); inMuteCheckBox = new QCheckBox ( tr("mute"), tab_5 ); inMuteCheckBox-> setFocusPolicy ( QWidget::NoFocus ); Layout15b->addWidget( inMuteCheckBox ); Layout19a->addLayout( Layout15 ); Layout19a->addLayout( Layout15b ); fillDirectoryCombo(); TabWidget->insertTab( tab_3, tr( "Options" ) ); TabWidget->insertTab( tab_5, tr( "Volume" ) ); waveform = new Waveform( this, "waveform" ); // waveform->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)3, waveform->sizePolicy().hasHeightForWidth() ) ); waveform->setMinimumSize( QSize( 0, 50 ) ); layout->addMultiCellWidget( waveform, 8, 8, 0, 8); waveform->setBackgroundColor ( black ); } void QtRec::initIconView() { - + owarn << "initIconView" << oendl; ListView1->clear(); Config cfg("OpieRec"); cfg.setGroup("Sounds"); QString temp; QPixmap image0( ( const char** ) image0_data ); int nFiles = cfg.readNumEntry("NumberofFiles",0); -// odebug << "init number of files " << nFiles << "" << oendl; + owarn << "init number of files " << nFiles << "" << oendl; - for(int i=1;i<= nFiles;i++) { + for(int i = 1; i <= nFiles; i++) { QListViewItem * item; QString fileS, mediaLocation, fileDate, filePath; temp.sprintf( "%d",i); temp = cfg.readEntry( temp,""); //reads currentFile 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( 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))); - connect( autoMuteCheckBox, SIGNAL( toggled(bool)), - this, SLOT( slotAutoMute(bool))); + 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(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))); + connect(autoMuteCheckBox,SIGNAL(toggled(bool)),this,SLOT(slotAutoMute(bool))); } void QtRec::initConfig() { int index, fred, i; Config cfg("OpieRec"); cfg.setGroup("Settings"); index = cfg.readNumEntry("samplerate",22050); bool ok; for(int ws=0;ws<sampleRateComboBox->count();ws++) { fred = sampleRateComboBox->text(ws).toInt(&ok, 10); if( index == fred) { filePara.sampleRate = fred; sampleRateComboBox->setCurrentItem(ws); } } i = cfg.readNumEntry("bitrate",16); if(i == 16) bitRateComboBox->setCurrentItem( 1); else if(i == 24) bitRateComboBox->setCurrentItem( 2); else if(i == 32) bitRateComboBox->setCurrentItem( 3); else bitRateComboBox->setCurrentItem( 0); filePara.resolution = i; i = cfg.readNumEntry("sizeLimit", 5 ); QString temp; sizeLimitCombo->setCurrentItem((i/5)); stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 1)); if( stereoCheckBox->isChecked()) { filePara.channels = 2; } else { filePara.channels = 1; } compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1)); if( compressionCheckBox->isChecked()) { bitRateComboBox->setEnabled(false); bitRateComboBox->setCurrentItem(0); 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); diff --git a/noncore/multimedia/opierec/qtrec.h b/noncore/multimedia/opierec/qtrec.h index 3808d99..642048a 100644 --- a/noncore/multimedia/opierec/qtrec.h +++ b/noncore/multimedia/opierec/qtrec.h @@ -69,119 +69,119 @@ private: QLineEdit *renameBox; QGroupBox* GroupBox1; QString currentFile; QString date, currentFileName, tmpFileName; QTimer *t_timer; bool needsStereoOut, paused; bool useTmpFile, autoMute; bool eventFilter( QObject * , QEvent * ); void okRename(); void cancelRename(); QString getStorage(const QString &); bool rec(); int getCurrentSizeLimit(); long checkDiskSpace(const QString &); void doMute(bool); void errorStop(); void fillDirectoryCombo(); 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 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); void newSound(); void rewindPressed(); void rewindReleased(); void rewindTimerTimeout(); void slotAutoMute(bool); void thisTab(QWidget*); void timeSliderPressed(); void timeSliderReleased(); void timerBreak(); + void initIconView(); /* void changedOutVolume(int); */ /* void changedInVolume(int); */ protected: WavFile *wavFile; QButtonGroup *ButtonGroup1; QCheckBox *outMuteCheckBox, *inMuteCheckBox, *compressionCheckBox, *autoMuteCheckBox, *stereoCheckBox; QComboBox* sampleRateComboBox, * bitRateComboBox, *directoryComboBox, *sizeLimitCombo; QHBoxLayout* Layout12; QHBoxLayout* Layout13; QHBoxLayout* Layout14; QHBoxLayout* Layout16; QHBoxLayout* Layout17; QHBoxLayout* Layout19; QIconView *IconView1; QLabel *NewSoundLabel,*playLabel2; QLabel *TextLabel3, *TextLabel1, *TextLabel2; QListView *ListView1; QPushButton *Stop_PushButton, *Play_PushButton, *Rec_PushButton, *NewSoundButton, *deleteSoundButton, *toBeginningButton, *toEndButton; QString recDir; QTabWidget *TabWidget; QTimer *t, *rewindTimer, *forwardTimer; QVBoxLayout* Layout15; QVBoxLayout* Layout15b; QVBoxLayout* Layout18; QWidget *tab, *tab_2, *tab_3, *tab_4, *tab_5; 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 initIconView(); 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 |