mirror of
https://github.com/Evolution-X-Devices/device_google_wahoo
synced 2026-02-01 07:50:47 +00:00
Merge changes I14794981,I9c259ab2
* changes: Offload HAL Service: Chre Interface factory Offload HAL Service: Implements Offload HAL
This commit is contained in:
committed by
Android (Google) Code Review
commit
fd9534655b
@@ -21,6 +21,8 @@ cc_binary {
|
||||
"service.cpp",
|
||||
"chre_constants.cpp",
|
||||
"chre_interface.cpp",
|
||||
"offload_server.cpp",
|
||||
"chre_interface_factory.cpp",
|
||||
],
|
||||
cflags: ["-Wall", "-Wextra"],
|
||||
shared_libs: [
|
||||
|
||||
36
wifi_offload/chre_interface_factory.cpp
Normal file
36
wifi_offload/chre_interface_factory.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#include "chre_interface_factory.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace offload {
|
||||
namespace V1_0 {
|
||||
namespace implementation {
|
||||
|
||||
ChreInterface* ChreInterfaceFactory::getChreInterface(ChreInterfaceCallbacks* serverCallbacks) {
|
||||
return new ChreInterface(serverCallbacks);
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_0
|
||||
} // namespace offload
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
43
wifi_offload/chre_interface_factory.h
Normal file
43
wifi_offload/chre_interface_factory.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#ifndef WIFI_OFFLOAD_CHRE_INTERFACE_UTILS_H_
|
||||
#define WIFI_OFFLOAD_CHRE_INTERFACE_UTILS_H_
|
||||
|
||||
#include "chre_interface.h"
|
||||
#include "chre_interface_callbacks.h"
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace offload {
|
||||
namespace V1_0 {
|
||||
namespace implementation {
|
||||
|
||||
class ChreInterfaceFactory {
|
||||
public:
|
||||
ChreInterfaceFactory() = default;
|
||||
virtual ~ChreInterfaceFactory() = default;
|
||||
virtual ChreInterface* getChreInterface(ChreInterfaceCallbacks* server);
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_0
|
||||
} // namespace offload
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
|
||||
#endif // WIFI_OFFLOAD_CHRE_INTERFACE_UTILS_H_
|
||||
75
wifi_offload/offload_server.cpp
Normal file
75
wifi_offload/offload_server.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
#include "offload_server.h"
|
||||
|
||||
#include <android-base/logging.h>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace offload {
|
||||
namespace V1_0 {
|
||||
namespace implementation {
|
||||
|
||||
class OffloadServer;
|
||||
|
||||
OffloadServer::OffloadServer() : mChreInterfaceCallbacks(new ChreInterfaceCallbacksImpl(this)) {
|
||||
LOG(VERBOSE) << "Wifi Offload HAL impl";
|
||||
}
|
||||
|
||||
bool OffloadServer::configureScans(const ScanParam& param, const ScanFilter& filter) {
|
||||
LOG(INFO) << "configureScans";
|
||||
return true;
|
||||
}
|
||||
|
||||
std::pair<ScanStats, bool> OffloadServer::getScanStats() {
|
||||
LOG(INFO) << "getScanStats";
|
||||
return std::make_pair(mScanStats, true);
|
||||
}
|
||||
|
||||
bool OffloadServer::subscribeScanResults(uint32_t delayMs) {
|
||||
LOG(INFO) << "subscribeScanResults with delay:" << delayMs;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OffloadServer::unsubscribeScanResults() {
|
||||
LOG(INFO) << "unsubscribeScanResults";
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OffloadServer::setEventCallback(const sp<IOffloadCallback>& cb) {
|
||||
LOG(INFO) << "Set Event callback";
|
||||
bool result = false;
|
||||
if (cb != nullptr) {
|
||||
mEventCallback = cb;
|
||||
result = true;
|
||||
} else {
|
||||
LOG(WARNING) << "Invalid callback object";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
ChreInterfaceCallbacksImpl::ChreInterfaceCallbacksImpl(OffloadServer* server) : mServer(server) {
|
||||
}
|
||||
|
||||
ChreInterfaceCallbacksImpl::~ChreInterfaceCallbacksImpl() {
|
||||
}
|
||||
|
||||
void ChreInterfaceCallbacksImpl::handleConnectionEvents(
|
||||
ChreInterfaceCallbacks::ConnectionEvent event) {
|
||||
LOG(VERBOSE) << "Connection event received " << (int)event;
|
||||
}
|
||||
|
||||
void ChreInterfaceCallbacksImpl::handleMessage(uint32_t messageType,
|
||||
const std::vector<uint8_t>& message) {
|
||||
LOG(VERBOSE) << "Message from Nano app " << messageType;
|
||||
}
|
||||
|
||||
// Methods from ::android::hidl::base::V1_0::IBase follow.
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_0
|
||||
} // namespace offload
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
57
wifi_offload/offload_server.h
Normal file
57
wifi_offload/offload_server.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#ifndef WIFI_OFFLOAD_SERVER_H_
|
||||
#define WIFI_OFFLOAD_SERVER_H_
|
||||
|
||||
#include <android/hardware/wifi/offload/1.0/IOffload.h>
|
||||
|
||||
#include "chre_interface_callbacks.h"
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace offload {
|
||||
namespace V1_0 {
|
||||
namespace implementation {
|
||||
|
||||
class OffloadServer;
|
||||
|
||||
class ChreInterfaceCallbacksImpl : public ChreInterfaceCallbacks {
|
||||
public:
|
||||
ChreInterfaceCallbacksImpl(OffloadServer* server);
|
||||
~ChreInterfaceCallbacksImpl() override;
|
||||
|
||||
void handleConnectionEvents(ChreInterfaceCallbacks::ConnectionEvent event);
|
||||
void handleMessage(uint32_t messageType, const std::vector<uint8_t>& message);
|
||||
|
||||
private:
|
||||
OffloadServer* mServer;
|
||||
};
|
||||
|
||||
/**
|
||||
* Interface object to communicate with Offload HAL
|
||||
*/
|
||||
class OffloadServer {
|
||||
public:
|
||||
OffloadServer();
|
||||
|
||||
bool configureScans(const ScanParam& param, const ScanFilter& filter);
|
||||
std::pair<ScanStats, bool> getScanStats();
|
||||
bool subscribeScanResults(uint32_t delayMs);
|
||||
bool unsubscribeScanResults();
|
||||
bool setEventCallback(const sp<IOffloadCallback>& cb);
|
||||
|
||||
private:
|
||||
ScanStats mScanStats;
|
||||
std::unique_ptr<ChreInterfaceCallbacksImpl> mChreInterfaceCallbacks;
|
||||
sp<IOffloadCallback> mEventCallback;
|
||||
|
||||
friend class ChreInterfaceCallbacksImpl;
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_0
|
||||
} // namespace offload
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
|
||||
#endif // WIFI_OFFLOAD_SERVER_H_
|
||||
Reference in New Issue
Block a user