summaryrefslogtreecommitdiff
path: root/noncore/net/opietooth/manager/bluebase.cpp
Unidiff
Diffstat (limited to 'noncore/net/opietooth/manager/bluebase.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/manager/bluebase.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/noncore/net/opietooth/manager/bluebase.cpp b/noncore/net/opietooth/manager/bluebase.cpp
index 9ec5bf8..924d191 100644
--- a/noncore/net/opietooth/manager/bluebase.cpp
+++ b/noncore/net/opietooth/manager/bluebase.cpp
@@ -44,24 +44,25 @@ using namespace Opie::Core;
44#include <qtabwidget.h> 44#include <qtabwidget.h>
45#include <qscrollview.h> 45#include <qscrollview.h>
46#include <qvbox.h> 46#include <qvbox.h>
47#include <qmessagebox.h> 47#include <qmessagebox.h>
48#include <qcombobox.h> 48#include <qcombobox.h>
49#include <qcheckbox.h> 49#include <qcheckbox.h>
50#include <qlineedit.h> 50#include <qlineedit.h>
51#include <qlistview.h> 51#include <qlistview.h>
52#include <qdir.h> 52#include <qdir.h>
53#include <qpopupmenu.h> 53#include <qpopupmenu.h>
54#include <qtimer.h> 54#include <qtimer.h>
55#include <qlist.h> 55#include <qlist.h>
56#include <qfile.h>
56 57
57/* STD */ 58/* STD */
58#include <remotedevice.h> 59#include <remotedevice.h>
59#include <services.h> 60#include <services.h>
60#include <stdlib.h> 61#include <stdlib.h>
61 62
62using namespace OpieTooth; 63using namespace OpieTooth;
63//Array of possible speeds of the serial port 64//Array of possible speeds of the serial port
64struct SerSpeed { 65struct SerSpeed {
65 const char* str; //string value 66 const char* str; //string value
66 int val; //value itself 67 int val; //value itself
67} speeds[] = { 68} speeds[] = {
@@ -85,24 +86,25 @@ BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl )
85 this, SLOT( startServiceActionClicked(QListViewItem*) ) ); 86 this, SLOT( startServiceActionClicked(QListViewItem*) ) );
86 connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), 87 connect( devicesView, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ),
87 this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) ); 88 this, SLOT(startServiceActionHold(QListViewItem*,const QPoint&,int) ) );
88 connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ), 89 connect( m_localDevice , SIGNAL( foundServices(const QString&,Services::ValueList) ),
89 this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) ); 90 this, SLOT( addServicesToDevice(const QString&,Services::ValueList) ) );
90 connect( m_localDevice, SIGNAL( available(const QString&,bool) ), 91 connect( m_localDevice, SIGNAL( available(const QString&,bool) ),
91 this, SLOT( deviceActive(const QString&,bool) ) ); 92 this, SLOT( deviceActive(const QString&,bool) ) );
92 connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ), 93 connect( m_localDevice, SIGNAL( connections(ConnectionState::ValueList) ),
93 this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) ); 94 this, SLOT( addConnectedDevices(ConnectionState::ValueList) ) );
94 connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ), 95 connect( m_localDevice, SIGNAL( signalStrength(const QString&,const QString&) ),
95 this, SLOT( addSignalStrength(const QString&,const QString&) ) ); 96 this, SLOT( addSignalStrength(const QString&,const QString&) ) );
96 connect(runButton, SIGNAL(clicked()), this, SLOT(doForward())); 97 connect(runButton, SIGNAL(clicked()), this, SLOT(doForward()));
98 connect(encCheckBox, SIGNAL(toggled(bool)), this, SLOT(doEncrypt(bool)));
97 99
98 // let hold be rightButtonClicked() 100 // let hold be rightButtonClicked()
99 QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold); 101 QPEApplication::setStylusOperation( devicesView->viewport(), QPEApplication::RightOnHold);
100 QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold); 102 QPEApplication::setStylusOperation( connectionsView->viewport(), QPEApplication::RightOnHold);
101 103
102 //Load all icons needed 104 //Load all icons needed
103 m_offPix = Resource::loadPixmap( "opietooth/notconnected" ); 105 m_offPix = Resource::loadPixmap( "opietooth/notconnected" );
104 m_onPix = Resource::loadPixmap( "opietooth/connected" ); 106 m_onPix = Resource::loadPixmap( "opietooth/connected" );
105 m_findPix = Resource::loadPixmap( "opietooth/find" ); 107 m_findPix = Resource::loadPixmap( "opietooth/find" );
106 108
107 QPalette pal = this->palette(); 109 QPalette pal = this->palette();
108 QColor col = pal.color( QPalette::Active, QColorGroup::Background ); 110 QColor col = pal.color( QPalette::Active, QColorGroup::Background );
@@ -121,24 +123,25 @@ BlueBase::BlueBase( QWidget* parent, const char* name, WFlags fl )
121 m_iconLoader = new BTIconLoader(); 123 m_iconLoader = new BTIconLoader();
122 writeToHciConfig(); 124 writeToHciConfig();
123 addConnectedDevices(); 125 addConnectedDevices();
124 readSavedDevices(); 126 readSavedDevices();
125 addServicesToDevices(); 127 addServicesToDevices();
126 QTimer::singleShot( 3000, this, SLOT( addServicesToDevices() ) ); 128 QTimer::singleShot( 3000, this, SLOT( addServicesToDevices() ) );
127 forwarder = NULL; 129 forwarder = NULL;
128 serDevName->setText(tr("/dev/ircomm0")); 130 serDevName->setText(tr("/dev/ircomm0"));
129 for (unsigned int i = 0; i < (sizeof(speeds) / sizeof(speeds[0])); i++) { 131 for (unsigned int i = 0; i < (sizeof(speeds) / sizeof(speeds[0])); i++) {
130 serSpeed->insertItem(speeds[i].str); 132 serSpeed->insertItem(speeds[i].str);
131 } 133 }
132 serSpeed->setCurrentItem((sizeof(speeds) / sizeof(speeds[0])) - 1); 134 serSpeed->setCurrentItem((sizeof(speeds) / sizeof(speeds[0])) - 1);
135 encCheckBox->setChecked(true);
133} 136}
134 137
135/** 138/**
136 * Reads all options from the config file 139 * Reads all options from the config file
137 */ 140 */
138void BlueBase::readConfig() 141void BlueBase::readConfig()
139{ 142{
140 143
141 Config cfg( "bluetoothmanager" ); 144 Config cfg( "bluetoothmanager" );
142 cfg.setGroup( "bluezsettings" ); 145 cfg.setGroup( "bluezsettings" );
143 146
144 m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with 147 m_deviceName = cfg.readEntry( "name" , "No name" ); // name the device should identify with
@@ -164,34 +167,42 @@ void BlueBase::writeConfig()
164 cfg.writeEntry( "enableAuthentification" , m_enableAuthentification ); 167 cfg.writeEntry( "enableAuthentification" , m_enableAuthentification );
165 cfg.writeEntry( "enablePagescan" , m_enablePagescan ); 168 cfg.writeEntry( "enablePagescan" , m_enablePagescan );
166 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan ); 169 cfg.writeEntry( "enableInquiryscan" , m_enableInquiryscan );
167 170
168 writeToHciConfig(); 171 writeToHciConfig();
169} 172}
170 173
171/** 174/**
172 * Modify the hcid.conf file to our needs 175 * Modify the hcid.conf file to our needs
173 */ 176 */
174void BlueBase::writeToHciConfig() 177void BlueBase::writeToHciConfig()
175{ 178{
179 QFile pinFile("/etc/bluetooth/pin"); // /etc/bluetooth/pin file
176 owarn << "writeToHciConfig" << oendl; 180 owarn << "writeToHciConfig" << oendl;
181 //Write /etc/bluetooth/hcid.conf file
177 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" ); 182 HciConfWrapper hciconf ( "/etc/bluetooth/hcid.conf" );
178 hciconf.load(); 183 hciconf.load();
179 hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" ); 184 hciconf.setPinHelper( QPEApplication::qpeDir() + "bin/bluepin" );
180 hciconf.setName( m_deviceName ); 185 hciconf.setName( m_deviceName );
181 hciconf.setEncrypt( m_useEncryption ); 186 hciconf.setEncrypt( m_useEncryption );
182 hciconf.setAuth( m_enableAuthentification ); 187 hciconf.setAuth( m_enableAuthentification );
183 hciconf.setPscan( m_enablePagescan ); 188 hciconf.setPscan( m_enablePagescan );
184 hciconf.setIscan( m_enableInquiryscan ); 189 hciconf.setIscan( m_enableInquiryscan );
185 hciconf.save(); 190 hciconf.save();
191 // Write /etc/bluetooth/pin (default PIN file)
192 pinFile.open(IO_WriteOnly | IO_Truncate);
193 pinFile.writeBlock(m_defaultPasskey, m_defaultPasskey.length());
194 pinFile.writeBlock("\n", sizeof("\n"));
195 pinFile.flush();
196 pinFile.close();
186} 197}
187 198
188 199
189/** 200/**
190 * Read the list of already known devices 201 * Read the list of already known devices
191 */ 202 */
192void BlueBase::readSavedDevices() 203void BlueBase::readSavedDevices()
193{ 204{
194 205
195 QValueList<RemoteDevice> loadedDevices; 206 QValueList<RemoteDevice> loadedDevices;
196 DeviceHandler handler; 207 DeviceHandler handler;
197 loadedDevices = handler.load(); 208 loadedDevices = handler.load();
@@ -731,13 +742,22 @@ void BlueBase::doForward()
731 * React on the process end 742 * React on the process end
732 */ 743 */
733void BlueBase::forwardExit(Opie::Core::OProcess* proc) 744void BlueBase::forwardExit(Opie::Core::OProcess* proc)
734{ 745{
735 if (proc->exitStatus() != 0) 746 if (proc->exitStatus() != 0)
736 QMessageBox::critical(this, tr("Forwarder Error"), 747 QMessageBox::critical(this, tr("Forwarder Error"),
737 tr("Forwarder start error")); 748 tr("Forwarder start error"));
738 delete proc; 749 delete proc;
739 forwarder = NULL; 750 forwarder = NULL;
740 runButton->setText("start gateway"); 751 runButton->setText("start gateway");
741} 752}
742 753
754/**
755 * Encrypt entered passkey
756 * doit - do encryption of the key
757 */
758void BlueBase::doEncrypt(bool doit)
759{
760 passkeyLine->setEchoMode((doit)? QLineEdit::Password: QLineEdit::Normal);
761}
762
743//eof 763//eof