summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiebluez/obluetooth.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/libopie2/opiebluez/obluetooth.cpp b/libopie2/opiebluez/obluetooth.cpp
index fbc4f0a..b5df96e 100644
--- a/libopie2/opiebluez/obluetooth.cpp
+++ b/libopie2/opiebluez/obluetooth.cpp
@@ -110,14 +110,17 @@ void OBluetooth::synchronize()
return;
}
for ( int i = 0; i < dl->dev_num; ++i )
{
di.dev_id = ( dr + i )->dev_id;
- if ( ioctl( _fd, HCIGETDEVINFO, (void *) &di) < 0 )
+ if ( ioctl( _fd, HCIGETDEVINFO, (void *) &di) == -1 )
+ {
+ owarn << "OBluetooth::synchronize() - can't issue HCIGETDEVINFO on device " << i << " (" << strerror( errno ) << ") - skipping that device. " << oendl;
continue;
+ }
odebug << "OBluetooth::synchronize() - found device #" << di.dev_id << oendl;
_interfaces.insert( di.name, new OBluetoothInterface( this, di.name, (void*) &di ) );
}
}
/*======================================================================================
@@ -132,25 +135,29 @@ class OBluetoothInterface::Private
::memcpy( &devinfo, di, sizeof(struct hci_dev_info) );
}
struct hci_dev_info devinfo;
};
OBluetoothInterface::OBluetoothInterface( QObject* parent, const char* name, void* devinfo )
+ :QObject( parent, name )
{
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;
- return "BLA";
+ return QString().sprintf( "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X",
+ d->devinfo.bdaddr.b[5],
+ d->devinfo.bdaddr.b[4],
+ d->devinfo.bdaddr.b[3],
+ d->devinfo.bdaddr.b[2],
+ d->devinfo.bdaddr.b[1],
+ d->devinfo.bdaddr.b[0] );
}
}
}