Loading system/service/client/main.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ class CLIBluetoothLowEnergyCallback ble_registering = false; } void OnConnectionState(int status, int client_id, const char* address, bool connected) override { //TODO(jpawlowski): implement } void OnScanResult(const bluetooth::ScanResult& scan_result) override { if (showing_prompt.load()) cout << endl; Loading system/service/common/bluetooth/binder/IBluetoothLowEnergy.cpp +47 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,25 @@ status_t BnBluetoothLowEnergy::onTransact( UnregisterAll(); return android::NO_ERROR; } case CONNECT_TRANSACTION: { int client_id = data.readInt32(); const char* address = data.readCString(); bool is_direct = data.readBool(); bool result = Connect(client_id, address, is_direct); reply->writeInt32(result); return android::NO_ERROR; } case DISCONNECT_TRANSACTION: { int client_id = data.readInt32(); const char* address = data.readCString(); bool result = Disconnect(client_id, address); reply->writeInt32(result); return android::NO_ERROR; } case START_SCAN_TRANSACTION: { int client_id = data.readInt32(); auto settings = CreateScanSettingsFromParcel(data); Loading Loading @@ -162,6 +181,34 @@ void BpBluetoothLowEnergy::UnregisterAll() { data, &reply); } bool BpBluetoothLowEnergy::Connect(int client_id, const char* address, bool is_direct) { Parcel data, reply; data.writeInterfaceToken(IBluetoothLowEnergy::getInterfaceDescriptor()); data.writeInt32(client_id); data.writeCString(address); data.writeBool(is_direct); remote()->transact(IBluetoothLowEnergy::CONNECT_TRANSACTION, data, &reply); return reply.readInt32(); } bool BpBluetoothLowEnergy::Disconnect(int client_id, const char* address) { Parcel data, reply; data.writeInterfaceToken(IBluetoothLowEnergy::getInterfaceDescriptor()); data.writeInt32(client_id); data.writeCString(address); remote()->transact(IBluetoothLowEnergy::DISCONNECT_TRANSACTION, data, &reply); return reply.readInt32(); } bool BpBluetoothLowEnergy::StartScan( int client_id, const bluetooth::ScanSettings& settings, Loading system/service/common/bluetooth/binder/IBluetoothLowEnergy.h +7 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,9 @@ class IBluetoothLowEnergy : public android::IInterface { virtual void UnregisterClient(int client_if) = 0; virtual void UnregisterAll() = 0; virtual bool Connect(int client_id, const char* address, bool is_direct) = 0; virtual bool Disconnect(int client_id, const char* address) = 0; virtual bool StartScan( int client_id, const bluetooth::ScanSettings& settings, Loading Loading @@ -119,6 +122,10 @@ class BpBluetoothLowEnergy : public android::BpInterface<IBluetoothLowEnergy> { const android::sp<IBluetoothLowEnergyCallback>& callback) override; void UnregisterClient(int client_if) override; void UnregisterAll() override; bool Connect(int client_id, const char* address, bool is_direct) override; bool Disconnect(int client_id, const char* address) override; bool StartScan( int client_id, const bluetooth::ScanSettings& settings, Loading system/service/common/bluetooth/binder/IBluetoothLowEnergyCallback.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,15 @@ status_t BnBluetoothLowEnergyCallback::onTransact( OnClientRegistered(status, client_if); return android::NO_ERROR; } case ON_CONNECTION_STATE_TRANSACTION: { int status = data.readInt32(); int client_id = data.readInt32(); const char* address = data.readCString(); bool connected = data.readBool(); OnConnectionState(status, client_id, address, connected); return android::NO_ERROR; } case ON_SCAN_RESULT_TRANSACTION: { auto scan_result = CreateScanResultFromParcel(data); CHECK(scan_result.get()); Loading Loading @@ -97,6 +106,24 @@ void BpBluetoothLowEnergyCallback::OnClientRegistered( IBinder::FLAG_ONEWAY); } void BpBluetoothLowEnergyCallback::OnConnectionState( int status, int client_id, const char* address, bool connected) { Parcel data; data.writeInterfaceToken( IBluetoothLowEnergyCallback::getInterfaceDescriptor()); data.writeInt32(status); data.writeInt32(client_id); data.writeCString(address); data.writeBool(connected); remote()->transact( IBluetoothLowEnergyCallback::ON_CONNECTION_STATE_TRANSACTION, data, NULL, IBinder::FLAG_ONEWAY); } void BpBluetoothLowEnergyCallback::OnScanResult( const bluetooth::ScanResult& scan_result) { Parcel data, reply; Loading system/service/common/bluetooth/binder/IBluetoothLowEnergyCallback.h +4 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,8 @@ namespace binder { }; virtual void OnClientRegistered(int status, int client_if) = 0; virtual void OnConnectionState(int status, int client_id, const char* address, bool connected) = 0; virtual void OnScanResult(const bluetooth::ScanResult& scan_result) = 0; virtual void OnMultiAdvertiseCallback( int status, bool is_start, Loading Loading @@ -93,6 +95,8 @@ class BpBluetoothLowEnergyCallback // IBluetoothLowEnergyCallback overrides: void OnClientRegistered(int status, int client_if) override; void OnConnectionState(int status, int client_id, const char* address, bool connected) override; void OnScanResult(const bluetooth::ScanResult& scan_result) override; void OnMultiAdvertiseCallback( int status, bool is_start, Loading Loading
system/service/client/main.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ class CLIBluetoothLowEnergyCallback ble_registering = false; } void OnConnectionState(int status, int client_id, const char* address, bool connected) override { //TODO(jpawlowski): implement } void OnScanResult(const bluetooth::ScanResult& scan_result) override { if (showing_prompt.load()) cout << endl; Loading
system/service/common/bluetooth/binder/IBluetoothLowEnergy.cpp +47 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,25 @@ status_t BnBluetoothLowEnergy::onTransact( UnregisterAll(); return android::NO_ERROR; } case CONNECT_TRANSACTION: { int client_id = data.readInt32(); const char* address = data.readCString(); bool is_direct = data.readBool(); bool result = Connect(client_id, address, is_direct); reply->writeInt32(result); return android::NO_ERROR; } case DISCONNECT_TRANSACTION: { int client_id = data.readInt32(); const char* address = data.readCString(); bool result = Disconnect(client_id, address); reply->writeInt32(result); return android::NO_ERROR; } case START_SCAN_TRANSACTION: { int client_id = data.readInt32(); auto settings = CreateScanSettingsFromParcel(data); Loading Loading @@ -162,6 +181,34 @@ void BpBluetoothLowEnergy::UnregisterAll() { data, &reply); } bool BpBluetoothLowEnergy::Connect(int client_id, const char* address, bool is_direct) { Parcel data, reply; data.writeInterfaceToken(IBluetoothLowEnergy::getInterfaceDescriptor()); data.writeInt32(client_id); data.writeCString(address); data.writeBool(is_direct); remote()->transact(IBluetoothLowEnergy::CONNECT_TRANSACTION, data, &reply); return reply.readInt32(); } bool BpBluetoothLowEnergy::Disconnect(int client_id, const char* address) { Parcel data, reply; data.writeInterfaceToken(IBluetoothLowEnergy::getInterfaceDescriptor()); data.writeInt32(client_id); data.writeCString(address); remote()->transact(IBluetoothLowEnergy::DISCONNECT_TRANSACTION, data, &reply); return reply.readInt32(); } bool BpBluetoothLowEnergy::StartScan( int client_id, const bluetooth::ScanSettings& settings, Loading
system/service/common/bluetooth/binder/IBluetoothLowEnergy.h +7 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,9 @@ class IBluetoothLowEnergy : public android::IInterface { virtual void UnregisterClient(int client_if) = 0; virtual void UnregisterAll() = 0; virtual bool Connect(int client_id, const char* address, bool is_direct) = 0; virtual bool Disconnect(int client_id, const char* address) = 0; virtual bool StartScan( int client_id, const bluetooth::ScanSettings& settings, Loading Loading @@ -119,6 +122,10 @@ class BpBluetoothLowEnergy : public android::BpInterface<IBluetoothLowEnergy> { const android::sp<IBluetoothLowEnergyCallback>& callback) override; void UnregisterClient(int client_if) override; void UnregisterAll() override; bool Connect(int client_id, const char* address, bool is_direct) override; bool Disconnect(int client_id, const char* address) override; bool StartScan( int client_id, const bluetooth::ScanSettings& settings, Loading
system/service/common/bluetooth/binder/IBluetoothLowEnergyCallback.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,15 @@ status_t BnBluetoothLowEnergyCallback::onTransact( OnClientRegistered(status, client_if); return android::NO_ERROR; } case ON_CONNECTION_STATE_TRANSACTION: { int status = data.readInt32(); int client_id = data.readInt32(); const char* address = data.readCString(); bool connected = data.readBool(); OnConnectionState(status, client_id, address, connected); return android::NO_ERROR; } case ON_SCAN_RESULT_TRANSACTION: { auto scan_result = CreateScanResultFromParcel(data); CHECK(scan_result.get()); Loading Loading @@ -97,6 +106,24 @@ void BpBluetoothLowEnergyCallback::OnClientRegistered( IBinder::FLAG_ONEWAY); } void BpBluetoothLowEnergyCallback::OnConnectionState( int status, int client_id, const char* address, bool connected) { Parcel data; data.writeInterfaceToken( IBluetoothLowEnergyCallback::getInterfaceDescriptor()); data.writeInt32(status); data.writeInt32(client_id); data.writeCString(address); data.writeBool(connected); remote()->transact( IBluetoothLowEnergyCallback::ON_CONNECTION_STATE_TRANSACTION, data, NULL, IBinder::FLAG_ONEWAY); } void BpBluetoothLowEnergyCallback::OnScanResult( const bluetooth::ScanResult& scan_result) { Parcel data, reply; Loading
system/service/common/bluetooth/binder/IBluetoothLowEnergyCallback.h +4 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,8 @@ namespace binder { }; virtual void OnClientRegistered(int status, int client_if) = 0; virtual void OnConnectionState(int status, int client_id, const char* address, bool connected) = 0; virtual void OnScanResult(const bluetooth::ScanResult& scan_result) = 0; virtual void OnMultiAdvertiseCallback( int status, bool is_start, Loading Loading @@ -93,6 +95,8 @@ class BpBluetoothLowEnergyCallback // IBluetoothLowEnergyCallback overrides: void OnClientRegistered(int status, int client_if) override; void OnConnectionState(int status, int client_id, const char* address, bool connected) override; void OnScanResult(const bluetooth::ScanResult& scan_result) override; void OnMultiAdvertiseCallback( int status, bool is_start, Loading