Check Bluetooth power state

Taken from http://cocoadev.com/wiki/FindingBluetoothAvailability
This commit is contained in:
Brodie Blackburn
2012-10-06 10:22:45 +10:00
parent abf13bae58
commit 106f81eaf9

6
src/io_mac.m Executable file → Normal file
View File

@@ -45,13 +45,17 @@
foundWiimotes = 0;
isDiscovering = NO;
if (self != nil) {
BluetoothHCIPowerState powerState;
IOBluetoothLocalDeviceGetPowerState(&powerState);
/*
* Calling IOBluetoothLocalDeviceAvailable has two advantages:
* 1. it sets up a event source in the run loop (bug for C version of the bluetooth api)
* 2. it checks for the availability of the BT hardware
*/
if (![IOBluetoothHostController defaultController])
if (![IOBluetoothHostController defaultController] ||
powerState == kBluetoothHCIPowerStateOFF)
{
WIIUSE_DEBUG("Bluetooth hardware not available.");
[self release];
self = nil;
}