summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-10-09 16:33:36 (UTC)
committer harlekin <harlekin>2002-10-09 16:33:36 (UTC)
commit205926ec86ffd582f795b649179291626e504830 (patch) (side-by-side diff)
tree3a5759b98a1a263ade37dfb35cfd529a7bcafde9
parentf696c6248824166f3ac025d23ac66b46c93b440c (diff)
downloadopie-205926ec86ffd582f795b649179291626e504830.zip
opie-205926ec86ffd582f795b649179291626e504830.tar.gz
opie-205926ec86ffd582f795b649179291626e504830.tar.bz2
flow now has mode none too .-), irda config widget and beginning of layer, first sweep, rest later
Diffstat (more/less context) (ignore 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.cpp14
-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.cpp16
-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.cpp2
-rw-r--r--noncore/apps/opie-console/profileeditorplugins.cpp21
-rw-r--r--noncore/apps/opie-console/serialconfigwidget.cpp14
-rw-r--r--noncore/apps/opie-console/widget_layer.h4
14 files changed, 498 insertions, 31 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
@@ -3,2 +3,4 @@
#include "serialconfigwidget.h"
+#include "irdaconfigwidget.h"
+#include "btconfigwidget.h"
#include "terminalwidget.h"
@@ -32,10 +34,10 @@ extern "C" {
// Connection Widgets
- ProfileDialogWidget* newSerialWidget(const QString& str, QWidget* wid) {
- return new SerialConfigWidget(str, wid );
+ ProfileDialogWidget* newSerialWidget( const QString& str, QWidget* wid ) {
+ return new SerialConfigWidget( str, wid );
}
- ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid) {
- return newSerialWidget(str, wid);
+ ProfileDialogWidget* newIrDaWidget( const QString& str, QWidget* wid ) {
+ return new IrdaConfigWidget( str, wid );
}
- ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid) {
- return newSerialWidget(str, wid );
+ ProfileDialogWidget* newBTWidget( const QString& str, QWidget* wid ) {
+ return new BTConfigWidget(str, wid );
}
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
@@ -17,3 +17,4 @@ namespace {
id_flow_hw,
- id_flow_sw
+ id_flow_sw,
+ id_flow_none,
};
@@ -40,2 +41,3 @@ IOLayerBase::IOLayerBase( QWidget* par, const char* name )
m_flowSw = new QRadioButton(tr("Software"), m_groupFlow );
+ m_flowNone = new QRadioButton( tr("None"), m_groupFlow );
@@ -45,3 +47,3 @@ IOLayerBase::IOLayerBase( QWidget* par, const char* name )
- m_lroot = new QVBoxLayout(this );
+ m_lroot = new QVBoxLayout( this );
m_lroot->add(m_speedLabel );
@@ -54,2 +56,3 @@ IOLayerBase::IOLayerBase( QWidget* par, const char* name )
m_hbox->add(m_flowSw );
+ m_hbox->add(m_flowNone );
m_lroot->add(m_groupFlow );
@@ -81,4 +84,8 @@ void IOLayerBase::setFlow( Flow flo ) {
break;
+ case None:
+ m_flowNone->setChecked( true );
+ break;
}
}
+
void IOLayerBase::setParity( Parity par ) {
@@ -118,5 +125,8 @@ IOLayerBase::Flow IOLayerBase::flow()const {
return Hardware;
- }else {
+ }else if( m_flowSw->isChecked() ) {
qWarning("Software");
return Software;
+ } else {
+ qWarning("None");
+ return None;
}
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
@@ -15,3 +15,3 @@ class IOLayerBase : public QWidget {
public:
- enum Flow { Hardware, Software };
+ enum Flow { Hardware, Software, None };
enum Parity{ Odd =2 , Even =1 };
@@ -37,3 +37,3 @@ private:
QButtonGroup* m_groupFlow;
- QRadioButton *m_flowHw, *m_flowSw;
+ QRadioButton *m_flowHw, *m_flowSw, *m_flowNone;
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
@@ -4,3 +4,3 @@ 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 \
@@ -29,5 +29,6 @@ HEADERS = io_layer.h io_serial.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 \
@@ -55,3 +56,3 @@ SOURCES = io_layer.cpp io_serial.cpp \
iolayerbase.cpp \
- serialconfigwidget.cpp
+ serialconfigwidget.cpp irdaconfigwidget.cpp btconfigwidget.cpp \
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
@@ -181,3 +181,3 @@ void ProfileEditorDialog::slotConActivated( const QString& str ) {
if (m_con ) {
- m_con->load(m_prof );
+ m_con->load( m_prof );
m_layCon->addWidget( m_con );
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
@@ -196,11 +196,14 @@ void ProfileEditorPlugin::slotConnFlow(int id)
{
- switch(id)
- {
- case id_flow_hw:
- m_profile->writeEntry("Flow", IOSerial::FlowHW);
- break;
- case id_flow_sw:
- m_profile->writeEntry("Flow", IOSerial::FlowSW);
- break;
- }
+ switch(id)
+ {
+ case id_flow_hw:
+ m_profile->writeEntry("Flow", IOSerial::FlowHW);
+ break;
+ 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
@@ -53,6 +53,9 @@ void SerialConfigWidget::load( const Profile& prof ) {
- 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 );
+ }
@@ -96,7 +99,10 @@ void SerialConfigWidget::save( Profile& prof ) {
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
@@ -89,3 +89,3 @@ public:
void insertText( QString text );
-
+
/**
@@ -105,3 +105,3 @@ public:
*/
- virtual void reloadConfig();
+ virtual void reloadConfig() = 0;