Loading system/binder/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ filegroup { "android/bluetooth/IBluetoothHeadsetPhone.aidl", "android/bluetooth/IBluetoothHearingAid.aidl", "android/bluetooth/IBluetoothHidHost.aidl", "android/bluetooth/IBluetoothLeAudio.aidl", "android/bluetooth/IBluetoothPan.aidl", "android/bluetooth/IBluetoothManager.aidl", "android/bluetooth/IBluetoothManagerCallback.aidl", Loading system/binder/android/bluetooth/IBluetoothLeAudio.aidl 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright 2020 HIMSA II K/S - www.himsa.com. * Represented by EHIMA - www.ehima.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.bluetooth; import android.bluetooth.BluetoothDevice; /** * APIs for Bluetooth LE Audio service * * @hide */ interface IBluetoothLeAudio { // Public API boolean connect(in BluetoothDevice device); boolean disconnect(in BluetoothDevice device); List<BluetoothDevice> getConnectedDevices(); List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states); int getConnectionState(in BluetoothDevice device); boolean setActiveDevice(in BluetoothDevice device); List<BluetoothDevice> getActiveDevices(); boolean setConnectionPolicy(in BluetoothDevice device, int connectionPolicy); int getConnectionPolicy(in BluetoothDevice device); const int LE_AUDIO_GROUP_ID_INVALID = -1; /** * Get device group id. Devices with same group id belong to same group (i.e left and right * earbud) */ int getGroupId(in BluetoothDevice device); } system/gd/facade/grpc_root_server.cc +0 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ #include "security/security_module.h" #include "shim/dumpsys.h" #include "shim/facade/facade.h" #include "shim/l2cap.h" #include "stack_manager.h" #include "storage/storage_module.h" Loading Loading @@ -115,7 +114,6 @@ class RootFacadeService : public ::bluetooth::facade::RootFacade::Service { break; case BluetoothModule::SHIM: modules.add<::bluetooth::shim::facade::ShimFacadeModule>(); modules.add<::bluetooth::shim::L2cap>(); break; default: return ::grpc::Status(::grpc::StatusCode::INVALID_ARGUMENT, "invalid module under test"); Loading system/gd/hci/acl_manager/acl_connection.h +2 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ class AclConnection { using QueueDownEnd = common::BidiQueueEnd<PacketView<kLittleEndian>, BasePacketBuilder>; virtual QueueUpEnd* GetAclQueueEnd() const; bool locally_initiated_{false}; protected: AclConnection(QueueUpEnd* queue_up_end, uint16_t handle) : queue_up_end_(queue_up_end), handle_(handle) {} QueueUpEnd* queue_up_end_; Loading system/gd/hci/acl_manager/classic_impl.h +3 −0 Original line number Diff line number Diff line Loading @@ -190,9 +190,11 @@ struct classic_impl : public security::ISecurityManagerListener { auto status = connection_complete.GetStatus(); auto address = connection_complete.GetBdAddr(); Role current_role = Role::CENTRAL; bool locally_initiated = true; if (outgoing_connecting_address_ == address) { outgoing_connecting_address_ = Address::kEmpty; } else { locally_initiated = false; ASSERT_LOG(incoming_connecting_address_ == address, "No prior connection request for %s", address.ToString().c_str()); incoming_connecting_address_ = Address::kEmpty; Loading @@ -212,6 +214,7 @@ struct classic_impl : public security::ISecurityManagerListener { round_robin_scheduler_->Register(RoundRobinScheduler::ConnectionType::CLASSIC, handle, queue); std::unique_ptr<ClassicAclConnection> connection( new ClassicAclConnection(std::move(queue), acl_connection_interface_, handle, address)); connection->locally_initiated_ = locally_initiated; auto& connection_proxy = check_and_get_connection(handle); connection_proxy.connection_management_callbacks_ = connection->GetEventCallbacks(); connection_proxy.connection_management_callbacks_->OnRoleChange(current_role); Loading Loading
system/binder/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ filegroup { "android/bluetooth/IBluetoothHeadsetPhone.aidl", "android/bluetooth/IBluetoothHearingAid.aidl", "android/bluetooth/IBluetoothHidHost.aidl", "android/bluetooth/IBluetoothLeAudio.aidl", "android/bluetooth/IBluetoothPan.aidl", "android/bluetooth/IBluetoothManager.aidl", "android/bluetooth/IBluetoothManagerCallback.aidl", Loading
system/binder/android/bluetooth/IBluetoothLeAudio.aidl 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright 2020 HIMSA II K/S - www.himsa.com. * Represented by EHIMA - www.ehima.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.bluetooth; import android.bluetooth.BluetoothDevice; /** * APIs for Bluetooth LE Audio service * * @hide */ interface IBluetoothLeAudio { // Public API boolean connect(in BluetoothDevice device); boolean disconnect(in BluetoothDevice device); List<BluetoothDevice> getConnectedDevices(); List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states); int getConnectionState(in BluetoothDevice device); boolean setActiveDevice(in BluetoothDevice device); List<BluetoothDevice> getActiveDevices(); boolean setConnectionPolicy(in BluetoothDevice device, int connectionPolicy); int getConnectionPolicy(in BluetoothDevice device); const int LE_AUDIO_GROUP_ID_INVALID = -1; /** * Get device group id. Devices with same group id belong to same group (i.e left and right * earbud) */ int getGroupId(in BluetoothDevice device); }
system/gd/facade/grpc_root_server.cc +0 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ #include "security/security_module.h" #include "shim/dumpsys.h" #include "shim/facade/facade.h" #include "shim/l2cap.h" #include "stack_manager.h" #include "storage/storage_module.h" Loading Loading @@ -115,7 +114,6 @@ class RootFacadeService : public ::bluetooth::facade::RootFacade::Service { break; case BluetoothModule::SHIM: modules.add<::bluetooth::shim::facade::ShimFacadeModule>(); modules.add<::bluetooth::shim::L2cap>(); break; default: return ::grpc::Status(::grpc::StatusCode::INVALID_ARGUMENT, "invalid module under test"); Loading
system/gd/hci/acl_manager/acl_connection.h +2 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ class AclConnection { using QueueDownEnd = common::BidiQueueEnd<PacketView<kLittleEndian>, BasePacketBuilder>; virtual QueueUpEnd* GetAclQueueEnd() const; bool locally_initiated_{false}; protected: AclConnection(QueueUpEnd* queue_up_end, uint16_t handle) : queue_up_end_(queue_up_end), handle_(handle) {} QueueUpEnd* queue_up_end_; Loading
system/gd/hci/acl_manager/classic_impl.h +3 −0 Original line number Diff line number Diff line Loading @@ -190,9 +190,11 @@ struct classic_impl : public security::ISecurityManagerListener { auto status = connection_complete.GetStatus(); auto address = connection_complete.GetBdAddr(); Role current_role = Role::CENTRAL; bool locally_initiated = true; if (outgoing_connecting_address_ == address) { outgoing_connecting_address_ = Address::kEmpty; } else { locally_initiated = false; ASSERT_LOG(incoming_connecting_address_ == address, "No prior connection request for %s", address.ToString().c_str()); incoming_connecting_address_ = Address::kEmpty; Loading @@ -212,6 +214,7 @@ struct classic_impl : public security::ISecurityManagerListener { round_robin_scheduler_->Register(RoundRobinScheduler::ConnectionType::CLASSIC, handle, queue); std::unique_ptr<ClassicAclConnection> connection( new ClassicAclConnection(std::move(queue), acl_connection_interface_, handle, address)); connection->locally_initiated_ = locally_initiated; auto& connection_proxy = check_and_get_connection(handle); connection_proxy.connection_management_callbacks_ = connection->GetEventCallbacks(); connection_proxy.connection_management_callbacks_->OnRoleChange(current_role); Loading