author | mickeyl <mickeyl> | 2005-07-11 14:05:50 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-07-11 14:05:50 (UTC) |
commit | de58c11168d02f5e52624e68529c9e2eac7978f6 (patch) (side-by-side diff) | |
tree | 8fdaf84de66d55259344ee1708cf753f5162e2b8 | |
parent | 4a7503c5e64101a5fadcf8003e66bf447d796f95 (diff) | |
download | opie-de58c11168d02f5e52624e68529c9e2eac7978f6.zip opie-de58c11168d02f5e52624e68529c9e2eac7978f6.tar.gz opie-de58c11168d02f5e52624e68529c9e2eac7978f6.tar.bz2 |
don't link to libbluez since this would taint LGPL
-rw-r--r-- | libopie2/opiebluez/obluetooth.cpp | 13 | ||||
-rw-r--r-- | libopie2/opiebluez/obluetooth.h | 2 | ||||
-rw-r--r-- | libopie2/opiebluez/opiebluez.pro | 6 |
3 files changed, 6 insertions, 15 deletions
diff --git a/libopie2/opiebluez/obluetooth.cpp b/libopie2/opiebluez/obluetooth.cpp index a161f86..fbc4f0a 100644 --- a/libopie2/opiebluez/obluetooth.cpp +++ b/libopie2/opiebluez/obluetooth.cpp @@ -1,161 +1,156 @@ /* This file is part of the Opie Project Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> =. Copyright (C) The Opie Team <opie-devel@handhelds.org> .=l. .>+-= _;:, .> :=|. This program is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU Library General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; version 2 of the license. ._= =} : .%`+i> _;_. .i_,=:_. -<s. This program is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU ..}^=.= = ; Library General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU -_. . . )=. = Library General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "obluetooth.h" /* OPIE */ #include <opie2/odebug.h> using namespace Opie::Core; /* STD */ #include <bluetooth/bluetooth.h> #include <bluetooth/hci.h> #include <bluetooth/hci_lib.h> #include <errno.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> namespace Opie { -namespace Shower { +namespace Bluez { /*====================================================================================== * OBluetooth *======================================================================================*/ OBluetooth* OBluetooth::_instance = 0; OBluetooth::OBluetooth() { synchronize(); } OBluetooth* OBluetooth::instance() { if ( !_instance ) _instance = new OBluetooth(); return _instance; } OBluetooth::InterfaceIterator OBluetooth::iterator() const { return OBluetooth::InterfaceIterator( _interfaces ); } int OBluetooth::count() const { return _interfaces.count(); } OBluetoothInterface* OBluetooth::interface( const QString& iface ) const { return _interfaces[iface]; } void OBluetooth::synchronize() { odebug << "OBluetooth::synchronize() - gathering available HCI devices" << oendl; _interfaces.clear(); _fd = ::socket( AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI ); if ( _fd == -1 ) { owarn << "OBluetooth::synchronize() - can't open HCI control socket (" << strerror( errno ) << ")" << oendl; return; } struct hci_dev_list_req *dl; struct hci_dev_req *dr; struct hci_dev_info di; if (!(dl = (struct hci_dev_list_req*)malloc(HCI_MAX_DEV * sizeof(struct hci_dev_req) + sizeof(uint16_t)))) { ofatal << "OBluetooth::synchronize() - can't allocate memory for HCI request" << oendl; return; } dl->dev_num = HCI_MAX_DEV; dr = dl->dev_req; if (ioctl( _fd, HCIGETDEVLIST, (void *) dl) == -1) { owarn << "OBluetooth::synchronize() - can't complete HCIGETDEVLIST (" << strerror( errno ) << ")" << oendl; return; } for ( int i = 0; i < dl->dev_num; ++i ) { di.dev_id = ( dr + i )->dev_id; if ( ioctl( _fd, HCIGETDEVINFO, (void *) &di) < 0 ) continue; - if ( hci_test_bit(HCI_RAW, &di.flags) && !bacmp(&di.bdaddr, BDADDR_ANY)) - { - int dd = hci_open_dev(di.dev_id); - hci_read_bd_addr(dd, &di.bdaddr, 1000); - hci_close_dev(dd); - } odebug << "OBluetooth::synchronize() - found device #" << di.dev_id << oendl; _interfaces.insert( di.name, new OBluetoothInterface( this, di.name, (void*) &di ) ); } } /*====================================================================================== * OBluetoothInterface *======================================================================================*/ class OBluetoothInterface::Private { public: Private( struct hci_dev_info* di ) { ::memcpy( &devinfo, di, sizeof(struct hci_dev_info) ); } struct hci_dev_info devinfo; }; OBluetoothInterface::OBluetoothInterface( QObject* parent, const char* name, void* devinfo ) { d = new OBluetoothInterface::Private( (struct hci_dev_info*) devinfo ); } OBluetoothInterface::~OBluetoothInterface() { } QString OBluetoothInterface::macAddress() const { char addr[18]; - ba2str( &d->devinfo.bdaddr, addr); - return addr; + //ba2str( &d->devinfo.bdaddr, addr); + //return addr; + return "BLA"; } } } diff --git a/libopie2/opiebluez/obluetooth.h b/libopie2/opiebluez/obluetooth.h index 30fdd18..10c8c49 100644 --- a/libopie2/opiebluez/obluetooth.h +++ b/libopie2/opiebluez/obluetooth.h @@ -1,141 +1,141 @@ /* This file is part of the Opie Project Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> =. Copyright (C) The Opie Team <opie-devel@handhelds.org> .=l. .>+-= _;:, .> :=|. This program is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU Library General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; version 2 of the License. ._= =} : .%`+i> _;_. .i_,=:_. -<s. This program is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU ..}^=.= = ; Library General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU -_. . . )=. = Library General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef OBLUETOOTH_H #define OBLUETOOTH_H #include <qobject.h> #include <qdict.h> namespace Opie { -namespace Shower { +namespace Bluez { class OBluetoothInterface; /** * @brief A container class for all bluetooth interfaces * * This class provides access to all available bluetooth interfaces of your computer. * * @author Michael 'Mickey' Lauer <mickey@vanille.de> */ class OBluetooth : public QObject { Q_OBJECT public: typedef QDict<OBluetoothInterface> InterfaceMap; typedef QDictIterator<OBluetoothInterface> InterfaceIterator; public: /** * @returns the number of available interfaces */ int count() const; /** * @returns a pointer to the (one and only) @ref OBluetooth instance. */ static OBluetooth* instance(); /** * @returns an iterator usable for iterating through all network interfaces. */ InterfaceIterator iterator() const; /** * @returns true, if the @a interface is present. */ bool isPresent( const char* interface ) const; /** * @returns true, if the @a interface supports the wireless extension protocol. */ bool isWirelessInterface( const char* interface ) const; /** * @returns a pointer to the @ref OBluetoothInterface object for the specified @a interface or 0, if not found. * @see OBluetoothInterface */ OBluetoothInterface* interface( const QString& interface ) const; /** * @internal Rebuild the internal interface database * @note Sometimes it might be useful to call this from client code, * e.g. after issuing a cardctl insert */ void synchronize(); protected: OBluetooth(); private: static OBluetooth* _instance; InterfaceMap _interfaces; class OBluetoothPrivate; OBluetoothPrivate *d; int _fd; }; /*====================================================================================== * OBluetoothInterface *======================================================================================*/ /** * @brief An bluetooth interface wrapper. * * This class provides a wrapper for an infrared interface. All the cumbersome details of * Linux ioctls are hidden under a convenient high-level interface. * @warning Most of the setting methods contained in this class require the appropriate * process permissions to work. * * @author Michael 'Mickey' Lauer <mickey@vanille.de> */ class OBluetoothInterface : public QObject { public: /** * Constructor. Normally you don't create @ref OBluetoothInterface objects yourself, * but access them via @ref OBluetooth::interface(). */ OBluetoothInterface( QObject* parent, const char* name, void* devinfo ); /** * Destructor. */ virtual ~OBluetoothInterface(); /** * @return the MAC address of the interfaces */ QString macAddress() const; private: class Private; Private *d; }; } } #endif diff --git a/libopie2/opiebluez/opiebluez.pro b/libopie2/opiebluez/opiebluez.pro index 6a37dee..8a52928 100644 --- a/libopie2/opiebluez/opiebluez.pro +++ b/libopie2/opiebluez/opiebluez.pro @@ -1,27 +1,23 @@ TEMPLATE = lib CONFIG += qt warn_on DESTDIR = $(OPIEDIR)/lib HEADERS = obluetooth.h \ SOURCES = obluetooth.cpp \ INTERFACES = TARGET = opiebluez2 VERSION = 0.0.0 INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include -LIBS += -lopiecore2 -lbluetooth +LIBS += -lopiecore2 !contains( platform, x11 ) { include( $(OPIEDIR)/include.pro ) } contains( platform, x11 ) { LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib } !isEmpty( LIBBLUEZ_INC_DIR ) { INCLUDEPATH = $$LIBBLUEZ_INC_DIR $$INCLUDEPATH } -!isEmpty( LIBBLUEZ_LIB_DIR ) { - LIBS = -L$$LIBBLUEZ_LIB_DIR $$LIBS -} - |