-rw-r--r-- | noncore/tools/formatter/formatter.cpp | 510 | ||||
-rw-r--r-- | noncore/tools/opie-sh/opie-sh.cpp | 492 | ||||
-rw-r--r-- | noncore/tools/remote/learntab.cpp | 311 | ||||
-rw-r--r-- | noncore/tools/remote/remote.cpp | 102 |
4 files changed, 738 insertions, 677 deletions
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp index 532ee40..e869317 100644 --- a/noncore/tools/formatter/formatter.cpp +++ b/noncore/tools/formatter/formatter.cpp @@ -1,85 +1,85 @@ /**************************************************************************** ** formatter.cpp ** ** Copyright: Thu Apr 11 11:01:13 2002 ** by: L. J. Potter ** ****************************************************************************/ #include "formatter.h" #include "inputDialog.h" #include "output.h" -#include <qmenubar.h> +/* OPIE */ #include <qpe/qpetoolbar.h> #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/config.h> #include <qpe/mimetype.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/storage.h> +/* QT */ +#include <qmenubar.h> #include <qmultilineedit.h> #include <qstring.h> #include <qlist.h> #include <qstringlist.h> #include <qdir.h> #include <qfile.h> - #include <qtstream.h> - #include <qcombobox.h> #include <qpopupmenu.h> #include <qmessagebox.h> #include <qregexp.h> - #include <qlabel.h> #include <qlineedit.h> #include <qpushbutton.h> #include <qtabwidget.h> #include <qwidget.h> #include <qlayout.h> #include <qvariant.h> +/* STD */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <sys/vfs.h> #include <mntent.h> #include <string.h> #include <errno.h> #define BLANK ' ' #define DELIMITER '#' -/* +/* Blah blah blah blah */ FormatterApp::FormatterApp( QWidget* parent, const char* name, WFlags fl, bool modal ) : QMainWindow( parent, name, fl ) -// : QDialog( parent, name, modal, fl ) + // : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "FormatterApp" ); connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); setCaption( tr( "Formatter" ) ); - FormatterAppLayout = new QGridLayout( this ); + FormatterAppLayout = new QGridLayout( this ); FormatterAppLayout->setSpacing( 2); FormatterAppLayout->setMargin( 2 ); TabWidget = new QTabWidget( this, "TabWidget" ); tab = new QWidget( TabWidget, "tab" ); - tabLayout = new QGridLayout( tab ); + tabLayout = new QGridLayout( tab ); tabLayout->setSpacing( 3); tabLayout->setMargin( 2); storageComboBox = new QComboBox( FALSE, tab, "storageComboBox" ); storageComboBox->setMaximumWidth(220); tabLayout->addMultiCellWidget( storageComboBox, 0, 0, 0, 1); TextLabel4 = new QLabel( tab, "TextLabel4" ); TextLabel4->setText( tr( "Storage Type" ) ); tabLayout->addMultiCellWidget( TextLabel4, 1, 1, 0, 1); @@ -90,56 +90,56 @@ FormatterApp::FormatterApp( QWidget* parent, const char* name, WFlags fl, bool tabLayout->addMultiCellWidget( TextLabel2, 4, 4, 0, 1); fileSystemsCombo = new QComboBox( FALSE, tab, "fileSystemsCombo" ); fileSystemsCombo->setMaximumWidth(220); tabLayout->addMultiCellWidget( fileSystemsCombo, 3, 3, 0, 1); QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); tabLayout->addItem( spacer, 2, 0 ); formatPushButton = new QPushButton( tab, "formatPushButton" ); formatPushButton->setText( tr( "Format" ) ); formatPushButton->setMaximumWidth(170); - + tabLayout->addMultiCellWidget( formatPushButton, 6, 6, 0, 1); QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); tabLayout->addItem( spacer_2, 5, 0 ); - + TabWidget->insertTab( tab, tr( "Main" ) ); tab_2 = new QWidget( TabWidget, "tab_2" ); - tabLayout_2 = new QGridLayout( tab_2 ); + tabLayout_2 = new QGridLayout( tab_2 ); tabLayout_2->setSpacing(3); tabLayout_2->setMargin(2); mountPointLineEdit = new QLineEdit( tab_2, "mountPointLineEdit" ); tabLayout_2->addMultiCellWidget( mountPointLineEdit, 0, 0, 0, 1); deviceComboBox = new QComboBox( FALSE, tab_2, "deviceComboBox" ); tabLayout_2->addMultiCellWidget( deviceComboBox, 3, 3, 0, 1); TextLabel5 = new QLabel( tab_2, "TextLabel5" ); TextLabel5->setText( tr( "CAUTION:\n" "Changing parameters on this\n" "page may cause your system\n" "to stop functioning properly!" ) );//idiot message tabLayout_2->addMultiCellWidget( TextLabel5, 6, 6, 0, 1); editPushButton = new QPushButton( tab_2, "editPushButton" ); editPushButton->setText( tr( "Edit fstab" ) ); editPushButton->setMaximumWidth(100); - + tabLayout_2->addMultiCellWidget( editPushButton, 7, 7, 0, 0 ); fsckButton = new QPushButton( tab_2, "fsckPushButton" ); fsckButton->setText( tr( "Check Disk" ) ); fsckButton->setMaximumWidth(100); tabLayout_2->addMultiCellWidget( fsckButton, 7, 7, 1, 1); TextLabel3 = new QLabel( tab_2, "TextLabel3" ); TextLabel3->setText( tr( "Device" ) ); tabLayout_2->addMultiCellWidget( TextLabel3, 4, 4, 0, 1 ); @@ -155,430 +155,478 @@ FormatterApp::FormatterApp( QWidget* parent, const char* name, WFlags fl, bool TabWidget->insertTab( tab_2, tr( "Advanced" ) ); FormatterAppLayout->addWidget( TabWidget, 0, 1 ); connect( formatPushButton ,SIGNAL(released()),this,SLOT( doFormat()) ); connect( editPushButton ,SIGNAL(released()),this,SLOT( editFstab()) ); connect( fsckButton ,SIGNAL(released()),this,SLOT( doFsck()) ); connect( fileSystemsCombo,SIGNAL(activated(int)),this,SLOT( fsComboSelected(int ) )); connect( storageComboBox,SIGNAL(activated(int)),this,SLOT( storageComboSelected(int ) )); connect( deviceComboBox,SIGNAL(activated(int)),this,SLOT( deviceComboSelected(int ) )); - + fillCombos(); } -FormatterApp::~FormatterApp() { - -} +FormatterApp::~FormatterApp() +{} -void FormatterApp::doFormat() { +void FormatterApp::doFormat() +{ int err=0; Output *outDlg; QString umountS, remountS; QString text = storageComboBox->currentText(); QString currentText = storageComboBox->currentText(); QString cmd; QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); QString diskName = currentText.left(currentText.find(" -> ",0,TRUE)); QString fs = fileSystemsCombo->currentText(); #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // lets test on something cheap #else currentText = diskDevice = "/dev/fd0"; umountS = "umount -v /floppy 2>&1"; remountS = "mount -v /floppy 2>&1"; #endif - if( currentText.find("CF",0,TRUE) != -1) { + if( currentText.find("CF",0,TRUE) != -1) + { umountS = "umount "; remountS = "mount "; -// umountS = "/sbin/cardctl eject"; -// remountS = "/sbin/cardctl insert"; + // umountS = "/sbin/cardctl eject"; + // remountS = "/sbin/cardctl insert"; } - if( currentText.find("SD",0,TRUE) != -1) { + if( currentText.find("SD",0,TRUE) != -1) + { umountS = "umount "; remountS = "mount "; -// umountS = "/etc/sdcontrol compeject"; -// remountS = "/etc/sdcontrol insert"; + // umountS = "/etc/sdcontrol compeject"; + // remountS = "/etc/sdcontrol insert"; } - switch ( QMessageBox::warning(this,tr("Format?") - , tr("Really format\n") +diskName+" "+ currentText + + switch ( QMessageBox::warning(this,tr("Format?") + , tr("Really format\n") +diskName+" "+ currentText + tr("\nwith %1 filesystem?\nYou will loose all data!!").arg( fs ) - ,tr("Yes") - ,tr("No") - ,0 - ,1 - ,1) ) { - case 0: { - if(fs == "vfat") - cmd = "mkdosfs -v " + diskDevice+" 2>&1"; - else if(fs == "ext2") - cmd = "mke2fs -v " + diskDevice+" 2>&1"; - else { - QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok")); - break; - } -// cmd = "ls -l"; - outDlg = new Output(this, tr("Formatter Output"),FALSE); - outDlg->showMaximized(); - outDlg->show(); - qApp->processEvents(); - FILE *fp; - char line[130]; - - - outDlg->OutputEdit->append( tr("Trying to umount %1.").arg( currentText) ); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - - sleep(1); - qDebug("Command is "+umountS); - fp = popen( (const char *) umountS, "r"); - // qDebug("%d", fp); - if ( !fp ) { - qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err); - QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); - pclose(fp); - return; - } else { -// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); -// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("busy",0,TRUE) != -1) { - qDebug("Could not find '" + umountS); - QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); - pclose(fp); - return; - } else { - QString lineStr = line; - lineStr=lineStr.left(lineStr.length()-1); - outDlg->OutputEdit->append(lineStr); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - } - } - } - pclose(fp); - - qDebug("Command would be: "+cmd); - outDlg->OutputEdit->append( tr("Trying to format.") ); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - - fp = popen( (const char *) cmd, "r"); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("No such device",0,TRUE) != -1) { - qDebug("No such device '" + umountS); - QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); - pclose(fp); -// outDlg->OutputEdit->append("No such device"); -// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - return; - } else { - QString lineStr = line; - lineStr=lineStr.left(lineStr.length()-1); - outDlg->OutputEdit->append(lineStr); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - } - } - outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - pclose(fp); - - outDlg->OutputEdit->append( tr("Trying to mount %1.").arg( currentText) ); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - fp = popen( (const char *) remountS, "r"); - if ( !fp) { - qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err); - QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") ); - - } else { - outDlg->OutputEdit->append(tr("%1\nhas been successfully mounted.").arg( currentText )); - while ( fgets( line, sizeof line, fp)) { - QString lineStr = line; - lineStr=lineStr.left(lineStr.length()-1); - outDlg->OutputEdit->append(lineStr); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - } - } - pclose(fp); - sleep(1); - - outDlg->OutputEdit->append(tr("You can now close the output window.")); - outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); -// outDlg->close(); -// if(outDlg) -// delete outDlg; - } - break; + ,tr("Yes") + ,tr("No") + ,0 + ,1 + ,1) ) + { + case 0: + { + if(fs == "vfat") + cmd = "mkdosfs -v " + diskDevice+" 2>&1"; + else if(fs == "ext2") + cmd = "mke2fs -v " + diskDevice+" 2>&1"; + else + { + QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok")); + break; + } + // cmd = "ls -l"; + outDlg = new Output(this, tr("Formatter Output"),FALSE); + QPEApplication::showDialog( outDlg); + qApp->processEvents(); + FILE *fp; + char line[130]; + + + outDlg->OutputEdit->append( tr("Trying to umount %1.").arg( currentText) ); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + + sleep(1); + qDebug("Command is "+umountS); + fp = popen( (const char *) umountS, "r"); + // qDebug("%d", fp); + if ( !fp ) + { + qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err); + QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); + pclose(fp); + return; + } + else + { + // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); + // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("busy",0,TRUE) != -1) + { + qDebug("Could not find '" + umountS); + QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); + pclose(fp); + return; + } + else + { + QString lineStr = line; + lineStr=lineStr.left(lineStr.length()-1); + outDlg->OutputEdit->append(lineStr); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + } + } + } + pclose(fp); + + qDebug("Command would be: "+cmd); + outDlg->OutputEdit->append( tr("Trying to format.") ); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + + fp = popen( (const char *) cmd, "r"); + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("No such device",0,TRUE) != -1) + { + qDebug("No such device '" + umountS); + QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); + pclose(fp); + // outDlg->OutputEdit->append("No such device"); + // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + return; + } + else + { + QString lineStr = line; + lineStr=lineStr.left(lineStr.length()-1); + outDlg->OutputEdit->append(lineStr); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + } + } + outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + pclose(fp); + + outDlg->OutputEdit->append( tr("Trying to mount %1.").arg( currentText) ); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + fp = popen( (const char *) remountS, "r"); + if ( !fp) + { + qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err); + QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") ); + + } + else + { + outDlg->OutputEdit->append(tr("%1\nhas been successfully mounted.").arg( currentText )); + while ( fgets( line, sizeof line, fp)) + { + QString lineStr = line; + lineStr=lineStr.left(lineStr.length()-1); + outDlg->OutputEdit->append(lineStr); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + } + } + pclose(fp); + sleep(1); + + outDlg->OutputEdit->append(tr("You can now close the output window.")); + outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + // outDlg->close(); + // if(outDlg) + // delete outDlg; + } + break; }; } -bool FormatterApp::doFdisk() { +bool FormatterApp::doFdisk() +{ return FALSE; - + } -void FormatterApp::fillCombos() { +void FormatterApp::fillCombos() +{ StorageInfo storageInfo; const QList<FileSystem> &fs = storageInfo.fileSystems(); QListIterator<FileSystem> it ( fs ); QString storage; - for( ; it.current(); ++it ){ + for( ; it.current(); ++it ) + { const QString name = (*it)->name(); const QString path = (*it)->path(); const QString disk = (*it)->disk(); const QString options = (*it)->options(); - if( name.find( tr("Internal"),0,TRUE) == -1) { + if( name.find( tr("Internal"),0,TRUE) == -1) + { storageComboBox->insertItem(name +" -> "+disk); } -// deviceComboBox->insertItem(disk); + // deviceComboBox->insertItem(disk); } parsetab("/etc/mtab"); -// parsetab("/etc/fstab"); + // parsetab("/etc/fstab"); fileSystemsCombo->insertStringList( fsList,-1); deviceComboBox->insertStringList( deviceList,-1); storageComboSelected(0); - deviceComboSelected(0); + deviceComboSelected(0); } -void FormatterApp::fsComboSelected(int ) { +void FormatterApp::fsComboSelected(int ) +{} -} - -void FormatterApp::storageComboSelected(int index ) { +void FormatterApp::storageComboSelected(int index ) +{ QString currentText = storageComboBox->text(index); QString nameS = currentText.left( currentText.find("->",0,TRUE)); TextLabel4->setText( tr( "Storage Type: %1").arg( nameS) ); currentText = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); QString fsType = getFileSystemType((const QString &) currentText); -// qDebug(fsType); - for(int i = 0; i < fileSystemsCombo->count(); i++) { + // qDebug(fsType); + for(int i = 0; i < fileSystemsCombo->count(); i++) + { if( fsType == fileSystemsCombo->text(i)) fileSystemsCombo->setCurrentItem(i); } -// deviceComboSelected(index); + // deviceComboSelected(index); } -void FormatterApp::deviceComboSelected(int index) { +void FormatterApp::deviceComboSelected(int index) +{ StorageInfo storageInfo; QString totalS, usedS, avS, diskS, nameS, fsType, selectedText; selectedText = deviceComboBox->text(index); const QList<FileSystem> &fs = storageInfo.fileSystems(); QListIterator<FileSystem> it ( fs ); QString storage; - for( ; it.current(); ++it ){ + for( ; it.current(); ++it ) + { const QString name = (*it)->name(); const QString path = (*it)->path(); const QString disk = (*it)->disk(); -// const QString options = (*it)->options(); - if( selectedText == disk) { + // const QString options = (*it)->options(); + if( selectedText == disk) + { diskS = disk; nameS= name; mountPointLineEdit->setText(path); long mult = (*it)->blockSize() / 1024; long div = 1024 / (*it)->blockSize(); if ( !mult ) mult = 1; if ( !div ) div = 1; long total = (*it)->totalBlocks() * mult / div; long totalMb = total/1024; long avail = (*it)->availBlocks() * mult / div; long availMb = avail/1024; long used = total - avail; long usedMb = used/1024; totalS.sprintf(tr("Total: %1 kB ( %d mB)\n").arg( total ), totalMb ); usedS.sprintf(tr("Used: %1 kB ( %d mB)\n").arg(used) ,usedMb); avS.sprintf( tr("Available: %1 kB ( %d mB)").arg(avail), availMb ); } } fsType = getFileSystemType((const QString &)selectedText); - TextLabel5->setText(tr("Type: %1\nFormatted with %2\n%3, %4, %5").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS )); + TextLabel5->setText(tr("Type: %1\nFormatted with %2\n%3, %4, %5").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS )); TextLabel5->setTextFormat( Qt::RichText ); -// storageComboSelected(0); + // storageComboSelected(0); } -void FormatterApp::cleanUp() { +void FormatterApp::cleanUp() +{} -} - -void FormatterApp::editFstab() { +void FormatterApp::editFstab() +{ QCopEnvelope e("QPE/Application/textedit","setDocument(QString)"); e << (const QString &)"/etc/fstab"; } -void FormatterApp::parsetab(const QString &fileName) { +void FormatterApp::parsetab(const QString &fileName) +{ fileSystemTypeList.clear(); fsList.clear(); struct mntent *me; -// if(fileName == "/etc/mtab") { + // if(fileName == "/etc/mtab") { FILE *mntfp = setmntent( fileName.latin1(), "r" ); - if ( mntfp ) { - while ( (me = getmntent( mntfp )) != 0 ) { + if ( mntfp ) + { + while ( (me = getmntent( mntfp )) != 0 ) + { QString deviceName = me->mnt_fsname; QString filesystemType = me->mnt_type; - if(deviceName != "none") { + if(deviceName != "none") + { if( fsList.contains(filesystemType) == 0 - & filesystemType.find("proc",0,TRUE) == -1 - & filesystemType.find("cramfs",0,TRUE) == -1 - & filesystemType.find("auto",0,TRUE) == -1) + & filesystemType.find("proc",0,TRUE) == -1 + & filesystemType.find("cramfs",0,TRUE) == -1 + & filesystemType.find("auto",0,TRUE) == -1) fsList << filesystemType; deviceList << deviceName; qDebug(deviceName+"::"+filesystemType); fileSystemTypeList << deviceName+"::"+filesystemType; } } } endmntent( mntfp ); -// } else if(fileName == "/etc/fstab") { -// QFile f("/etc/fstab"); -// if ( f.open(IO_ReadOnly) ) { -// QTextStream t (&f); -// QString s; -// while (! t.eof()) { -// s=t.readLine(); -// s=s.simplifyWhiteSpace(); -// if ( (!s.isEmpty() ) && (s.find(" ")!=0) ) { -// // = me->mnt_fsname; -// QString filesystemType = me->mnt_type; -// QString deviceName = s.left(0,s.find(BLANK) ); -// s=s.remove(0,s.find(BLANK)+1 ); // devicename - -// s=s.remove(0,s.find(BLANK)+1 ); // mountpoint -// QStringt mountPoint= s.left(0,s.find(BLANK) ); -// s=s.remove(0,s.find(BLANK)+1 ); // fs -// QString filesystemType= s.left(0,s.find(BLANK) ); -// } -// } -// } -// f.close(); -// } + // } else if(fileName == "/etc/fstab") { + // QFile f("/etc/fstab"); + // if ( f.open(IO_ReadOnly) ) { + // QTextStream t (&f); + // QString s; + // while (! t.eof()) { + // s=t.readLine(); + // s=s.simplifyWhiteSpace(); + // if ( (!s.isEmpty() ) && (s.find(" ")!=0) ) { + // // = me->mnt_fsname; + // QString filesystemType = me->mnt_type; + // QString deviceName = s.left(0,s.find(BLANK) ); + // s=s.remove(0,s.find(BLANK)+1 ); // devicename + + // s=s.remove(0,s.find(BLANK)+1 ); // mountpoint + // QStringt mountPoint= s.left(0,s.find(BLANK) ); + // s=s.remove(0,s.find(BLANK)+1 ); // fs + // QString filesystemType= s.left(0,s.find(BLANK) ); + // } + // } + // } + // f.close(); + // } } -QString FormatterApp::getFileSystemType(const QString ¤tText) { +QString FormatterApp::getFileSystemType(const QString ¤tText) +{ parsetab("/etc/mtab"); //why did TT forget filesystem type? - for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) { + for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) + { QString temp = (*it); - if( temp.find( currentText,0,TRUE) != -1) { + if( temp.find( currentText,0,TRUE) != -1) + { return temp.right( temp.length() - temp.find("::",0,TRUE) - 2); -// qDebug(fsType); + // qDebug(fsType); } } return ""; } -bool FormatterApp::doFsck() { +bool FormatterApp::doFsck() +{ Output *outDlg; QString selectedDevice; -// #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) + // #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) selectedDevice = deviceComboBox->currentText(); QString mountPoint = mountPointLineEdit->text(); QString umountS = "umount -v "+mountPoint+" 2>&1"; QString remountS = "mount -v "+mountPoint+" 2>&1"; -// #else -// // for testing -// // currentText = diskDevice = "/dev/fd0"; -// QString umountS = "umount -v /floppy 2>&1"; -// QString remountS = "mount -v /floppy 2>&1"; -// selectedDevice ="/dev/fd0"; - -// #endif + // #else + // // for testing + // // currentText = diskDevice = "/dev/fd0"; + // QString umountS = "umount -v /floppy 2>&1"; + // QString remountS = "mount -v /floppy 2>&1"; + // selectedDevice ="/dev/fd0"; + + // #endif QString fsType = getFileSystemType((const QString &)selectedDevice); QString cmd; qDebug( selectedDevice +" "+ fsType); if(fsType == "vfat") cmd = "dosfsck -vy "; if(fsType == "ext2") cmd = "e2fsck -cpvy "; cmd += selectedDevice + " 2>&1"; outDlg = new Output(this, tr("Formatter Output"),FALSE); - outDlg->showMaximized(); - outDlg->show(); + QPEApplication::showDialog( outDlg ); qApp->processEvents(); FILE *fp; char line[130]; outDlg->OutputEdit->append( tr("Trying to umount.")); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); sleep(1); -// qDebug("Command is "+umountS); + // qDebug("Command is "+umountS); fp = popen( (const char *) umountS, "r"); -// qDebug("%d", fp); - if ( !fp ) { - qDebug("Could not execute '" + umountS + "'!\n" +(QString)strerror(errno)); + // qDebug("%d", fp); + if ( !fp ) + { + qDebug("Could not execute '" + umountS + "'!\n" +(QString)strerror(errno)); QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); - pclose(fp); + pclose(fp); return false; - } else { -// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); -// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("busy",0,TRUE) != -1) { - qDebug("Could not find '" + umountS); + } + else + { + // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); + // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("busy",0,TRUE) != -1) + { + qDebug("Could not find '" + umountS); QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); - pclose(fp); + pclose(fp); return false; - } else { + } + else + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } } - pclose(fp); -///////////////////////////////////// - fp = popen( (const char *) cmd, "r"); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("No such device",0,TRUE) != -1) { - qDebug("No such device '" + umountS); + pclose(fp); + ///////////////////////////////////// + fp = popen( (const char *) cmd, "r"); + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("No such device",0,TRUE) != -1) + { + qDebug("No such device '" + umountS); QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); - pclose(fp); -// outDlg->OutputEdit->append("No such device"); -// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + pclose(fp); + // outDlg->OutputEdit->append("No such device"); + // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); return false; - } else { + } + else + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } outDlg->OutputEdit->append(tr("You can now close the output window.")); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); -// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); -// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - pclose(fp); + // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); + // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); + pclose(fp); -///////////////////////////////////////// + ///////////////////////////////////////// return true; } -bool FormatterApp::doFsckCheck() { +bool FormatterApp::doFsckCheck() +{ return FALSE; } -int FormatterApp::formatCheck(const QString &) { +int FormatterApp::formatCheck(const QString &) +{ return -1; } -int FormatterApp::runCommand(const QString &) { +int FormatterApp::runCommand(const QString &) +{ return -1; } diff --git a/noncore/tools/opie-sh/opie-sh.cpp b/noncore/tools/opie-sh/opie-sh.cpp index a353d3f..7d54a03 100644 --- a/noncore/tools/opie-sh/opie-sh.cpp +++ b/noncore/tools/opie-sh/opie-sh.cpp @@ -1,284 +1,290 @@ /* Opie-sh. convinience app to allow you to use qdialogs in scripts (mainly shell scripts) Copyright (C) 2002 Thomas Stephens - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include "mbox.h" +#include "fviewer.h" +#include "inputdialog.h" + +/* OPIE */ +#include <qpe/qpeapplication.h> + +/* QT */ #include <qstring.h> #include <qstringlist.h> -#include <qpe/qpeapplication.h> #include <qmessagebox.h> #include <qwidget.h> +/* STD */ #include <stdio.h> -#include "mbox.h" -#include "fviewer.h" -#include "inputdialog.h" int myMessageBox(int wi, int h, QWidget *w, int argc, QStringList args) { - int i, type=0; - QString button0Text, button1Text, button2Text, string, title; - bool full=true; - - for(i=0; i<argc; i++) - { - if(args[i] == "-t") - { - title = args[i+1]; - } - - if(args[i] == "-M") - { - string = args[i+1]; - } - - if(args[i] == "-0") - { - button0Text = args[i+1]; - } - - if(args[i] == "-1") - { - button1Text = args[i+1]; - } - - if(args[i] == "-2") - { - button2Text = args[i+1]; - } - - if(args[i] == "-I") - { - type=0; - } - - if(args[i] == "-w") - { - type = 1; - } - - if(args[i] == "-e") - { - type = 2; - } - - if(args[i] == "-g") - { - full = false; - } - } - - MBox *mbox = new MBox(wi, h, (int)type, title, string, &button0Text, &button1Text, &button2Text, w, (QString)"messagebox"); - if(full) - { - w->setCaption(title); - w->showMaximized(); - } -// mbox->show(); - switch(mbox->exec() ) - { - case 0: - return -1; - case 1: - return -1; - case 2: - return 0; - case 3: - return 1; - case 4: - return 2; - default: return -1; - } + int i, type=0; + QString button0Text, button1Text, button2Text, string, title; + bool full=true; + + for(i=0; i<argc; i++) + { + if(args[i] == "-t") + { + title = args[i+1]; + } + + if(args[i] == "-M") + { + string = args[i+1]; + } + + if(args[i] == "-0") + { + button0Text = args[i+1]; + } + + if(args[i] == "-1") + { + button1Text = args[i+1]; + } + + if(args[i] == "-2") + { + button2Text = args[i+1]; + } + + if(args[i] == "-I") + { + type=0; + } + + if(args[i] == "-w") + { + type = 1; + } + + if(args[i] == "-e") + { + type = 2; + } + + if(args[i] == "-g") + { + full = false; + } + } + + MBox *mbox = new MBox(wi, h, (int)type, title, string, &button0Text, &button1Text, &button2Text, w, (QString)"messagebox"); + if(full) + { + w->setCaption(title); + QPEApplication::showWidget( w ); + } + // mbox->show(); + switch(mbox->exec() ) + { + case 0: + return -1; + case 1: + return -1; + case 2: + return 0; + case 3: + return 1; + case 4: + return 2; + default: return -1; + } } void printusage() { - printf("Usage instructions for Opie-sh\n"); - printf("Usage: opie-sh [dialog type] [type specific options]\n"); - printf("Types:\n"); - printf(" -m Message Box\n"); - printf(" -f [filename] View file [Default = stdin]\n"); - printf(" -i Input dialog\n"); - printf(" -h --help These instructions\n"); - printf(" -t [title] The window/dialog title\n"); - printf("Message box options:\n"); - printf(" -M [message] The message to display\n"); - printf(" -I Use information icon\n"); - printf(" -w Use the warning icon\n"); - printf(" -e Use the error icon\n"); - printf(" -0 [text] First button text [Default = OK]\n"); - printf(" -1 [text] Second button text\n"); - printf(" -2 [text] Third button text\n"); - printf(" -g Disable fullscreen\n"); - printf("Input Dialog options:\n"); - printf(" -s A single line of input (output to console)\n"); - printf(" -l List input (newline separated list read in from file)\n"); - printf(" -b A list box, enabling multiple selections (input same as -l)\n"); - printf(" -p Password input (display '*'s)\n"); - printf(" -L [label] The label for the input field\n"); - printf(" -F [filename] An input file (for when it makes sense) [Default = stdin]\n"); - printf(" -E Makes list input editable\n"); - printf(" -g Disable fullscreen\n"); + printf("Usage instructions for Opie-sh\n"); + printf("Usage: opie-sh [dialog type] [type specific options]\n"); + printf("Types:\n"); + printf(" -m Message Box\n"); + printf(" -f [filename] View file [Default = stdin]\n"); + printf(" -i Input dialog\n"); + printf(" -h --help These instructions\n"); + printf(" -t [title] The window/dialog title\n"); + printf("Message box options:\n"); + printf(" -M [message] The message to display\n"); + printf(" -I Use information icon\n"); + printf(" -w Use the warning icon\n"); + printf(" -e Use the error icon\n"); + printf(" -0 [text] First button text [Default = OK]\n"); + printf(" -1 [text] Second button text\n"); + printf(" -2 [text] Third button text\n"); + printf(" -g Disable fullscreen\n"); + printf("Input Dialog options:\n"); + printf(" -s A single line of input (output to console)\n"); + printf(" -l List input (newline separated list read in from file)\n"); + printf(" -b A list box, enabling multiple selections (input same as -l)\n"); + printf(" -p Password input (display '*'s)\n"); + printf(" -L [label] The label for the input field\n"); + printf(" -F [filename] An input file (for when it makes sense) [Default = stdin]\n"); + printf(" -E Makes list input editable\n"); + printf(" -g Disable fullscreen\n"); } int fileviewer(QPEApplication *a, int argc, QStringList args) { - int i; - QString filename, title, icon; - bool update=false; - - for(i=0; i < argc; i++) - { - if(args[i] == "-f") - { - if(args[i+1][0] != '-') - { - filename = args[i+1]; - } - } - - if(args[i] == "-I") - { - icon=args[i+1]; - } - - if(args[i] == "-t") - { - title = args[i+1]; - } - } - FViewer *fview = new FViewer(icon, filename, title, 0, (QString) "fileviewer"); - a->setMainWidget(fview); - fview->showMaximized(); - return a->exec(); + int i; + QString filename, title, icon; + bool update=false; + + for(i=0; i < argc; i++) + { + if(args[i] == "-f") + { + if(args[i+1][0] != '-') + { + filename = args[i+1]; + } + } + + if(args[i] == "-I") + { + icon=args[i+1]; + } + + if(args[i] == "-t") + { + title = args[i+1]; + } + } + FViewer *fview = new FViewer(icon, filename, title, 0, (QString) "fileviewer"); + a->setMainWidget(fview); + QPEApplication::showWidget( fview ); + return a->exec(); } int input(int wi, int h, QWidget *w, int argc, QStringList args) { - int i, type = 0; - QString title, label, filename; - bool edit=false, full=true; - - for(i=0; i < argc; i++) - { - if(args[i] == "-s") - { - type = 0; - } - - if(args[i] == "-l") - { - type = 1; - } - - if(args[i] == "-b") - { - type = 2; - } - - if(args[i] == "-p") - { - type = 3; - } - - if(args[i] == "-t") - { - title = args[i+1]; - } - - if(args[i] == "-L") - { - label = args[i+1]; - } - - if(args[i] == "-F") - { - if(args[i+1][0] != '-') - { - filename = args[i+1]; - } - } - - if(args[i] =="-E") - { - edit = true; - } - - if(args[i] == "-g") - { - full = false; - } - } - InputDialog *id = new InputDialog(wi, h, type, label, title, filename, edit, w); - if(full) - { - w->setCaption(title); - w->showMaximized(); - } - if( id->exec() == 1) - { - printf("%s\n", id->getString().latin1()); - return 0; - } - else - { - return -1; - } + int i, type = 0; + QString title, label, filename; + bool edit=false, full=true; + + for(i=0; i < argc; i++) + { + if(args[i] == "-s") + { + type = 0; + } + + if(args[i] == "-l") + { + type = 1; + } + + if(args[i] == "-b") + { + type = 2; + } + + if(args[i] == "-p") + { + type = 3; + } + + if(args[i] == "-t") + { + title = args[i+1]; + } + + if(args[i] == "-L") + { + label = args[i+1]; + } + + if(args[i] == "-F") + { + if(args[i+1][0] != '-') + { + filename = args[i+1]; + } + } + + if(args[i] =="-E") + { + edit = true; + } + + if(args[i] == "-g") + { + full = false; + } + } + InputDialog *id = new InputDialog(wi, h, type, label, title, filename, edit, w); + if(full) + { + w->setCaption(title); + QPEApplication::showWidget( w ); + } + if( id->exec() == 1) + { + printf("%s\n", id->getString().latin1()); + return 0; + } + else + { + return -1; + } } int main(int argc, char **argv) { - int i; - QStringList args; - QPEApplication a(argc, argv); - QWidget w; - a.setMainWidget(&w); - QWidget *d = a.desktop(); - int width=d->width(); - int height=d->height(); - - for(i=0; i < argc; i++) - { - args += argv[i]; - } - - for(i=0; i < argc; i++) - { - if(args[i] == "-m") - { - return myMessageBox(width, height, &w, argc, args); - } - - if(args[i] == "-f") - { - return fileviewer(&a, argc, args); - } - - if(args[i] == "-i") - { - return input(width, height, &w, argc, args); - } - - if(args[i] == "-h" || args[i] =="--help") - { - printusage(); - return -1; - } - } - - printusage(); - return -1; + int i; + QStringList args; + QPEApplication a(argc, argv); + QWidget w; + a.setMainWidget(&w); + QWidget *d = a.desktop(); + int width=d->width(); + int height=d->height(); + + for(i=0; i < argc; i++) + { + args += argv[i]; + } + + for(i=0; i < argc; i++) + { + if(args[i] == "-m") + { + return myMessageBox(width, height, &w, argc, args); + } + + if(args[i] == "-f") + { + return fileviewer(&a, argc, args); + } + + if(args[i] == "-i") + { + return input(width, height, &w, argc, args); + } + + if(args[i] == "-h" || args[i] =="--help") + { + printusage(); + return -1; + } + } + + printusage(); + return -1; } diff --git a/noncore/tools/remote/learntab.cpp b/noncore/tools/remote/learntab.cpp index 7582161..335a3e9 100644 --- a/noncore/tools/remote/learntab.cpp +++ b/noncore/tools/remote/learntab.cpp @@ -1,191 +1,192 @@ /* Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. Copyright (C) 2002 Thomas Stephens - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "learntab.h" +/* OPIE */ +#include <qpe/qpeapplication.h> + LearnTab::LearnTab(QWidget *parent, const char *name):QWidget(parent,name) { - QVBoxLayout *layout = new QVBoxLayout(this); - QHBoxLayout *bottomLayout = new QHBoxLayout(this); - - layout->insertSpacing(0,5); - remotesBox = new QListBox(this, "remotesBox"); - layout->insertWidget(0, remotesBox, 1); - remotesBox->insertStringList(getRemotes()); - - layout->insertSpacing(-1,5); - layout->insertLayout(-1, bottomLayout); - layout->insertSpacing(-1,5); - - QPushButton *add = new QPushButton("Add", this, "add"); - bottomLayout->insertSpacing(-1, 5); - bottomLayout->insertWidget(-1, add); - bottomLayout->insertSpacing(-1, 5); - QPushButton *edit = new QPushButton("Edit", this, "edit"); - bottomLayout->insertWidget(-1, edit); - bottomLayout->insertSpacing(-1, 5); - QPushButton *del = new QPushButton("Delete", this, "delete"); - bottomLayout->insertWidget(-1, del); - bottomLayout->insertSpacing(-1, 5); - - connect(add, SIGNAL(clicked()), this, SLOT(add()) ); - connect(edit, SIGNAL(clicked()), this, SLOT(edit()) ); - connect(del, SIGNAL(clicked()), this, SLOT(del()) ); + QVBoxLayout *layout = new QVBoxLayout(this); + QHBoxLayout *bottomLayout = new QHBoxLayout(this); + + layout->insertSpacing(0,5); + remotesBox = new QListBox(this, "remotesBox"); + layout->insertWidget(0, remotesBox, 1); + remotesBox->insertStringList(getRemotes()); + + layout->insertSpacing(-1,5); + layout->insertLayout(-1, bottomLayout); + layout->insertSpacing(-1,5); + + QPushButton *add = new QPushButton("Add", this, "add"); + bottomLayout->insertSpacing(-1, 5); + bottomLayout->insertWidget(-1, add); + bottomLayout->insertSpacing(-1, 5); + QPushButton *edit = new QPushButton("Edit", this, "edit"); + bottomLayout->insertWidget(-1, edit); + bottomLayout->insertSpacing(-1, 5); + QPushButton *del = new QPushButton("Delete", this, "delete"); + bottomLayout->insertWidget(-1, del); + bottomLayout->insertSpacing(-1, 5); + + connect(add, SIGNAL(clicked()), this, SLOT(add()) ); + connect(edit, SIGNAL(clicked()), this, SLOT(edit()) ); + connect(del, SIGNAL(clicked()), this, SLOT(del()) ); } void LearnTab::add() { - printf("LearnTab::add: add pressed\n"); - RecordDialog *dialog = new RecordDialog(this); - dialog->showMaximized(); + printf("LearnTab::add: add pressed\n"); + RecordDialog *dialog = new RecordDialog(this); + QPEApplication::showDialog( dialog ); } void LearnTab::edit() -{ -} +{} void LearnTab::del() -{ -} +{} QStringList LearnTab::getRemotes() { - const char write_buffer[] = "LIST\n"; - const char *readbuffer; - int i, numlines; - QStringList list; - - addr.sun_family=AF_UNIX; - strcpy(addr.sun_path,"/dev/lircd"); - - fd = socket(AF_UNIX, SOCK_STREAM, 0); - if(fd == -1) - { - QMessageBox *mb = new QMessageBox("Error!", - "couldnt connect to socket", - QMessageBox::NoIcon, - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton); - mb->exec(); - perror("LearnTab::GetRemotes"); - return NULL; - } - - if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) - { - QMessageBox *mb = new QMessageBox("Error!", - "couldnt connect to socket", - QMessageBox::NoIcon, - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton); - mb->exec(); - perror("LearnTab::GetRemotes"); - return NULL; - } - - write(fd, write_buffer, strlen(write_buffer)); - - for(i=0; i<5; i++) - { - printf("%d\n", i); - readbuffer = readPacket(); - printf("%s", readbuffer); - printf("%d\n", i); - } - - numlines = atoi(readbuffer); - - for(i=0; i<numlines; i++) - { - list+=readPacket(); - } - - if(strcasecmp(readPacket(), "END") != 0) - { - QMessageBox *mb = new QMessageBox("Error!", - "bad packet", - QMessageBox::NoIcon, - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton); - mb->exec(); - perror("LearnTab::GetRemotes"); - return NULL; - } - - ::close(fd); - return list; + const char write_buffer[] = "LIST\n"; + const char *readbuffer; + int i, numlines; + QStringList list; + + addr.sun_family=AF_UNIX; + strcpy(addr.sun_path,"/dev/lircd"); + + fd = socket(AF_UNIX, SOCK_STREAM, 0); + if(fd == -1) + { + QMessageBox *mb = new QMessageBox("Error!", + "couldnt connect to socket", + QMessageBox::NoIcon, + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton); + mb->exec(); + perror("LearnTab::GetRemotes"); + return NULL; + } + + if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) + { + QMessageBox *mb = new QMessageBox("Error!", + "couldnt connect to socket", + QMessageBox::NoIcon, + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton); + mb->exec(); + perror("LearnTab::GetRemotes"); + return NULL; + } + + write(fd, write_buffer, strlen(write_buffer)); + + for(i=0; i<5; i++) + { + printf("%d\n", i); + readbuffer = readPacket(); + printf("%s", readbuffer); + printf("%d\n", i); + } + + numlines = atoi(readbuffer); + + for(i=0; i<numlines; i++) + { + list+=readPacket(); + } + + if(strcasecmp(readPacket(), "END") != 0) + { + QMessageBox *mb = new QMessageBox("Error!", + "bad packet", + QMessageBox::NoIcon, + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton); + mb->exec(); + perror("LearnTab::GetRemotes"); + return NULL; + } + + ::close(fd); + return list; } //this function was ripped for rc.c in xrc, it is available here: http://www.lirc.org/software.html const char *LearnTab::readPacket() { - static char buffer[PACKET_SIZE+1]=""; - char *end; - static int ptr=0,end_len=0; - ssize_t ret; - timeout = 0; - - if(ptr>0) - { - memmove(buffer,buffer+ptr,strlen(buffer+ptr)+1); - ptr=strlen(buffer); - end=strchr(buffer,'\n'); - } - else - { - end=NULL; - } - alarm(TIMEOUT); - while(end==NULL) - { - if(PACKET_SIZE<=ptr) - { - fprintf(stderr,"bad packet\n"); - ptr=0; - return(NULL); - } - ret=read(fd,buffer+ptr,PACKET_SIZE-ptr); - - if(ret<=0 || timeout) - { - if(timeout) - { - fprintf(stderr,"timeout\n"); - } - else - { - alarm(0); - } - ptr=0; - return(NULL); - } - buffer[ptr+ret]=0; - ptr=strlen(buffer); - end=strchr(buffer,'\n'); - } - alarm(0);timeout=0; - - end[0]=0; - ptr=strlen(buffer)+1; -//# ifdef DEBUG -// printf("buffer: -%s-\n",buffer); -//# endif - return(buffer); + static char buffer[PACKET_SIZE+1]=""; + char *end; + static int ptr=0,end_len=0; + ssize_t ret; + timeout = 0; + + if(ptr>0) + { + memmove(buffer,buffer+ptr,strlen(buffer+ptr)+1); + ptr=strlen(buffer); + end=strchr(buffer,'\n'); + } + else + { + end=NULL; + } + alarm(TIMEOUT); + while(end==NULL) + { + if(PACKET_SIZE<=ptr) + { + fprintf(stderr,"bad packet\n"); + ptr=0; + return(NULL); + } + ret=read(fd,buffer+ptr,PACKET_SIZE-ptr); + + if(ret<=0 || timeout) + { + if(timeout) + { + fprintf(stderr,"timeout\n"); + } + else + { + alarm(0); + } + ptr=0; + return(NULL); + } + buffer[ptr+ret]=0; + ptr=strlen(buffer); + end=strchr(buffer,'\n'); + } + alarm(0);timeout=0; + + end[0]=0; + ptr=strlen(buffer)+1; + //# ifdef DEBUG + // printf("buffer: -%s-\n",buffer); + //# endif + return(buffer); } diff --git a/noncore/tools/remote/remote.cpp b/noncore/tools/remote/remote.cpp index 7972def..638629f 100644 --- a/noncore/tools/remote/remote.cpp +++ b/noncore/tools/remote/remote.cpp @@ -1,100 +1,106 @@ /* Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. Copyright (C) 2002 Thomas Stephens - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "mainview.h" + +/* OPIE */ #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/config.h> + +/* QT */ #include <qpushbutton.h> #include <qtabwidget.h> #include <qlayout.h> #include <qmessagebox.h> #include <qpaintdevice.h> #include <qobject.h> + +/* STD */ #include <sys/socket.h> #include <sys/types.h> #include <sys/un.h> #include <unistd.h> #include <stdio.h> #include <signal.h> -#include "mainview.h" /*void reconnect(int &fd) { // struct sockaddr_un addr; - + addr.sun_family=AF_UNIX; strcpy(addr.sun_path,"/dev/lircd"); fd = socket(AF_UNIX, SOCK_STREAM, 0); - + if(connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) { QMessageBox *mb = new QMessageBox("error", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); } } */ int main( int argc, char **argv ) { - QPEApplication a( argc, argv ); - MainView w; - - int fd; -// struct sockaddr_un addr; -// char read_buffer[BUFFERSIZE+1]; -// char write_buffer[] = "LIST\n"; - -// addr.sun_family=AF_UNIX; -// strcpy(addr.sun_path,"/dev/lircd"); -// fd = socket(AF_UNIX, SOCK_STREAM, 0); - -// printf("fd1: %d\n", fd); -/* - if(connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) - { - QMessageBox *mb = new QMessageBox("error", - "couldnt connect to socket", - QMessageBox::NoIcon, - QMessageBox::Ok, - QMessageBox::NoButton, - QMessageBox::NoButton); - mb->exec(); - } -*/ - -// printf("%d\n", write(fd, write_buffer, sizeof(write_buffer) ) ); - -// printf("%d\n", read(fd, read_buffer, BUFFERSIZE ) ); - -// QMessageBox *mbtest = new QMessageBox("lirc test", -// *new QString((const char *) read_buffer), -// QMessageBox::NoIcon, -// QMessageBox::Ok, -// QMessageBox::NoButton, -// QMessageBox::NoButton); -// mbtest->exec(); - - a.setMainWidget( &w ); - w.setIRSocket(fd); - w.showMaximized(); - return a.exec(); + QPEApplication a( argc, argv ); + MainView w; + + int fd; + // struct sockaddr_un addr; + // char read_buffer[BUFFERSIZE+1]; + // char write_buffer[] = "LIST\n"; + + // addr.sun_family=AF_UNIX; + // strcpy(addr.sun_path,"/dev/lircd"); + // fd = socket(AF_UNIX, SOCK_STREAM, 0); + + // printf("fd1: %d\n", fd); + /* + if(connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) + { + QMessageBox *mb = new QMessageBox("error", + "couldnt connect to socket", + QMessageBox::NoIcon, + QMessageBox::Ok, + QMessageBox::NoButton, + QMessageBox::NoButton); + mb->exec(); + } + */ + + // printf("%d\n", write(fd, write_buffer, sizeof(write_buffer) ) ); + + // printf("%d\n", read(fd, read_buffer, BUFFERSIZE ) ); + + // QMessageBox *mbtest = new QMessageBox("lirc test", + // *new QString((const char *) read_buffer), + // QMessageBox::NoIcon, + // QMessageBox::Ok, + // QMessageBox::NoButton, + // QMessageBox::NoButton); + // mbtest->exec(); + + a.setMainWidget( &w ); + w.setIRSocket(fd); + QPEApplication::showWidget( &w ); + return a.exec(); } |