blob: 013711f53fd5c319f55548e72288b5e628a7288c [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "device/bluetooth/bluetooth_classic_win_fake.h"
#include "base/logging.h"
namespace device {
namespace win {
BluetoothClassicWrapperFake::BluetoothClassicWrapperFake()
: last_error_(ERROR_SUCCESS) {}
BluetoothClassicWrapperFake::~BluetoothClassicWrapperFake() {}
HBLUETOOTH_RADIO_FIND BluetoothClassicWrapperFake::FindFirstRadio(
const BLUETOOTH_FIND_RADIO_PARAMS* params,
HANDLE* out_handle) {
if (simulated_radios_) {
*out_handle = (PVOID)simulated_radios_.get();
last_error_ = ERROR_SUCCESS;
return *out_handle;
}
last_error_ = ERROR_NO_MORE_ITEMS;
return NULL;
}
DWORD BluetoothClassicWrapperFake::GetRadioInfo(
HANDLE handle,
PBLUETOOTH_RADIO_INFO out_radio_info) {
if (simulated_radios_) {
*out_radio_info = simulated_radios_->radio_info;
last_error_ = ERROR_SUCCESS;
return last_error_;
}
last_error_ = ERROR_INVALID_HANDLE;
return last_error_;
}
BOOL BluetoothClassicWrapperFake::FindRadioClose(HBLUETOOTH_RADIO_FIND handle) {
return TRUE;
}
BOOL BluetoothClassicWrapperFake::IsConnectable(HANDLE handle) {
if (simulated_radios_) {
last_error_ = ERROR_SUCCESS;
return simulated_radios_->is_connectable;
}
last_error_ = ERROR_INVALID_HANDLE;
return FALSE;
}
HBLUETOOTH_DEVICE_FIND BluetoothClassicWrapperFake::FindFirstDevice(
const BLUETOOTH_DEVICE_SEARCH_PARAMS* params,
BLUETOOTH_DEVICE_INFO* out_device_info) {
last_error_ = ERROR_NO_MORE_ITEMS;
return NULL;
}
BOOL BluetoothClassicWrapperFake::FindNextDevice(
HBLUETOOTH_DEVICE_FIND handle,
BLUETOOTH_DEVICE_INFO* out_device_info) {
NOTIMPLEMENTED();
return TRUE;
}
BOOL BluetoothClassicWrapperFake::FindDeviceClose(
HBLUETOOTH_DEVICE_FIND handle) {
return TRUE;
}
BOOL BluetoothClassicWrapperFake::EnableDiscovery(HANDLE handle,
BOOL is_enable) {
return TRUE;
}
BOOL BluetoothClassicWrapperFake::EnableIncomingConnections(HANDLE handle,
BOOL is_enable) {
return TRUE;
}
DWORD BluetoothClassicWrapperFake::LastError() {
return last_error_;
}
BluetoothRadio* BluetoothClassicWrapperFake::SimulateARadio(
base::string16 name,
BLUETOOTH_ADDRESS address) {
BluetoothRadio* radio = new BluetoothRadio();
radio->is_connectable = true; // set it connectable by default.
size_t length =
((name.size() > BLUETOOTH_MAX_NAME_SIZE) ? BLUETOOTH_MAX_NAME_SIZE
: name.size());
wcsncpy(radio->radio_info.szName, name.c_str(), length);
radio->radio_info.address = address;
simulated_radios_.reset(radio);
return radio;
}
} // namespace device
} // namespace win