summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp101
-rw-r--r--noncore/multimedia/opierec/qtrec.h2
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