-rw-r--r-- | noncore/apps/opie-console/btconfigwidget.cpp | 45 | ||||
-rw-r--r-- | noncore/apps/opie-console/btconfigwidget.h | 6 | ||||
-rw-r--r-- | noncore/apps/opie-console/io_bt.cpp | 38 | ||||
-rw-r--r-- | noncore/apps/opie-console/io_serial.cpp | 1 |
4 files changed, 71 insertions, 19 deletions
diff --git a/noncore/apps/opie-console/btconfigwidget.cpp b/noncore/apps/opie-console/btconfigwidget.cpp index 7673d0b..6246f92 100644 --- a/noncore/apps/opie-console/btconfigwidget.cpp +++ b/noncore/apps/opie-console/btconfigwidget.cpp | |||
@@ -2,6 +2,8 @@ | |||
2 | #include <qlayout.h> | 2 | #include <qlayout.h> |
3 | #include <qlineedit.h> | 3 | #include <qlineedit.h> |
4 | #include <qcombobox.h> | 4 | #include <qcombobox.h> |
5 | #include <qhbox.h> | ||
6 | #include <qradiobutton.h> | ||
5 | 7 | ||
6 | #include "iolayerbase.h" | 8 | #include "iolayerbase.h" |
7 | #include "btconfigwidget.h" | 9 | #include "btconfigwidget.h" |
@@ -25,21 +27,28 @@ BTConfigWidget::BTConfigWidget( const QString& name, | |||
25 | const char* na ) | 27 | const char* na ) |
26 | : ProfileDialogConnectionWidget( name, parent, na ) { | 28 | : ProfileDialogConnectionWidget( name, parent, na ) { |
27 | 29 | ||
28 | m_lay = new QVBoxLayout(this ); | 30 | m_lay = new QVBoxLayout( this ); |
29 | m_device = new QLabel(tr("Device"), this ); | 31 | |
30 | m_deviceCmb = new QComboBox(this ); | 32 | m_device = new QLabel( tr( "Device" ), this ); |
33 | QHBox *deviceBox = new QHBox( this ); | ||
34 | m_devRadio = new QRadioButton( deviceBox ); | ||
35 | connect( m_devRadio, SIGNAL( toggled( bool ) ), this, SLOT( slotDevRadio( bool ) ) ); | ||
36 | m_deviceCmb = new QComboBox( deviceBox ); | ||
31 | m_deviceCmb->setEditable( TRUE ); | 37 | m_deviceCmb->setEditable( TRUE ); |
32 | 38 | ||
33 | QLabel *macLabel = new QLabel( this ); | 39 | QLabel *macLabel = new QLabel( this ); |
34 | macLabel->setText( tr("Enter peer mac address here:") ); | 40 | macLabel->setText( tr( "Or peer mac address" ) ); |
35 | m_mac = new QLineEdit( this ); | 41 | QHBox *macBox = new QHBox( this ); |
42 | m_macRadio = new QRadioButton( macBox ); | ||
43 | connect( m_macRadio, SIGNAL( toggled( bool ) ), this, SLOT( slotMacRadio( bool ) ) ); | ||
44 | m_mac = new QLineEdit( macBox ); | ||
36 | 45 | ||
37 | m_base = new IOLayerBase(this, "base"); | 46 | m_base = new IOLayerBase(this, "base"); |
38 | 47 | ||
39 | m_lay->addWidget( m_device ); | 48 | m_lay->addWidget( m_device ); |
40 | m_lay->addWidget( m_deviceCmb ); | 49 | m_lay->addWidget( deviceBox ); |
41 | m_lay->addWidget( macLabel ); | 50 | m_lay->addWidget( macLabel ); |
42 | m_lay->addWidget( m_mac ); | 51 | m_lay->addWidget( macBox ); |
43 | m_lay->addWidget( m_base ); | 52 | m_lay->addWidget( m_base ); |
44 | 53 | ||
45 | m_deviceCmb->insertItem( "/dev/ttyU0" ); | 54 | m_deviceCmb->insertItem( "/dev/ttyU0" ); |
@@ -57,6 +66,8 @@ void BTConfigWidget::load( const Profile& prof ) { | |||
57 | 66 | ||
58 | if (!mac.isEmpty() ) { | 67 | if (!mac.isEmpty() ) { |
59 | m_mac->setText( mac ); | 68 | m_mac->setText( mac ); |
69 | } else { | ||
70 | m_devRadio->setChecked( true ); | ||
60 | } | 71 | } |
61 | 72 | ||
62 | if (rad_flow == 1) { | 73 | if (rad_flow == 1) { |
@@ -155,3 +166,23 @@ void BTConfigWidget::save( Profile& prof ) { | |||
155 | prof.writeEntry("Speed", speed); | 166 | prof.writeEntry("Speed", speed); |
156 | prof.writeEntry("Mac", m_mac->text() ); | 167 | prof.writeEntry("Mac", m_mac->text() ); |
157 | } | 168 | } |
169 | |||
170 | void BTConfigWidget::slotMacRadio( bool on ) { | ||
171 | if ( on ) { | ||
172 | m_devRadio->setChecked( false ); | ||
173 | m_deviceCmb->setEnabled( false ); | ||
174 | m_mac->setEnabled( true ); | ||
175 | } else { | ||
176 | m_devRadio->setChecked( true ); | ||
177 | } | ||
178 | } | ||
179 | |||
180 | void BTConfigWidget::slotDevRadio( bool on ) { | ||
181 | if ( on ) { | ||
182 | m_macRadio->setChecked( false ); | ||
183 | m_deviceCmb->setEnabled( true ); | ||
184 | m_mac->setEnabled( false ); | ||
185 | } else { | ||
186 | m_macRadio->setChecked( true ); | ||
187 | } | ||
188 | } | ||
diff --git a/noncore/apps/opie-console/btconfigwidget.h b/noncore/apps/opie-console/btconfigwidget.h index ceb13ee..d60d8a2 100644 --- a/noncore/apps/opie-console/btconfigwidget.h +++ b/noncore/apps/opie-console/btconfigwidget.h | |||
@@ -7,6 +7,7 @@ class QVBoxLayout; | |||
7 | class QLabel; | 7 | class QLabel; |
8 | class QComboBox; | 8 | class QComboBox; |
9 | class QLineEdit; | 9 | class QLineEdit; |
10 | class QRadioButton; | ||
10 | class IOLayerBase; | 11 | class IOLayerBase; |
11 | class BTConfigWidget : public ProfileDialogConnectionWidget { | 12 | class BTConfigWidget : public ProfileDialogConnectionWidget { |
12 | 13 | ||
@@ -24,7 +25,12 @@ private: | |||
24 | QComboBox* m_deviceCmb; | 25 | QComboBox* m_deviceCmb; |
25 | IOLayerBase* m_base; | 26 | IOLayerBase* m_base; |
26 | QLineEdit* m_mac; | 27 | QLineEdit* m_mac; |
28 | QRadioButton *m_macRadio; | ||
29 | QRadioButton *m_devRadio; | ||
27 | 30 | ||
31 | private slots: | ||
32 | void slotMacRadio( bool on ); | ||
33 | void slotDevRadio( bool on ); | ||
28 | }; | 34 | }; |
29 | 35 | ||
30 | 36 | ||
diff --git a/noncore/apps/opie-console/io_bt.cpp b/noncore/apps/opie-console/io_bt.cpp index 0831faf..d71aacc 100644 --- a/noncore/apps/opie-console/io_bt.cpp +++ b/noncore/apps/opie-console/io_bt.cpp | |||
@@ -17,26 +17,40 @@ void IOBt::close() { | |||
17 | 17 | ||
18 | IOSerial::close(); | 18 | IOSerial::close(); |
19 | // still need error handling | 19 | // still need error handling |
20 | delete m_attach; | 20 | if ( m_attach ) { |
21 | delete m_attach; | ||
22 | m_attach = 0; | ||
23 | } | ||
21 | } | 24 | } |
22 | 25 | ||
23 | bool IOBt::open() { | 26 | bool IOBt::open() { |
24 | 27 | ||
25 | // hciattach here | 28 | // only set up bt stuff if mac address was set, otherwise use the device set |
26 | m_attach = new OProcess(); | 29 | if ( !m_mac.isEmpty() ) { |
27 | *m_attach << "hciattach /dev/ttyS2 any 57600"; | ||
28 | 30 | ||
29 | // then start hcid, then rcfomm handling (m_mac) | 31 | // now it should also be checked, if there is a connection to the device with that mac allready |
30 | 32 | ||
31 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), | 33 | // hciattach here |
32 | this, SLOT( slotExited( OProcess* ) ) ); | 34 | m_attach = new OProcess(); |
35 | *m_attach << "hciattach /dev/ttyS2 any 57600"; | ||
33 | 36 | ||
34 | if ( m_attach->start() ) { | 37 | // then start hcid, then rcfomm handling (m_mac) |
35 | IOSerial::open(); | 38 | |
39 | connect( m_attach, SIGNAL( processExited( OProcess* ) ), | ||
40 | this, SLOT( slotExited( OProcess* ) ) ); | ||
41 | |||
42 | if ( m_attach->start() ) { | ||
43 | IOSerial::open(); | ||
44 | } else { | ||
45 | qWarning("could not attach to device"); | ||
46 | delete m_attach; | ||
47 | m_attach = 0; | ||
48 | } | ||
36 | } else { | 49 | } else { |
37 | qWarning("could not attach to device"); | 50 | // directly to the normal serial |
38 | delete m_attach; | 51 | // TODO: look first if the connection really exists. ( is set up ) |
39 | m_attach = 0; | 52 | |
53 | IOSerial::open(); | ||
40 | } | 54 | } |
41 | } | 55 | } |
42 | 56 | ||
diff --git a/noncore/apps/opie-console/io_serial.cpp b/noncore/apps/opie-console/io_serial.cpp index cc63c58..e6d1688 100644 --- a/noncore/apps/opie-console/io_serial.cpp +++ b/noncore/apps/opie-console/io_serial.cpp | |||
@@ -1,3 +1,4 @@ | |||
1 | |||
1 | #include <fcntl.h> | 2 | #include <fcntl.h> |
2 | #include <termios.h> | 3 | #include <termios.h> |
3 | #include <errno.h> | 4 | #include <errno.h> |