summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2007-01-08 19:18:26 (UTC)
committer llornkcor <llornkcor>2007-01-08 19:18:26 (UTC)
commit5e9659c695af1d1afb20a377775f1349b83eca53 (patch) (side-by-side diff)
tree8904471e0508b91d1f04d4e2ddd2a81963d934be
parentc880d9e087019f27f19c80b13fe2c7a5a4b37e3d (diff)
downloadopie-5e9659c695af1d1afb20a377775f1349b83eca53.zip
opie-5e9659c695af1d1afb20a377775f1349b83eca53.tar.gz
opie-5e9659c695af1d1afb20a377775f1349b83eca53.tar.bz2
patch from paul
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opierec/qtrec.cpp111
-rw-r--r--noncore/multimedia/opierec/qtrec.h3
2 files changed, 65 insertions, 49 deletions
diff --git a/noncore/multimedia/opierec/qtrec.cpp b/noncore/multimedia/opierec/qtrec.cpp
index 75413be..d8b8ce3 100644
--- a/noncore/multimedia/opierec/qtrec.cpp
+++ b/noncore/multimedia/opierec/qtrec.cpp
@@ -457,26 +457,24 @@ void QtRec::cleanUp() {
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 " ));
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);
@@ -492,25 +490,25 @@ void QtRec::init() {
// 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 );
+ Stop_PushButton->setPixmap( Opie::Core::OResource::loadPixmap("play2", Opie::Core::OResource::SmallIcon) );
toBeginningButton = new QPushButton( tab, "Beginning_PushButton" );
layout1->addMultiCellWidget(toBeginningButton, 1, 1, 5, 5);
toBeginningButton->setFixedSize( 22, 22);
toBeginningButton->setPixmap( Opie::Core::OResource::loadPixmap("fastback", Opie::Core::OResource::SmallIcon) );
toEndButton = new QPushButton( tab, "End_PushButton" );
layout1->addMultiCellWidget( toEndButton, 1, 1, 6, 6);
toEndButton->setFixedSize( 22, 22);
toEndButton->setPixmap( Opie::Core::OResource::loadPixmap( "fastforward", Opie::Core::OResource::SmallIcon ) );
// QLabel *recLabel2;
@@ -528,34 +526,37 @@ void QtRec::init() {
connect( t, SIGNAL( timeout() ), SLOT( timerBreak() ) );
rewindTimer = new QTimer( this );
connect( rewindTimer, SIGNAL( timeout() ),
this, SLOT( rewindTimerTimeout() ) );
forwardTimer = new QTimer( this );
connect( forwardTimer, SIGNAL( timeout() ),
this, SLOT( forwardTimerTimeout() ) );
deleteSoundButton = new QPushButton( tab, "deleteSoundButton" );
layout1->addMultiCellWidget( deleteSoundButton, 1, 1, 8, 8);
- deleteSoundButton->setText( tr( "Del" ) );
+ deleteSoundButton->setFixedSize( 22, 22);
+ deleteSoundButton->setPixmap( Opie::Core::OResource::loadPixmap( "editdelete", Opie::Core::OResource::SmallIcon ) );
ListView1 = new QListView( tab, "IconView1" );
layout1->addMultiCellWidget( ListView1, 2, 2, 0, 8);
ListView1->addColumn( tr( "Name" ) );
ListView1->setSorting( 1, false);
ListView1->addColumn( tr( "Time" ) ); //in seconds
+ ListView1->addColumn( tr( "Size" ) );
ListView1->setColumnWidthMode(0, QListView::Maximum);
- ListView1->setColumnAlignment( 1, QListView::AlignCenter);
+ ListView1->setColumnAlignment( 1, QListView::AlignRight);
+ ListView1->setColumnAlignment( 2, QListView::AlignRight);
ListView1->setAllColumnsShowFocus( true );
QPEApplication::setStylusOperation( ListView1->viewport(), QPEApplication::RightOnHold);
TabWidget->insertTab( tab, tr( "Files" ) );
///**********<<<<<<<<<<<<>>>>>>>>>>>>***************
tab_3 = new QWidget( TabWidget, "tab_3" );
QGridLayout *glayout3 = new QGridLayout( tab_3 );
glayout3->setSpacing( 2);
glayout3->setMargin( 2);
////////////////////////////////////
sampleGroup = new QGroupBox( tab_3, "samplegroup" );
@@ -693,33 +694,37 @@ void QtRec::initIconView() {
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
+ QString sizeStr;
+ fileSize(info.size(), sizeStr);
mediaLocation = getStorage( filePath);
if( info.exists()) {
// owarn << "new item " << temp << oendl;
- item = new QListViewItem( ListView1, temp, fileS /*, mediaLocation, fileDate*/);
+ item = new QListViewItem( ListView1, temp, fileS, sizeStr );
item->setPixmap( 0, image0);
if( currentFileName == filePath)
ListView1->setSelected( item, true);
}
}
+
+ setButtons();
}
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()));
@@ -777,25 +782,25 @@ void QtRec::initConfig() {
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));
+ stereoCheckBox->setChecked( cfg.readBoolEntry("stereo", 0));
if( stereoCheckBox->isChecked()) {
filePara.channels = 2;
} else {
filePara.channels = 1;
}
compressionCheckBox->setChecked( cfg.readBoolEntry("wavCompression",1));
if( compressionCheckBox->isChecked()) {
bitRateComboBox->setCurrentItem(1);
bitRateComboBox->setEnabled(false);
filePara.resolution=16;
}
@@ -805,76 +810,74 @@ void QtRec::initConfig() {
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) {
emit stopPlaying();
endPlaying();
} else {
emit stopRecording();
endRecording();
}
timeSlider->setValue(0);
+ setButtons();
}
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;
+ setButtons();
secCount = 1;
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);
+ setButtons();
if( setupAudio( true))
if(setUpFile()) {
int fileSize = 0;
Config cfg("OpieRec");
cfg.setGroup("Settings");
filePara.SecondsToRecord = getCurrentSizeLimit();
int diskSize = checkDiskSpace( (const QString &) wavFile->trackName());
if( filePara.SecondsToRecord == 0) {
fileSize = diskSize;
} else if( filePara.format == WAVE_FORMAT_PCM) {
@@ -912,26 +915,25 @@ bool QtRec::rec() { //record
#ifdef DEV_VERSION
setCaption( msg);
#endif
filePara.fileName=currentFile.latin1();
odebug << "Start recording" << oendl;
stopped = false;
#ifdef THREADED
odebug << "Start recording thread" << oendl;
pthread_t thread1;
pthread_create( &thread1, NULL, (void * (*)(void *))quickRec, NULL/* &*/);
#endif
- toBeginningButton->setEnabled( false);
- toEndButton->setEnabled( false);
+ setButtons();
startTimer(1000);
#ifndef THREADED
quickRec();
#endif
}
} //end setUpFile
} //end setupAudio
return true;
}
/*
This happens when a tab is selected*/
@@ -1131,26 +1133,25 @@ bool QtRec::doPlay() {
filePara.channels,
filePara.resolution);
#ifdef DEV_VERSION
setCaption( msg);
#endif
startTimer( 1000);
#ifdef THREADED
pthread_t thread2;
pthread_create( &thread2, NULL, (void * (*)(void *))playIt, NULL/* &*/);
#endif
- toBeginningButton->setEnabled( false);
- toEndButton->setEnabled( false);
+ setButtons();
#ifndef THREADED
playIt();
#endif
return true;
}
void QtRec::changebitrateCombo(int i) {
Config cfg("OpieRec");
cfg.setGroup("Settings");
int bits = 0;
if( i == 1) { bits = 16; }
@@ -1197,39 +1198,40 @@ 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();
+ stop();
}
}
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;
+
+ if (QMessageBox::information(this, tr("Delete"), tr("Are you sure?"), QMessageBox::Yes, QMessageBox::No)==QMessageBox::Yes) {
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++) {
@@ -1246,24 +1248,25 @@ void QtRec::deleteSound() {
cfg.writeEntry( "NumberofFiles", nFiles-1);
cfg.write();
ListView1->takeItem( ListView1->currentItem() );
delete ListView1->currentItem();
ListView1->clear();
ListView1->setSelected( ListView1->firstChild(), true);
initIconView();
update();
setCaption( tr( "OpieRecord " ));
}
+}
void QtRec::keyPressEvent( QKeyEvent *e) {
switch ( e->key() ) {
// case Key_F1:
// if(stopped && !recording)
// newSound();
// else
// stop();
// break;
// case Key_F2: {
// if( !e->isAutoRepeat())
@@ -1367,28 +1370,26 @@ void QtRec::keyReleaseEvent( QKeyEvent *e) {
odebug << "Right" << oendl;
FastforwardReleased();
break;
}
}
void QtRec::endRecording() {
monitoring = false;
recording = false;
stopped = true;
waveform->reset();
- setRecordButton( false);
- toBeginningButton->setEnabled( true);
- toEndButton->setEnabled( true);
+ setButtons();
killTimers();
if(autoMute)
doMute( true);
soundDevice->closeDevice( true);
if( wavFile->track.isOpen()) {
wavFile->adjustHeaders( filePara.fd, filePara.numberSamples);
filePara.numberSamples = 0;
wavFile->closeFile();
@@ -1433,28 +1434,25 @@ void QtRec::endRecording() {
setCaption( tr( "OpieRecord " ));
}
void QtRec::endPlaying() {
monitoring = false;
recording = false;
playing = false;
stopped = true;
waveform->reset();
// errorStop();
odebug << "end playing" << oendl;
- setRecordButton( false);
-
- toBeginningButton->setEnabled( true);
- toEndButton->setEnabled( true);
+ setButtons();
if(autoMute)
doMute( true);
soundDevice->closeDevice( false);
soundDevice->sd = -1;
// if(soundDevice) delete soundDevice;
odebug << "file and sound device closed" << oendl;
// timeLabel->setText("");
total = 0;
filePara.numberSamples = 0;
filePara.sd = -1;
@@ -1522,24 +1520,25 @@ bool QtRec::openPlayFile() {
return true;
}
void QtRec::listPressed( int mouse, QListViewItem *item, const QPoint &, int ) {
if(item == NULL )
return;
switch (mouse) {
case 1: {
if( renameBox != 0 ) //tricky
cancelRename();
currentFile = item->text(0);
+ setButtons();
// setCaption( "OpieRecord " + currentFile);
}
break;
case 2:
showListMenu(item);
ListView1->clearSelection();
break;
};
}
void QtRec::showListMenu(QListViewItem * item) {
if(item == NULL)
@@ -1581,24 +1580,25 @@ void QtRec::doBeam() {
Ir *file = new Ir(this, "IR");
connect( file, SIGNAL( done(Ir*)),
this, SLOT( fileBeamFinished(Ir*)));
file->send( filePath, "OPieRec audio file\n" + filePath );
}
}
}
}
void QtRec::doMenuPlay() {
qApp->processEvents();
currentFile = ListView1->currentItem()->text(0);
+ doPlayBtn();
}
void QtRec::doRename() {
QRect r = ListView1->itemRect( ListView1->currentItem( ));
r = QRect( ListView1->viewportToContents( r.topLeft() ), r.size() );
r.setX( ListView1->contentsX() );
if ( r.width() > ListView1->visibleWidth() )
r.setWidth( ListView1->visibleWidth() );
renameBox = new QLineEdit( ListView1->viewport(), "qt_renamebox" );
renameBox->setFrame(true);
@@ -1618,24 +1618,27 @@ void QtRec::okRename() {
odebug << renameBox->text() << oendl;
QString filename = renameBox->text();
cancelRename();
if( ListView1->currentItem() == NULL)
return;
Config cfg("OpieRec");
cfg.setGroup("Sounds");
QString file = ListView1->currentItem()->text(0);
+ if(file == filename)
+ return;
+
odebug << "filename is " + filename << oendl;
int nFiles = cfg.readNumEntry("NumberofFiles",0);
for(int i=0;i<nFiles+1;i++) { //look for file
if( cfg.readEntry( QString::number(i),"").find(file,0,true) != -1) {
QString filePath = cfg.readEntry(file,"");
cfg.writeEntry( QString::number(i), filename );
cfg.writeEntry( filename, filePath );
cfg.removeEntry( file);
@@ -1929,47 +1932,24 @@ QString QtRec::getStorage(const QString &fileName) {
// struct mntent *me;
// // if(fileName == "/etc/mtab") {
// FILE *mntfp = setmntent( fileName.latin1(), "r" );
// if ( mntfp ) {
// while ( (me = getmntent( mntfp )) != 0 ) {
// QString filesystemType = me->mnt_type;
// }
// }
// endmntent( mntfp );
}
-void QtRec::setRecordButton(bool b) {
-
- if(b) { //about to record or play
-
- Rec_PushButton->setDown( true);
- QPixmap image3( ( const char** ) image3_data );
- Stop_PushButton->setPixmap( image3 );
- if(Stop_PushButton->isDown())
- Stop_PushButton->setDown( true);
-// playLabel2->setText( tr("Stop") );
-
- } else { //about to stop
-
- QPixmap image4( ( const char** ) image4_data );
- Stop_PushButton->setPixmap( image4);
- if(Stop_PushButton->isDown())
- Stop_PushButton->setDown( false);
-// playLabel2->setText( tr("Play") );
- if(Rec_PushButton->isDown())
- Rec_PushButton->setDown( false);
- }
-}
-
void QtRec::fillDirectoryCombo() {
if( directoryComboBox->count() > 0)
directoryComboBox->clear();
int index = 0;
Config cfg("OpieRec");
cfg.setGroup("Settings");
QString dir = cfg.readEntry("directory", "/");
StorageInfo storageInfo;
const QList<FileSystem> &fs = storageInfo.fileSystems();
QListIterator<FileSystem> it ( fs );
QString storage;
for( ; it.current(); ++it ){
@@ -2041,13 +2021,48 @@ void QtRec::selectItemByName(const QString & name) {
void QtRec::changeStereoCheck(bool b) {
Config cfg("OpieRec");
cfg.setGroup("Settings");
int ch = 0;
if ( !b) { ch = 1;}
else { ch = 2;}
cfg.writeEntry("stereo", b);
filePara.channels = ch;
cfg.write();
}
+void QtRec::setButtons() {
+ if(stopped) {
+ Stop_PushButton->setPixmap( Opie::Core::OResource::loadPixmap("play2", Opie::Core::OResource::SmallIcon) );
+ if(ListView1->currentItem()) {
+ Stop_PushButton->setEnabled(true);
+ toBeginningButton->setEnabled(true);
+ toEndButton->setEnabled(true);
+ deleteSoundButton->setEnabled(true);
+ timeSlider->setEnabled(true);
+ }
+ else {
+ Stop_PushButton->setEnabled(false);
+ toBeginningButton->setEnabled(false);
+ toEndButton->setEnabled(false);
+ deleteSoundButton->setEnabled(false);
+ timeSlider->setEnabled(false);
+ }
+ }
+ else {
+ timeSlider->setEnabled(true);
+ Stop_PushButton->setPixmap( Opie::Core::OResource::loadPixmap("stop", Opie::Core::OResource::SmallIcon) );
+ Stop_PushButton->setEnabled(true);
+ toBeginningButton->setEnabled(false);
+ toEndButton->setEnabled(false);
+ deleteSoundButton->setEnabled(false);
+ }
+}
+void QtRec::fileSize(unsigned long size, QString &str) {
+ if( size > 1048576 )
+ str.sprintf( "%.0fM", size / 1048576.0 );
+ else if( size > 1024 )
+ str.sprintf( "%.0fk", size / 1024.0 );
+ else
+ str.sprintf( "%d", size );
+}
diff --git a/noncore/multimedia/opierec/qtrec.h b/noncore/multimedia/opierec/qtrec.h
index 6e81af6..b463597 100644
--- a/noncore/multimedia/opierec/qtrec.h
+++ b/noncore/multimedia/opierec/qtrec.h
@@ -89,28 +89,29 @@ private:
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 );
+ void setButtons();
+ void QtRec::fileSize(unsigned long size, QString &str);
private slots:
void endPlaying();
void endRecording();
void FastforwardPressed();
void FastforwardReleased();
void changeDirCombo(int);
void changeSizeLimitCombo(int);
void changeTimeSlider(int);
void changebitrateCombo(int);