summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-06-01 23:07:22 (UTC)
committer harlekin <harlekin>2002-06-01 23:07:22 (UTC)
commit4a8e6f982a1033b7f2b0406a238503f9acb9a7c5 (patch) (unidiff)
treec85b839b6650ccfd8d63fe3a6ec75425e3a76bd9
parent4f5fdda25657f079b5937cbd4b588466c2298304 (diff)
downloadopie-4a8e6f982a1033b7f2b0406a238503f9acb9a7c5.zip
opie-4a8e6f982a1033b7f2b0406a238503f9acb9a7c5.tar.gz
opie-4a8e6f982a1033b7f2b0406a238503f9acb9a7c5.tar.bz2
bluetooth applet for the taskbar
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/applet/applet.pro12
-rw-r--r--noncore/net/opietooth/applet/bluezapplet.cpp199
-rw-r--r--noncore/net/opietooth/applet/bluezapplet.h75
-rw-r--r--noncore/net/opietooth/applet/bluezappletimpl.cpp72
-rw-r--r--noncore/net/opietooth/applet/bluezappletimpl.h55
-rw-r--r--noncore/net/opietooth/applet/opie-bluetoothapplet.control9
6 files changed, 422 insertions, 0 deletions
diff --git a/noncore/net/opietooth/applet/applet.pro b/noncore/net/opietooth/applet/applet.pro
new file mode 100644
index 0000000..9520a5e
--- a/dev/null
+++ b/noncore/net/opietooth/applet/applet.pro
@@ -0,0 +1,12 @@
1TEMPLATE = lib
2CONFIG += qt warn_on release
3HEADERS = bluezapplet.h bluezappletimpl.h
4SOURCES = bluezapplet.cpp bluezappletimpl.cpp
5TARGET = bluetoothapplet
6DESTDIR = $(OPIEDIR)/plugins/applets
7INCLUDEPATH += $(OPIEDIR)/include
8INCLUDEPATH += $(OPIEDIR)/noncore/opietooth/lib
9DEPENDPATH += $(OPIEDIR)/include
10LIBS += -lqpe -lopietooth
11VERSION = 0.0.3
12
diff --git a/noncore/net/opietooth/applet/bluezapplet.cpp b/noncore/net/opietooth/applet/bluezapplet.cpp
new file mode 100644
index 0000000..9569b36
--- a/dev/null
+++ b/noncore/net/opietooth/applet/bluezapplet.cpp
@@ -0,0 +1,199 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Maximilian Reiss <max.reiss@gmx.de>
4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can
6.> <,   >  .   <= redistribute it and/or modify it under
7:=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-= this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29
30#include "bluezapplet.h"
31#include <qapplication.h>
32
33#include <qpe/resource.h>
34#include <qpe/qcopenvelope_qws.h>
35#include <qpe/resource.h>
36#include <qpe/config.h>
37
38#include <qpoint.h>
39#include <qpainter.h>
40#include <qlayout.h>
41#include <qframe.h>
42#include <qpixmap.h>
43#include <qstring.h>
44#include <qtimer.h>
45#include <qpopupmenu.h>
46
47#include <device.h>
48
49namespace OpieTooth {
50
51 BluezApplet::BluezApplet( QWidget *parent, const char *name ) : QWidget( parent, name ) {
52 setFixedHeight( 18 );
53 setFixedWidth( 14 );
54 bluezOnPixmap = Resource::loadPixmap( "bluetoothapplet/bluezon" );
55 bluezOffPixmap = Resource::loadPixmap( "bluetoothapplet/bluezoff" );
56 // bluezDiscoveryOnPixmap = Resource::loadPixmap( "bluetoothapplet/magglass" );
57 startTimer(5000);
58 timerEvent(NULL);
59 }
60
61 BluezApplet::~BluezApplet() {
62 }
63
64 int BluezApplet::checkBluezStatus() {
65 if (btDevice->isLoaded() ) {
66 return 1;
67 } else {
68 return 0;
69 }
70 }
71
72 int BluezApplet::setBluezStatus(int c) {
73
74 if (c == 1) {
75 btDevice = new Device("/dev/ttySB0", "scr" );
76 // system("hciattach /dev/ttySB0 csr");
77 //system("hcid");
78 } else {
79 if (btDevice) {
80 delete btDevice;
81 }
82 //system("killall hciattach");
83 //system("killall hcid");
84 }
85 return 0;
86 }
87
88 int BluezApplet::checkBluezDiscoveryStatus() {
89 }
90
91 int BluezApplet::setBluezDiscoveryStatus(int d) {
92 }
93
94 void BluezApplet::mousePressEvent( QMouseEvent *) {
95
96 QPopupMenu *menu = new QPopupMenu();
97 QPopupMenu *signal = new QPopupMenu();
98 int ret=0;
99
100 /* Refresh active state */
101 timerEvent(NULL);
102
103
104 if (bluezactive) {
105 menu->insertItem( tr("Disable Bluetooth"), 0 );
106 } else {
107 menu->insertItem( tr("Enable Bluetooth"), 1 );
108 }
109
110 menu->insertItem( tr("Launch manager"), 2 );
111
112 menu->insertSeparator(6);
113 menu->insertItem( tr("Signal strength"), signal, 5);
114 menu->insertSeparator(8);
115
116 if (bluezDiscoveryActive) {
117 menu->insertItem( tr("Disable discovery"), 3 );
118 } else {
119 menu->insertItem( tr("Enable discovery"), 4 );
120 }
121 //menu->insertItem( tr("More..."), 7 )
122
123 QPoint p = mapToGlobal( QPoint(1, -menu->sizeHint().height()-1) );
124 ret = menu->exec(p, 2);
125
126 // qDebug("ret was %d\n", ret);
127
128 switch(ret) {
129 case 0:
130 setBluezStatus(0);
131 timerEvent(NULL);
132 break;
133 case 1:
134 setBluezStatus(1);
135 timerEvent(NULL);
136 break;
137 case 2:
138 // start bluetoothmanager
139 launchManager();
140 timerEvent(NULL);
141 break;
142 case 3:
143 setBluezDiscoveryStatus(0);
144 timerEvent(NULL);
145 break;
146 case 4:
147 setBluezDiscoveryStatus(1);
148 timerEvent(NULL);
149 break;
150 //case 7:
151 // With table of currently-detected devices.
152 }
153 }
154
155/**
156 * Launches the bluetooth manager
157 */
158 void BluezApplet::launchManager() {
159 QCopEnvelope e("QPE/System", "execute(QString)");
160 e << QString("bluetooth-manager");
161 }
162
163/**
164 * Refresh timer
165 * @param the timer event
166 */
167 void BluezApplet::timerEvent( QTimerEvent * ) {
168 int oldactive = bluezactive;
169 int olddiscovery = bluezDiscoveryActive;
170
171 bluezactive = checkBluezStatus();
172 bluezDiscoveryActive = checkBluezDiscoveryStatus();
173
174 if ((bluezactive != oldactive) || (bluezDiscoveryActive != olddiscovery)) {
175 paintEvent(NULL);
176 }
177 }
178
179/**
180 * Implementation of the paint event
181 * @param the QPaintEvent
182 */
183 void BluezApplet::paintEvent( QPaintEvent* ) {
184 QPainter p(this);
185 qDebug("paint bluetooth pixmap");
186
187 p.eraseRect ( 0, 0, this->width(), this->height() );
188
189 if (bluezactive > 0) {
190 p.drawPixmap( 0, 1, bluezOnPixmap );
191 } else {
192 p.drawPixmap( 0, 1, bluezOffPixmap );
193 }
194
195 if (bluezDiscoveryActive > 0) {
196 p.drawPixmap( 0, 1, bluezDiscoveryOnPixmap );
197 }
198 }
199};
diff --git a/noncore/net/opietooth/applet/bluezapplet.h b/noncore/net/opietooth/applet/bluezapplet.h
new file mode 100644
index 0000000..da05a18
--- a/dev/null
+++ b/noncore/net/opietooth/applet/bluezapplet.h
@@ -0,0 +1,75 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Maximilian Reiss <max.reiss@gmx.de>
4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can
6.> <,   >  .   <= redistribute it and/or modify it under
7:=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-= this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#ifndef __BLUEZAPPLET_H__
30#define __BLUEZAPPLET_H__
31
32#include <qwidget.h>
33#include <qpixmap.h>
34#include <qtimer.h>
35
36namespace OpieTooth {
37 class Device;
38
39 class BluezApplet : public QWidget {
40 Q_OBJECT
41 public:
42 BluezApplet( QWidget *parent = 0, const char *name=0 );
43 ~BluezApplet();
44
45 protected:
46 void timerEvent(QTimerEvent *te );
47
48public slots:
49 private:
50 void mousePressEvent( QMouseEvent * );
51 void paintEvent( QPaintEvent* );
52 void launchManager();
53 int checkBluezStatus();
54 int setBluezStatus(int);
55 int checkBluezDiscoveryStatus();
56 int setBluezDiscoveryStatus(int);
57 int sockfd;
58
59 private:
60 Device* btDevice;
61 QPixmap bluezOnPixmap;
62 QPixmap bluezOffPixmap;
63 QPixmap bluezDiscoveryOnPixmap;
64 int bluezactive;
65 int bluezDiscoveryActive;
66
67private slots:
68
69
70 };
71};
72
73
74#endif
75
diff --git a/noncore/net/opietooth/applet/bluezappletimpl.cpp b/noncore/net/opietooth/applet/bluezappletimpl.cpp
new file mode 100644
index 0000000..6677454
--- a/dev/null
+++ b/noncore/net/opietooth/applet/bluezappletimpl.cpp
@@ -0,0 +1,72 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Maximilian Reiss <max.reiss@gmx.de>
4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can
6.> <,   >  .   <= redistribute it and/or modify it under
7:=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-= this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#include "bluezapplet.h"
30#include "bluezappletimpl.h"
31
32namespace OpieTooth {
33
34 BluezAppletImpl::BluezAppletImpl() : bluetooth(0), ref(0) {
35 }
36
37 BluezAppletImpl::~BluezAppletImpl() {
38 delete bluetooth;
39 }
40
41 QWidget *BluezAppletImpl::applet( QWidget *parent ) {
42 if ( !bluetooth ) {
43 bluetooth = new BluezApplet( parent );
44 }
45 return bluetooth;
46 }
47
48 int BluezAppletImpl::position() const {
49 return 6;
50 }
51
52 QRESULT BluezAppletImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) {
53 *iface = 0;
54 if ( uuid == IID_QUnknown ) {
55 *iface = this;
56 } else if ( uuid == IID_TaskbarApplet ) {
57 *iface = this;
58 }
59
60 if ( *iface ) {
61 (*iface)->addRef();
62 }
63 return QS_OK;
64 }
65
66 Q_EXPORT_INTERFACE() {
67 Q_CREATE_INSTANCE( BluezAppletImpl )
68 }
69
70};
71
72
diff --git a/noncore/net/opietooth/applet/bluezappletimpl.h b/noncore/net/opietooth/applet/bluezappletimpl.h
new file mode 100644
index 0000000..3a4faa6
--- a/dev/null
+++ b/noncore/net/opietooth/applet/bluezappletimpl.h
@@ -0,0 +1,55 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Maximilian Reiss <max.reiss@gmx.de>
4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can
6.> <,   >  .   <= redistribute it and/or modify it under
7:=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-= this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#ifndef BLUEZAPPLETIMPL_H
30#define BLUEZAPPLETIMPL_H
31
32#include <qpe/taskbarappletinterface.h>
33
34namespace OpieTooth {
35
36 class BluezApplet;
37
38 class BluezAppletImpl : public TaskbarAppletInterface {
39 public:
40 BluezAppletImpl();
41 virtual ~BluezAppletImpl();
42
43 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
44 Q_REFCOUNT
45
46 virtual QWidget *applet( QWidget *parent );
47 virtual int position() const;
48
49 private:
50 BluezApplet *bluetooth;
51 ulong ref;
52 };
53};
54
55#endif
diff --git a/noncore/net/opietooth/applet/opie-bluetoothapplet.control b/noncore/net/opietooth/applet/opie-bluetoothapplet.control
new file mode 100644
index 0000000..13c2c69
--- a/dev/null
+++ b/noncore/net/opietooth/applet/opie-bluetoothapplet.control
@@ -0,0 +1,9 @@
1Files: plugins/applets/libbluetoothapplet.so* pics/bluetoothapplet/*
2Priority: optional
3Section: opie/system
4Maintainer: Maximilian Reiss <max.reiss@gmx.de>
5Architecture: arm
6Version: $QPE_VERSION-$SUB_VERSION.1
7Depends: opie-base ($QPE_VERSION)
8Description: Bluetooth Applet
9 An bluetooth taskbar applet for the Opie environment