diff options
author | bunnei <bunneidev@gmail.com> | 2021-11-12 04:13:21 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2022-03-25 02:13:33 +0100 |
commit | a87812c6a12fbb4b48c0a890ae5a181402743f69 (patch) | |
tree | abda8bca7463d8aaf7cd173f1c2fd8e96a855b6e /src/core/hle/service/nvflinger/hos_binder_driver_server.cpp | |
parent | hle: nvflinger: Add implementation for BufferQueueProducer class. (diff) | |
download | yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.tar yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.tar.gz yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.tar.bz2 yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.tar.lz yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.tar.xz yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.tar.zst yuzu-a87812c6a12fbb4b48c0a890ae5a181402743f69.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/nvflinger/hos_binder_driver_server.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp b/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp new file mode 100644 index 000000000..0c937d682 --- /dev/null +++ b/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright 2021 yuzu Emulator Project + +#include <mutex> + +#include "common/common_types.h" +#include "core/hle/service/nvflinger/hos_binder_driver_server.h" + +namespace Service::NVFlinger { + +HosBinderDriverServer::HosBinderDriverServer(Core::System& system_) + : service_context(system_, "HosBinderDriverServer") {} + +HosBinderDriverServer::~HosBinderDriverServer() {} + +u64 HosBinderDriverServer::RegisterProducer(std::unique_ptr<android::IBinder>&& binder) { + std::lock_guard lk{lock}; + + last_id++; + + producers[last_id] = std::move(binder); + + return last_id; +} + +android::IBinder* HosBinderDriverServer::TryGetProducer(u64 id) { + std::lock_guard lk{lock}; + + if (auto search = producers.find(id); search != producers.end()) { + return search->second.get(); + } + + return {}; +} + +} // namespace Service::NVFlinger |