summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-console/btconfigwidget.cpp140
-rw-r--r--noncore/apps/opie-console/btconfigwidget.h29
-rw-r--r--noncore/apps/opie-console/default.cpp6
-rw-r--r--noncore/apps/opie-console/io_irda.cpp60
-rw-r--r--noncore/apps/opie-console/io_irda.h46
-rw-r--r--noncore/apps/opie-console/iolayerbase.cpp14
-rw-r--r--noncore/apps/opie-console/iolayerbase.h4
-rw-r--r--noncore/apps/opie-console/irdaconfigwidget.cpp141
-rw-r--r--noncore/apps/opie-console/irdaconfigwidget.h29
-rw-r--r--noncore/apps/opie-console/opie-console.pro9
-rw-r--r--noncore/apps/opie-console/profileeditordialog.cpp0
-rw-r--r--noncore/apps/opie-console/profileeditorplugins.cpp3
-rw-r--r--noncore/apps/opie-console/serialconfigwidget.cpp14
-rw-r--r--noncore/apps/opie-console/widget_layer.h2
14 files changed, 482 insertions, 15 deletions
diff --git a/noncore/apps/opie-console/btconfigwidget.cpp b/noncore/apps/opie-console/btconfigwidget.cpp
new file mode 100644
index 0000000..acc4811
--- a/dev/null
+++ b/noncore/apps/opie-console/btconfigwidget.cpp
@@ -0,0 +1,140 @@
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qcombobox.h>
+
+#include "iolayerbase.h"
+#include "btconfigwidget.h"
+
+namespace {
+ void setCurrent( const QString& str, QComboBox* bo ) {
+ uint b = bo->count();
+ for (uint i = 0; i < bo->count(); i++ ) {
+ if ( bo->text(i) == str ) {
+ bo->setCurrentItem( i );
+ return;
+ }
+ }
+ bo->insertItem( str );
+ bo->setCurrentItem( b );
+ }
+}
+
+BTConfigWidget::BTConfigWidget( const QString& name,
+ QWidget* parent,
+ const char* na )
+ : ProfileDialogConnectionWidget( name, parent, na ) {
+
+ m_lay = new QVBoxLayout(this );
+ m_device = new QLabel(tr("Device"), this );
+ m_deviceCmb = new QComboBox(this );
+ m_deviceCmb->setEditable( TRUE );
+
+ m_base = new IOLayerBase(this, "base");
+
+ m_lay->addWidget( m_device );
+ m_lay->addWidget( m_deviceCmb );
+ m_lay->addWidget( m_base );
+
+ m_deviceCmb->insertItem( "/dev/ttyU0" );
+ m_deviceCmb->insertItem( "/dev/ttyU1" );
+}
+
+BTConfigWidget::~BTConfigWidget() {
+
+}
+void BTConfigWidget::load( const Profile& prof ) {
+ int rad_flow = prof.readNumEntry("Flow");
+ int rad_parity = prof.readNumEntry("Parity");
+ int speed = prof.readNumEntry("Speed");
+
+
+ if (rad_flow == 1) {
+ m_base->setFlow( IOLayerBase::Hardware );
+ } else if (rad_flow == 2) {
+ m_base->setFlow( IOLayerBase::Software );
+ } else if (rad_flow == 0) {
+ m_base->setFlow( IOLayerBase::None );
+ }
+
+ if (rad_parity == 1) {
+ m_base->setParity( IOLayerBase::Even );
+ } else {
+ m_base->setParity( IOLayerBase::Odd );
+ }
+
+ switch( speed ) {
+ case 115200:
+ m_base->setSpeed(IOLayerBase::Baud_115200 );
+ break;
+ case 57600:
+ m_base->setSpeed( IOLayerBase::Baud_57600 );
+ break;
+ case 38400:
+ m_base->setSpeed(IOLayerBase::Baud_38400 );
+ break;
+ case 19200:
+ m_base->setSpeed( IOLayerBase::Baud_19200 );
+ break;
+ case 9600:
+ default:
+ m_base->setSpeed(IOLayerBase::Baud_9600 );
+ break;
+ }
+
+ if ( prof.readEntry("Device").isEmpty() ) return;
+ setCurrent( prof.readEntry("Device"), m_deviceCmb );
+
+}
+/*
+ * save speed,
+ * flow,
+ * parity
+ */
+void BTConfigWidget::save( Profile& prof ) {
+ int flow, parity, speed;
+ prof.writeEntry("Device", m_deviceCmb->currentText() );
+
+
+ switch( m_base->flow() ) {
+ case IOLayerBase::None:
+ flow = 0;
+ break;
+ case IOLayerBase::Software:
+ flow = 2;
+ break;
+ case IOLayerBase::Hardware:
+ flow = 1;
+ break;
+ }
+
+ switch( m_base->parity() ) {
+ case IOLayerBase::Odd:
+ parity = 2;
+ break;
+ case IOLayerBase::Even:
+ parity = 1;
+ break;
+ }
+
+ switch( m_base->speed() ) {
+ case IOLayerBase::Baud_115200:
+ speed = 115200;
+ break;
+ case IOLayerBase::Baud_57600:
+ speed = 57600;
+ break;
+ case IOLayerBase::Baud_38400:
+ speed = 38400;
+ break;
+ case IOLayerBase::Baud_19200:
+ speed = 19200;
+ break;
+ case IOLayerBase::Baud_9600:
+ speed = 9600;
+ break;
+ }
+
+ prof.writeEntry("Flow", flow);
+ prof.writeEntry("Parity", parity);
+ prof.writeEntry("Speed", speed);
+}
diff --git a/noncore/apps/opie-console/btconfigwidget.h b/noncore/apps/opie-console/btconfigwidget.h
new file mode 100644
index 0000000..64190ad
--- a/dev/null
+++ b/noncore/apps/opie-console/btconfigwidget.h
@@ -0,0 +1,29 @@
+#ifndef OPIE_BT_CONFIG_WIDGET_H
+#define OPIE_BT_CONFIG_WIDGET_H
+
+#include "profiledialogwidget.h"
+
+class QVBoxLayout;
+class QLabel;
+class QComboBox;
+class IOLayerBase;
+class BTConfigWidget : public ProfileDialogConnectionWidget {
+
+ Q_OBJECT
+
+public:
+ BTConfigWidget( const QString& name, QWidget* parent, const char* name = 0l );
+ ~BTConfigWidget();
+
+ void load( const Profile& );
+ void save( Profile& );
+private:
+ QVBoxLayout* m_lay;
+ QLabel* m_device;
+ QComboBox* m_deviceCmb;
+ IOLayerBase* m_base;
+
+};
+
+
+#endif
diff --git a/noncore/apps/opie-console/default.cpp b/noncore/apps/opie-console/default.cpp
index da6f3e2..62f02f5 100644
--- a/noncore/apps/opie-console/default.cpp
+++ b/noncore/apps/opie-console/default.cpp
@@ -1,6 +1,8 @@
#include "io_serial.h"
#include "sz_transfer.h"
#include "serialconfigwidget.h"
+#include "irdaconfigwidget.h"
+#include "btconfigwidget.h"
#include "terminalwidget.h"
#include "vt102emulation.h"
@@ -34,10 +36,10 @@ extern "C" {
return new SerialConfigWidget(str, wid );
}
ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid) {
- return newSerialWidget(str, wid);
+ return new IrdaConfigWidget( str, wid );
}
ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid) {
- return newSerialWidget(str, wid );
+ return new BTConfigWidget(str, wid );
}
// Terminal Widget(s)
diff --git a/noncore/apps/opie-console/io_irda.cpp b/noncore/apps/opie-console/io_irda.cpp
new file mode 100644
index 0000000..8e31e82
--- a/dev/null
+++ b/noncore/apps/opie-console/io_irda.cpp
@@ -0,0 +1,60 @@
+
+#include "io_irda.h"
+
+IOIrda::IOIrda( const Profile &config ) : IOSerial( config ) {
+ m_attach = 0;
+}
+
+
+IOIrda::~IOIrda() {
+ if ( m_attach ) {
+ delete m_attach;
+ }
+}
+
+
+void IOIrda::close() {
+
+ IOSerial::close();
+ // still need error handling
+ delete m_attach;
+}
+
+bool IOIrda::open() {
+
+ // irdaattach here
+ m_attach = new OProcess();
+ *m_attach << "irattach /dev/ttyS2 -s";
+
+ connect( m_attach, SIGNAL( processExited( OProcess* ) ),
+ this, SLOT( slotExited( OProcess* ) ) );
+
+ if ( m_attach->start() ) {
+ IOSerial::open();
+ } else {
+ qWarning("could not attach to device");
+ delete m_attach;
+ }
+}
+
+void IOIrda::reload( const Profile &config ) {
+ m_device = config.readEntry("Device", IRDA_DEFAULT_DEVICE);
+ m_baud = config.readNumEntry("Baud", IRDA_DEFAULT_BAUD);
+ m_parity = config.readNumEntry("Parity", IRDA_DEFAULT_PARITY);
+ m_dbits = config.readNumEntry("DataBits", IRDA_DEFAULT_DBITS);
+ m_sbits = config.readNumEntry("StopBits", IRDA_DEFAULT_SBITS);
+ m_flow = config.readNumEntry("Flow", IRDA_DEFAULT_FLOW);
+}
+
+
+QString IOIrda::identifier() const {
+ return "irda";
+}
+
+QString IOIrda::name() const {
+ return "Irda IO Layer";
+}
+
+void IOIrda::slotExited(OProcess* proc ){
+ close();
+}
diff --git a/noncore/apps/opie-console/io_irda.h b/noncore/apps/opie-console/io_irda.h
new file mode 100644
index 0000000..3aee951
--- a/dev/null
+++ b/noncore/apps/opie-console/io_irda.h
@@ -0,0 +1,46 @@
+#ifndef OPIE_IO_IRDA
+#define OPIE_IO_IRDA
+
+#include <opie/oprocess.h>
+#include "io_serial.h"
+
+/* Default values to be used if the profile information is incomplete */
+#define IRDA_DEFAULT_DEVICE "/dev/ircomm0"
+#define IRDA_DEFAULT_BAUD 9600
+#define IRDA_DEFAULT_PARITY 0
+#define IRDA_DEFAULT_DBITS 8
+#define IRDA_DEFAULT_SBITS 1
+#define IRDA_DEFAULT_FLOW 0
+
+/* IOSerial implements a RS232 IO Layer */
+
+class IOIrda : public IOSerial {
+
+ Q_OBJECT
+
+public:
+
+ IOIrda(const Profile &);
+ ~IOIrda();
+
+ QString identifier() const;
+ QString name() const;
+
+signals:
+ void received(const QByteArray &);
+ void error(int, const QString &);
+
+public slots:
+ bool open();
+ void close();
+ void reload(const Profile &);
+
+private:
+ OProcess *m_attach;
+
+private slots:
+ void slotExited(OProcess* proc);
+
+};
+
+#endif /* OPIE_IO_IRDA */
diff --git a/noncore/apps/opie-console/iolayerbase.cpp b/noncore/apps/opie-console/iolayerbase.cpp
index 99b6cc1..ec88b49 100644
--- a/noncore/apps/opie-console/iolayerbase.cpp
+++ b/noncore/apps/opie-console/iolayerbase.cpp
@@ -15,7 +15,8 @@ namespace {
enum FlowIds {
id_flow_hw,
- id_flow_sw
+ id_flow_sw,
+ id_flow_none,
};
enum SpeedIds {
@@ -38,6 +39,7 @@ IOLayerBase::IOLayerBase( QWidget* par, const char* name )
m_groupFlow = new QButtonGroup(tr("Flow control"),this );
m_flowHw = new QRadioButton(tr("Hardware"), m_groupFlow );
m_flowSw = new QRadioButton(tr("Software"), m_groupFlow );
+ m_flowNone = new QRadioButton( tr("None"), m_groupFlow );
m_groupParity = new QButtonGroup(tr("Parity"), this );
m_parityOdd = new QRadioButton(tr("Odd"), m_groupParity );
@@ -52,6 +54,7 @@ IOLayerBase::IOLayerBase( QWidget* par, const char* name )
m_hbox = new QHBoxLayout(m_groupFlow, 2 );
m_hbox->add(m_flowHw );
m_hbox->add(m_flowSw );
+ m_hbox->add(m_flowNone );
m_lroot->add(m_groupFlow );
m_lroot->setStretchFactor(m_groupFlow, 2 );
@@ -79,8 +82,12 @@ void IOLayerBase::setFlow( Flow flo ) {
case Hardware:
m_flowHw->setChecked( true );
break;
+ case None:
+ m_flowNone->setChecked( true );
+ break;
}
}
+
void IOLayerBase::setParity( Parity par ) {
switch( par ) {
case Odd:
@@ -116,9 +123,12 @@ IOLayerBase::Flow IOLayerBase::flow()const {
if (m_flowHw->isChecked() ) {
qWarning("Hardware flow");
return Hardware;
- }else {
+ }else if( m_flowSw->isChecked() ) {
qWarning("Software");
return Software;
+ } else {
+ qWarning("None");
+ return None;
}
}
IOLayerBase::Parity IOLayerBase::parity()const {
diff --git a/noncore/apps/opie-console/iolayerbase.h b/noncore/apps/opie-console/iolayerbase.h
index 151a04b..d14f334 100644
--- a/noncore/apps/opie-console/iolayerbase.h
+++ b/noncore/apps/opie-console/iolayerbase.h
@@ -13,7 +13,7 @@ class QHBoxLayout;
class IOLayerBase : public QWidget {
Q_OBJECT
public:
- enum Flow { Hardware, Software };
+ enum Flow { Hardware, Software, None };
enum Parity{ Odd =2 , Even =1 };
enum Speed{ Baud_115200,
Baud_57600,
@@ -35,7 +35,7 @@ private:
QLabel* m_speedLabel;
QComboBox* m_speedBox;
QButtonGroup* m_groupFlow;
- QRadioButton *m_flowHw, *m_flowSw;
+ QRadioButton *m_flowHw, *m_flowSw, *m_flowNone;
QButtonGroup* m_groupParity;
QRadioButton *m_parityOdd, *m_parityEven;
diff --git a/noncore/apps/opie-console/irdaconfigwidget.cpp b/noncore/apps/opie-console/irdaconfigwidget.cpp
new file mode 100644
index 0000000..1cc041b
--- a/dev/null
+++ b/noncore/apps/opie-console/irdaconfigwidget.cpp
@@ -0,0 +1,141 @@
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qcombobox.h>
+
+#include "iolayerbase.h"
+#include "irdaconfigwidget.h"
+
+namespace {
+ void setCurrent( const QString& str, QComboBox* bo ) {
+ uint b = bo->count();
+ for (uint i = 0; i < bo->count(); i++ ) {
+ if ( bo->text(i) == str ) {
+ bo->setCurrentItem( i );
+ return;
+ }
+ }
+ bo->insertItem( str );
+ bo->setCurrentItem( b );
+ }
+
+
+}
+
+IrdaConfigWidget::IrdaConfigWidget( const QString& name,
+ QWidget* parent,
+ const char* na )
+ : ProfileDialogConnectionWidget( name, parent, na ) {
+
+ m_lay = new QVBoxLayout(this );
+ m_device = new QLabel(tr("Device"), this );
+ m_deviceCmb = new QComboBox(this );
+ m_deviceCmb->setEditable( TRUE );
+
+ m_base = new IOLayerBase(this, "base");
+
+ m_lay->addWidget( m_device );
+ m_lay->addWidget( m_deviceCmb );
+ m_lay->addWidget( m_base );
+
+ m_deviceCmb->insertItem( "/dev/ircomm0" );
+ m_deviceCmb->insertItem( "/dev/ircomm1" );
+}
+
+IrdaConfigWidget::~IrdaConfigWidget() {
+
+}
+void IrdaConfigWidget::load( const Profile& prof ) {
+ int rad_flow = prof.readNumEntry("Flow");
+ int rad_parity = prof.readNumEntry("Parity");
+ int speed = prof.readNumEntry("Speed");
+
+ if (rad_flow == 1) {
+ m_base->setFlow( IOLayerBase::Hardware );
+ } else if (rad_flow == 2) {
+ m_base->setFlow( IOLayerBase::Software );
+ } else if (rad_flow == 0) {
+ m_base->setFlow( IOLayerBase::None );
+ }
+
+ if (rad_parity == 1) {
+ m_base->setParity( IOLayerBase::Even );
+ } else {
+ m_base->setParity( IOLayerBase::Odd );
+ }
+
+ switch( speed ) {
+ case 115200:
+ m_base->setSpeed(IOLayerBase::Baud_115200 );
+ break;
+ case 57600:
+ m_base->setSpeed( IOLayerBase::Baud_57600 );
+ break;
+ case 38400:
+ m_base->setSpeed(IOLayerBase::Baud_38400 );
+ break;
+ case 19200:
+ m_base->setSpeed( IOLayerBase::Baud_19200 );
+ break;
+ case 9600:
+ default:
+ m_base->setSpeed(IOLayerBase::Baud_9600 );
+ break;
+ }
+
+ if ( prof.readEntry("Device").isEmpty() ) return;
+ setCurrent( prof.readEntry("Device"), m_deviceCmb );
+
+}
+/*
+ * save speed,
+ * flow,
+ * parity
+ */
+void IrdaConfigWidget::save( Profile& prof ) {
+ int flow, parity, speed;
+ prof.writeEntry("Device", m_deviceCmb->currentText() );
+
+ switch( m_base->flow() ) {
+ case IOLayerBase::None:
+ flow = 0;
+ break;
+ case IOLayerBase::Software:
+ flow = 2;
+ break;
+ case IOLayerBase::Hardware:
+ flow = 1;
+ break;
+ }
+
+
+ switch( m_base->parity() ) {
+ case IOLayerBase::Odd:
+ parity = 2;
+ break;
+ case IOLayerBase::Even:
+ parity = 1;
+ break;
+ }
+
+ switch( m_base->speed() ) {
+ case IOLayerBase::Baud_115200:
+ speed = 115200;
+ break;
+ case IOLayerBase::Baud_57600:
+ speed = 57600;
+ break;
+ case IOLayerBase::Baud_38400:
+ speed = 38400;
+ break;
+ case IOLayerBase::Baud_19200:
+ speed = 19200;
+ break;
+ case IOLayerBase::Baud_9600:
+ speed = 9600;
+ break;
+ }
+
+ prof.writeEntry("Flow", flow);
+ prof.writeEntry("Parity", parity);
+ prof.writeEntry("Speed", speed);
+}
diff --git a/noncore/apps/opie-console/irdaconfigwidget.h b/noncore/apps/opie-console/irdaconfigwidget.h
new file mode 100644
index 0000000..56d8089
--- a/dev/null
+++ b/noncore/apps/opie-console/irdaconfigwidget.h
@@ -0,0 +1,29 @@
+#ifndef OPIE_IRDA_CONFIG_WIDGET_H
+#define OPIE_IRDA_CONFIG_WIDGET_H
+
+#include "profiledialogwidget.h"
+
+class QVBoxLayout;
+class QLabel;
+class QComboBox;
+class IOLayerBase;
+class IrdaConfigWidget : public ProfileDialogConnectionWidget {
+
+ Q_OBJECT
+
+public:
+ IrdaConfigWidget( const QString& name, QWidget* parent, const char* name = 0l );
+ ~IrdaConfigWidget();
+
+ void load( const Profile& );
+ void save( Profile& );
+private:
+ QVBoxLayout* m_lay;
+ QLabel* m_device;
+ QComboBox* m_deviceCmb;
+ IOLayerBase* m_base;
+
+};
+
+
+#endif
diff --git a/noncore/apps/opie-console/opie-console.pro b/noncore/apps/opie-console/opie-console.pro
index ea6d759..e1e5248 100644
--- a/noncore/apps/opie-console/opie-console.pro
+++ b/noncore/apps/opie-console/opie-console.pro
@@ -2,7 +2,7 @@ TEMPLATE = app
#CONFIG = qt warn_on release
CONFIG = qt debug
DESTDIR = $(OPIEDIR)/bin
-HEADERS = io_layer.h io_serial.h \
+HEADERS = io_layer.h io_serial.h io_irda.h io_bt.h \
file_layer.h sz_transfer.h \
metafactory.h \
session.h \
@@ -27,9 +27,10 @@ HEADERS = io_layer.h io_serial.h \
default.h \
terminalwidget.h \
iolayerbase.h \
- serialconfigwidget.h
+ serialconfigwidget.h irdaconfigwidget.h btconfigwidget.h \
-SOURCES = io_layer.cpp io_serial.cpp \
+
+SOURCES = io_layer.cpp io_serial.cpp io_irda.cpp io_bt.cpp \
file_layer.cpp sz_transfer.cpp \
main.cpp \
metafactory.cpp \
@@ -53,7 +54,7 @@ SOURCES = io_layer.cpp io_serial.cpp \
default.cpp \
terminalwidget.cpp \
iolayerbase.cpp \
- serialconfigwidget.cpp
+ serialconfigwidget.cpp irdaconfigwidget.cpp btconfigwidget.cpp \
INTERFACES = configurebase.ui editbase.ui
INCLUDEPATH += $(OPIEDIR)/include
diff --git a/noncore/apps/opie-console/profileeditordialog.cpp b/noncore/apps/opie-console/profileeditordialog.cpp
index faf9c39..914fd25 100644
--- a/noncore/apps/opie-console/profileeditordialog.cpp
+++ b/noncore/apps/opie-console/profileeditordialog.cpp
diff --git a/noncore/apps/opie-console/profileeditorplugins.cpp b/noncore/apps/opie-console/profileeditorplugins.cpp
index c11c854..937516c 100644
--- a/noncore/apps/opie-console/profileeditorplugins.cpp
+++ b/noncore/apps/opie-console/profileeditorplugins.cpp
@@ -202,6 +202,9 @@ void ProfileEditorPlugin::slotConnFlow(int id)
case id_flow_sw:
m_profile->writeEntry("Flow", IOSerial::FlowSW);
break;
+ case id_flow_sw:
+ m_profile->writeEntry("None", IOSerial::None);
+ break;
}
}
diff --git a/noncore/apps/opie-console/serialconfigwidget.cpp b/noncore/apps/opie-console/serialconfigwidget.cpp
index a427302..b1ec408 100644
--- a/noncore/apps/opie-console/serialconfigwidget.cpp
+++ b/noncore/apps/opie-console/serialconfigwidget.cpp
@@ -51,10 +51,13 @@ void SerialConfigWidget::load( const Profile& prof ) {
int rad_parity = prof.readNumEntry("Parity");
int speed = prof.readNumEntry("Speed");
- if (rad_flow == 0)
+ if (rad_flow == 1) {
m_base->setFlow( IOLayerBase::Hardware );
- else
+ } else if (rad_flow == 2) {
m_base->setFlow( IOLayerBase::Software );
+ } else if (rad_flow == 0) {
+ m_base->setFlow( IOLayerBase::None );
+ }
if (rad_parity == 1)
m_base->setParity( IOLayerBase::Even );
@@ -94,11 +97,14 @@ void SerialConfigWidget::save( Profile& prof ) {
prof.writeEntry("Device", m_deviceCmb->currentText() );
switch( m_base->flow() ) {
+ case IOLayerBase::None:
+ flow = 0;
+ break;
case IOLayerBase::Software:
- flow = 1;
+ flow = 2;
break;
case IOLayerBase::Hardware:
- flow = 0;
+ flow = 1;
break;
}
diff --git a/noncore/apps/opie-console/widget_layer.h b/noncore/apps/opie-console/widget_layer.h
index c91a957..6e2e61e 100644
--- a/noncore/apps/opie-console/widget_layer.h
+++ b/noncore/apps/opie-console/widget_layer.h
@@ -103,7 +103,7 @@ public:
/**
* reload configuration
*/
- virtual void reloadConfig();
+ virtual void reloadConfig() = 0;
signals: