OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "device/bluetooth/bluetooth_adapter_mac.h" | 5 #include "device/bluetooth/bluetooth_adapter_mac.h" |
6 | 6 |
7 #import <IOBluetooth/objc/IOBluetoothDevice.h> | 7 #import <IOBluetooth/objc/IOBluetoothDevice.h> |
8 #import <IOBluetooth/objc/IOBluetoothDeviceInquiry.h> | 8 #import <IOBluetooth/objc/IOBluetoothDeviceInquiry.h> |
9 #import <IOBluetooth/objc/IOBluetoothHostController.h> | 9 #import <IOBluetooth/objc/IOBluetoothHostController.h> |
10 | 10 |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 base::Bind(&BluetoothAdapterMac::PollAdapter, | 258 base::Bind(&BluetoothAdapterMac::PollAdapter, |
259 weak_ptr_factory_.GetWeakPtr()), | 259 weak_ptr_factory_.GetWeakPtr()), |
260 base::TimeDelta::FromMilliseconds(kPollIntervalMs)); | 260 base::TimeDelta::FromMilliseconds(kPollIntervalMs)); |
261 } | 261 } |
262 | 262 |
263 void BluetoothAdapterMac::UpdateDevices(NSArray* devices) { | 263 void BluetoothAdapterMac::UpdateDevices(NSArray* devices) { |
264 STLDeleteValues(&devices_); | 264 STLDeleteValues(&devices_); |
265 for (IOBluetoothDevice* device in devices) { | 265 for (IOBluetoothDevice* device in devices) { |
266 std::string device_address = | 266 std::string device_address = |
267 base::SysNSStringToUTF8([device addressString]); | 267 base::SysNSStringToUTF8([device addressString]); |
268 devices_[device_address] = new BluetoothDeviceMac(device); | 268 devices_[device_address] = new BluetoothDeviceMac(ui_task_runner_, device); |
269 } | 269 } |
270 } | 270 } |
271 | 271 |
272 void BluetoothAdapterMac::DeviceInquiryStarted( | 272 void BluetoothAdapterMac::DeviceInquiryStarted( |
273 IOBluetoothDeviceInquiry* inquiry) { | 273 IOBluetoothDeviceInquiry* inquiry) { |
274 DCHECK(device_inquiry_ == inquiry); | 274 DCHECK(device_inquiry_ == inquiry); |
275 if (discovery_status_ == DISCOVERING) | 275 if (discovery_status_ == DISCOVERING) |
276 return; | 276 return; |
277 | 277 |
278 discovery_status_ = DISCOVERING; | 278 discovery_status_ = DISCOVERING; |
279 RunCallbacks(on_start_discovery_callbacks_, true); | 279 RunCallbacks(on_start_discovery_callbacks_, true); |
280 num_discovery_listeners_ = on_start_discovery_callbacks_.size(); | 280 num_discovery_listeners_ = on_start_discovery_callbacks_.size(); |
281 on_start_discovery_callbacks_.clear(); | 281 on_start_discovery_callbacks_.clear(); |
282 | 282 |
283 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | 283 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
284 AdapterDiscoveringChanged(this, true)); | 284 AdapterDiscoveringChanged(this, true)); |
285 MaybeStopDeviceInquiry(); | 285 MaybeStopDeviceInquiry(); |
286 } | 286 } |
287 | 287 |
288 void BluetoothAdapterMac::DeviceFound(IOBluetoothDeviceInquiry* inquiry, | 288 void BluetoothAdapterMac::DeviceFound(IOBluetoothDeviceInquiry* inquiry, |
289 IOBluetoothDevice* device) { | 289 IOBluetoothDevice* device) { |
290 DCHECK(device_inquiry_ == inquiry); | 290 DCHECK(device_inquiry_ == inquiry); |
291 std::string device_address = base::SysNSStringToUTF8([device addressString]); | 291 std::string device_address = base::SysNSStringToUTF8([device addressString]); |
292 if (discovered_devices_.find(device_address) == discovered_devices_.end()) { | 292 if (discovered_devices_.find(device_address) == discovered_devices_.end()) { |
293 scoped_ptr<BluetoothDeviceMac> device_mac(new BluetoothDeviceMac(device)); | 293 scoped_ptr<BluetoothDeviceMac> device_mac( |
| 294 new BluetoothDeviceMac(ui_task_runner_, device)); |
294 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | 295 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
295 DeviceAdded(this, device_mac.get())); | 296 DeviceAdded(this, device_mac.get())); |
296 discovered_devices_.insert(device_address); | 297 discovered_devices_.insert(device_address); |
297 } | 298 } |
298 } | 299 } |
299 | 300 |
300 void BluetoothAdapterMac::DeviceInquiryComplete( | 301 void BluetoothAdapterMac::DeviceInquiryComplete( |
301 IOBluetoothDeviceInquiry* inquiry, | 302 IOBluetoothDeviceInquiry* inquiry, |
302 IOReturn error, | 303 IOReturn error, |
303 bool aborted) { | 304 bool aborted) { |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 iter != callback_list.end(); | 355 iter != callback_list.end(); |
355 ++iter) { | 356 ++iter) { |
356 if (success) | 357 if (success) |
357 ui_task_runner_->PostTask(FROM_HERE, iter->first); | 358 ui_task_runner_->PostTask(FROM_HERE, iter->first); |
358 else | 359 else |
359 ui_task_runner_->PostTask(FROM_HERE, iter->second); | 360 ui_task_runner_->PostTask(FROM_HERE, iter->second); |
360 } | 361 } |
361 } | 362 } |
362 | 363 |
363 } // namespace device | 364 } // namespace device |
OLD | NEW |