summaryrefslogtreecommitdiff
authorkorovkin <korovkin>2006-07-02 12:08:22 (UTC)
committer korovkin <korovkin>2006-07-02 12:08:22 (UTC)
commitadcfc6f4afe184a9eb6fbf458616494dfe0dadda (patch) (side-by-side diff)
tree5111ace883270f8e2f6da6e6578ad07ea7c650c1
parentb06b849f271079b0dd5d3419ad1162232ff4a9f5 (diff)
downloadopie-adcfc6f4afe184a9eb6fbf458616494dfe0dadda.zip
opie-adcfc6f4afe184a9eb6fbf458616494dfe0dadda.tar.gz
opie-adcfc6f4afe184a9eb6fbf458616494dfe0dadda.tar.bz2
Added OBEX receive functionality.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/opietooth/applet/bluezapplet.cpp38
-rw-r--r--noncore/net/opietooth/applet/bluezapplet.h4
2 files changed, 34 insertions, 8 deletions
diff --git a/noncore/net/opietooth/applet/bluezapplet.cpp b/noncore/net/opietooth/applet/bluezapplet.cpp
index a1d64a4..32560a1 100644
--- a/noncore/net/opietooth/applet/bluezapplet.cpp
+++ b/noncore/net/opietooth/applet/bluezapplet.cpp
@@ -61,22 +61,26 @@ namespace OpieTooth {
setFixedHeight( AppLnk::smallIconSize() );
setFixedWidth( AppLnk::smallIconSize() );
#if OPIE_VERSION < 102010
bluezOnPixmap = Resource::loadPixmap( "bluetoothapplet/bluezon" );
bluezOffPixmap = Resource::loadPixmap( "bluetoothapplet/bluezoff" );
bluezDiscoveryOnPixmap = Resource::loadPixmap( "bluetoothapplet/magglass.png" );
+ bluezReceiveOnPixmap = Resource::loadPixmap( "bluetoothapplet/receive.png" );
#else
bluezOnPixmap = OResource::loadImage( "bluetoothapplet/bluezon", OResource::SmallIcon );
bluezOffPixmap = OResource::loadImage( "bluetoothapplet/bluezoff", Opie::Core::OResource::SmallIcon );
bluezDiscoveryOnPixmap = OResource::loadImage( "bluetoothapplet/bluezondiscovery", Opie::Core::OResource::SmallIcon );
+ bluezReceiveOnPixmap = )Resource::loadImage( "bluetoothapplet/bluezonreceive", Opie::Core::OResource::SmallIcon );
#endif
startTimer(2000);
btDevice = 0;
btManager = 0;
bluezactive = false;
bluezDiscoveryActive = false;
+ bluezReceiveActive = false;
+ bluezReceiveChanged = false;
doListDevice = false;
isScanning = false;
m_wasOn = false;
m_sync = false;
// TODO: determine whether this channel has to be closed at destruction time.
@@ -131,13 +135,12 @@ namespace OpieTooth {
#if OPIE_VERSION >= 102010
case Model_MyPal_716:
btDevice = new Device( "/dev/ttyS1", "bcsp", "921600" );
break;
#endif
-
case Model_iPAQ_H22xx:
btDevice = new Device( "/dev/tts/3", "any", "921600" );
break;
default:
btDevice = new Device( "/dev/ttySB0", "bcsp", "230400" );
@@ -145,12 +148,13 @@ namespace OpieTooth {
}
m_sync = sync;
connect(btDevice, SIGNAL(device(const QString&, bool)),
this, SLOT(slotDevice(const QString&, bool)));
} else {
+ setObexRecieveStatus(0);
::system("/etc/init.d/bluetooth stop >/dev/null 2>/dev/null");
if ( btManager ) {
delete btManager;
btManager = 0;
}
if ( btDevice ) {
@@ -166,12 +170,22 @@ namespace OpieTooth {
}
int BluezApplet::setBluezDiscoveryStatus(int d) {
return bluezDiscoveryActive = d;
}
+ int BluezApplet::setObexRecieveStatus(int d) {
+ {
+ QCopEnvelope e ( "QPE/Obex", "btreceive(int)" );
+ e << ( d ? 1 : 0 );
+ }
+ bluezReceiveActive = (bool)(d != 0);
+ bluezReceiveChanged = true;
+ return d;
+ }
+
// FIXME mbhaynie
// receiver for QCopChannel("QPE/Bluetooth") messages.
void BluezApplet::slotMessage( const QCString& str, const QByteArray& )
{
if ( str == "enableBluetooth()") {
m_wasOn = checkBluezStatus();
@@ -241,18 +255,19 @@ namespace OpieTooth {
menu->insertItem( tr("Launch manager"), 2 );
menu->insertSeparator(6);
//menu->insertItem( tr("Signal strength"), signal, 5);
//menu->insertSeparator(8);
- if (bluezDiscoveryActive) {
- menu->insertItem( tr("Disable discovery"), 3 );
+ if (bluezactive) {
+ if (bluezReceiveActive) {
+ menu->insertItem( tr("Disable receive"), 3 );
} else {
- menu->insertItem( tr("Enable discovery"), 4 );
+ menu->insertItem( tr("Enable receive"), 4 );
+ }
}
-
QPoint p = mapToGlobal( QPoint(1, -menu->sizeHint().height()-1) );
ret = menu->exec(p, 0);
menu->hide();
switch(ret) {
@@ -267,17 +282,17 @@ namespace OpieTooth {
case 2:
// start bluetoothmanager
launchManager();
timerEvent( 0 );
break;
case 3:
- setBluezDiscoveryStatus(0);
+ setObexRecieveStatus(0);
timerEvent( 0 );
break;
case 4:
- setBluezDiscoveryStatus(1);
+ setObexRecieveStatus(1);
timerEvent(0 );
break;
//case 7:
// With table of currently-detected devices.
}
@@ -303,18 +318,21 @@ namespace OpieTooth {
int olddiscovery = bluezDiscoveryActive;
bluezactive = checkBluezStatus();
bluezDiscoveryActive = checkBluezDiscoveryStatus();
if ((bluezactive != oldactive) ||
- (bluezDiscoveryActive != olddiscovery))
+ (bluezDiscoveryActive != olddiscovery) ||
+ bluezReceiveChanged)
update();
if (bluezactive && doListDevice) {
const QByteArray arr;
slotMessage("listDevices()", arr);
}
+ if (bluezReceiveChanged)
+ bluezReceiveChanged = false;
}
/**
* Implementation of the paint event
* @param the QPaintEvent
*/
@@ -336,13 +354,17 @@ namespace OpieTooth {
#endif
}
if (bluezDiscoveryActive) {
p.drawPixmap( 0, 0, bluezDiscoveryOnPixmap );
}
+ if (bluezReceiveActive) {
+ p.drawPixmap( 0, 0, bluezReceiveOnPixmap );
}
+ }
+
/**
* Reacts on device up
* @param name device name
* @param up if device was brought up
*/
void BluezApplet::slotDevice(const QString& name, bool up)
diff --git a/noncore/net/opietooth/applet/bluezapplet.h b/noncore/net/opietooth/applet/bluezapplet.h
index b79ed5b..9809d20 100644
--- a/noncore/net/opietooth/applet/bluezapplet.h
+++ b/noncore/net/opietooth/applet/bluezapplet.h
@@ -55,21 +55,25 @@ public slots:
void paintEvent( QPaintEvent* );
void launchManager();
bool checkBluezStatus();
int setBluezStatus(int, bool sync = false);
int checkBluezDiscoveryStatus();
int setBluezDiscoveryStatus(int);
+ int setObexRecieveStatus(int);
private:
Device* btDevice;
Manager *btManager;
QPixmap bluezOnPixmap;
QPixmap bluezOffPixmap;
QPixmap bluezDiscoveryOnPixmap;
+ QPixmap bluezReceiveOnPixmap;
bool bluezactive;
bool bluezDiscoveryActive;
+ bool bluezReceiveActive;
+ bool bluezReceiveChanged;
bool doListDevice; //If I have to list devices after bringing BT up?
bool isScanning; //If I'm scanning devices
bool m_wasOn; //If BT was started by menu?
protected:
bool m_sync; //If we have to bring BT synchronously