12d4d9a4dSopenharmony_ci/* 22d4d9a4dSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 32d4d9a4dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 42d4d9a4dSopenharmony_ci * you may not use this file except in compliance with the License. 52d4d9a4dSopenharmony_ci * You may obtain a copy of the License at 62d4d9a4dSopenharmony_ci * 72d4d9a4dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 82d4d9a4dSopenharmony_ci * 92d4d9a4dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 102d4d9a4dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 112d4d9a4dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 122d4d9a4dSopenharmony_ci * See the License for the specific language governing permissions and 132d4d9a4dSopenharmony_ci * limitations under the License. 142d4d9a4dSopenharmony_ci */ 152d4d9a4dSopenharmony_ci 162d4d9a4dSopenharmony_ci#include "dinput_sa_manager.h" 172d4d9a4dSopenharmony_ci 182d4d9a4dSopenharmony_ci#include "iservice_registry.h" 192d4d9a4dSopenharmony_ci#include "system_ability_definition.h" 202d4d9a4dSopenharmony_ci 212d4d9a4dSopenharmony_ci#include "constants_dinput.h" 222d4d9a4dSopenharmony_ci#include "distributed_input_source_manager.h" 232d4d9a4dSopenharmony_ci#include "distributed_input_sink_manager.h" 242d4d9a4dSopenharmony_ci#include "dinput_errcode.h" 252d4d9a4dSopenharmony_ci#include "dinput_log.h" 262d4d9a4dSopenharmony_ci 272d4d9a4dSopenharmony_cinamespace OHOS { 282d4d9a4dSopenharmony_cinamespace DistributedHardware { 292d4d9a4dSopenharmony_cinamespace DistributedInput { 302d4d9a4dSopenharmony_ciIMPLEMENT_SINGLE_INSTANCE(DInputSAManager); 312d4d9a4dSopenharmony_ci 322d4d9a4dSopenharmony_civoid DInputSAManager::SystemAbilityListener::OnRemoveSystemAbility(int32_t systemAbilityId, const std::string &deviceId) 332d4d9a4dSopenharmony_ci{} 342d4d9a4dSopenharmony_ci 352d4d9a4dSopenharmony_civoid DInputSAManager::SystemAbilityListener::OnAddSystemAbility(int32_t systemAbilityId, const std::string &deviceId) 362d4d9a4dSopenharmony_ci{} 372d4d9a4dSopenharmony_ci 382d4d9a4dSopenharmony_civoid DInputSAManager::Init() 392d4d9a4dSopenharmony_ci{} 402d4d9a4dSopenharmony_ci 412d4d9a4dSopenharmony_civoid DInputSAManager::RegisterEventHandler(std::shared_ptr<AppExecFwk::EventHandler> handler) 422d4d9a4dSopenharmony_ci{ 432d4d9a4dSopenharmony_ci eventHandler_ = handler; 442d4d9a4dSopenharmony_ci} 452d4d9a4dSopenharmony_ci 462d4d9a4dSopenharmony_cibool DInputSAManager::GetDInputSourceProxy() 472d4d9a4dSopenharmony_ci{ 482d4d9a4dSopenharmony_ci int32_t saId = 4809; 492d4d9a4dSopenharmony_ci bool runOnCreate = false; 502d4d9a4dSopenharmony_ci 512d4d9a4dSopenharmony_ci if (dInputSourceProxy_ == nullptr) { 522d4d9a4dSopenharmony_ci dInputSourceProxy_ = new DistributedInputSourceManager(saId, runOnCreate); 532d4d9a4dSopenharmony_ci } 542d4d9a4dSopenharmony_ci return dInputSourceProxy_ != nullptr; 552d4d9a4dSopenharmony_ci} 562d4d9a4dSopenharmony_ci 572d4d9a4dSopenharmony_cibool DInputSAManager::HasDInputSourceProxy() 582d4d9a4dSopenharmony_ci{ 592d4d9a4dSopenharmony_ci return dInputSourceProxy_ != nullptr; 602d4d9a4dSopenharmony_ci} 612d4d9a4dSopenharmony_ci 622d4d9a4dSopenharmony_cibool DInputSAManager::SetDInputSourceProxy(const sptr<IRemoteObject> &remoteObject) 632d4d9a4dSopenharmony_ci{ 642d4d9a4dSopenharmony_ci dInputSourceProxy_ = iface_cast<IDistributedSourceInput>(remoteObject); 652d4d9a4dSopenharmony_ci 662d4d9a4dSopenharmony_ci if ((!dInputSourceProxy_) || (!dInputSourceProxy_->AsObject())) { 672d4d9a4dSopenharmony_ci DHLOGE("Failed to get dinput source proxy."); 682d4d9a4dSopenharmony_ci return false; 692d4d9a4dSopenharmony_ci } 702d4d9a4dSopenharmony_ci return true; 712d4d9a4dSopenharmony_ci} 722d4d9a4dSopenharmony_ci 732d4d9a4dSopenharmony_cibool DInputSAManager::GetDInputSinkProxy() 742d4d9a4dSopenharmony_ci{ 752d4d9a4dSopenharmony_ci int32_t saId = 4810; 762d4d9a4dSopenharmony_ci bool runOnCreate = false; 772d4d9a4dSopenharmony_ci 782d4d9a4dSopenharmony_ci if (dInputSinkProxy_ == nullptr) { 792d4d9a4dSopenharmony_ci dInputSinkProxy_ = new DistributedInputSinkManager(saId, runOnCreate); 802d4d9a4dSopenharmony_ci } 812d4d9a4dSopenharmony_ci 822d4d9a4dSopenharmony_ci return dInputSinkProxy_ != nullptr; 832d4d9a4dSopenharmony_ci} 842d4d9a4dSopenharmony_ci 852d4d9a4dSopenharmony_cibool DInputSAManager::HasDInputSinkProxy() 862d4d9a4dSopenharmony_ci{ 872d4d9a4dSopenharmony_ci return dInputSinkProxy_ != nullptr; 882d4d9a4dSopenharmony_ci} 892d4d9a4dSopenharmony_ci 902d4d9a4dSopenharmony_cibool DInputSAManager::SetDInputSinkProxy(const sptr<IRemoteObject> &remoteObject) 912d4d9a4dSopenharmony_ci{ 922d4d9a4dSopenharmony_ci dInputSinkProxy_ = iface_cast<IDistributedSinkInput>(remoteObject); 932d4d9a4dSopenharmony_ci 942d4d9a4dSopenharmony_ci if ((!dInputSinkProxy_) || (!dInputSinkProxy_->AsObject())) { 952d4d9a4dSopenharmony_ci DHLOGE("Failed to get dinput sink proxy."); 962d4d9a4dSopenharmony_ci return false; 972d4d9a4dSopenharmony_ci } 982d4d9a4dSopenharmony_ci return true; 992d4d9a4dSopenharmony_ci} 1002d4d9a4dSopenharmony_ci 1012d4d9a4dSopenharmony_ciint32_t DInputSAManager::RestoreRegisterListenerAndCallback() 1022d4d9a4dSopenharmony_ci{ 1032d4d9a4dSopenharmony_ci return DH_SUCCESS; 1042d4d9a4dSopenharmony_ci} 1052d4d9a4dSopenharmony_ci 1062d4d9a4dSopenharmony_civoid DInputSAManager::AddSimEventListenerToCache(sptr<ISimulationEventListener> listener) 1072d4d9a4dSopenharmony_ci{} 1082d4d9a4dSopenharmony_ci 1092d4d9a4dSopenharmony_civoid DInputSAManager::RemoveSimEventListenerFromCache(sptr<ISimulationEventListener> listener) 1102d4d9a4dSopenharmony_ci{} 1112d4d9a4dSopenharmony_ci 1122d4d9a4dSopenharmony_civoid DInputSAManager::AddSessionStateCbToCache(const sptr<ISessionStateCallback> callback) 1132d4d9a4dSopenharmony_ci{} 1142d4d9a4dSopenharmony_ci 1152d4d9a4dSopenharmony_civoid DInputSAManager::RemoveSessionStateCbFromCache() 1162d4d9a4dSopenharmony_ci{} 1172d4d9a4dSopenharmony_ci} // namespace DistributedInput 1182d4d9a4dSopenharmony_ci} // namespace DistributedHardware 1192d4d9a4dSopenharmony_ci} // namespace OHOS