• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "mc_controller_manager.h"
17 #include "mc_camera_tracking_controller.h"
18 #include "mc_controller_ipc_death_listener.h"
19 #include "mechbody_controller_service.h"
20 #include "mechbody_controller_utils.h"
21 
22 namespace OHOS {
23 namespace MechBodyController {
24 namespace {
25     const std::string TAG = "McControllerManager";
26 }
27 
GetInstance()28 McControllerManager& McControllerManager::GetInstance()
29 {
30     static auto instance = new McControllerManager();
31     return *instance;
32 }
33 
McControllerManager()34 McControllerManager::McControllerManager() {}
35 
SetTrackingEnabled(const uint32_t & tokenId,bool & isEnabled)36 int32_t McControllerManager::SetTrackingEnabled(const uint32_t &tokenId, bool &isEnabled)
37 {
38     HILOGI("start, tokenId: %{public}s; isEnabled: %{public}s;",
39         GetAnonymUint32(tokenId).c_str(), isEnabled ? "true" : "false");
40     int32_t setResult = McCameraTrackingController::GetInstance().SetTrackingEnabled(tokenId, isEnabled);
41     HILOGI("end. Tracking Enabled: %{public}s; Set result code: %{public}d", isEnabled ? "true" : "false", setResult);
42     return setResult;
43 }
44 
GetTrackingEnabled(const uint32_t & tokenId,bool & isEnabled)45 int32_t McControllerManager::GetTrackingEnabled(const uint32_t &tokenId, bool &isEnabled)
46 {
47     HILOGI("start, tokenId: %{public}s;", GetAnonymUint32(tokenId).c_str());
48     int32_t getResult = McCameraTrackingController::GetInstance().GetTrackingEnabled(tokenId, isEnabled);
49     HILOGI("end. Tracking Enabled: %{public}s; Get result code: %{public}d", isEnabled ? "true" : "false", getResult);
50     return ERR_OK;
51 }
52 
RegisterTrackingEventCallback(const uint32_t & tokenId,sptr<IRemoteObject> callback)53 int32_t McControllerManager::RegisterTrackingEventCallback(const uint32_t &tokenId, sptr <IRemoteObject> callback)
54 {
55     HILOGI("start, tokenId: %{public}s;", GetAnonymUint32(tokenId).c_str());
56     int32_t registerResult = McCameraTrackingController::GetInstance().RegisterTrackingEventCallback(tokenId, callback);
57     HILOGI("end. result code: %{public}d.", registerResult);
58     return registerResult;
59 }
60 
UnRegisterTrackingEventCallback(const uint32_t & tokenId)61 int32_t McControllerManager::UnRegisterTrackingEventCallback(const uint32_t &tokenId)
62 {
63     HILOGI("start, tokenId: %{public}s;", GetAnonymUint32(tokenId).c_str());
64     int32_t unregisterResult = McCameraTrackingController::GetInstance().UnRegisterTrackingEventCallback(
65         tokenId);
66     HILOGI("end. result code: %{public}d.", unregisterResult);
67     return unregisterResult;
68 }
69 
OnTrackingEvent(const int32_t & mechId,const TrackingEvent & event)70 int32_t McControllerManager::OnTrackingEvent(const int32_t &mechId, const TrackingEvent &event)
71 {
72     return McCameraTrackingController::GetInstance().OnTrackingEvent(mechId, event);
73 }
74 
SetTrackingLayout(const uint32_t & tokenId,CameraTrackingLayout & cameraTrackingLayout)75 int32_t McControllerManager::SetTrackingLayout(const uint32_t &tokenId,
76     CameraTrackingLayout &cameraTrackingLayout)
77 {
78     return McCameraTrackingController::GetInstance().SetTrackingLayout(tokenId, cameraTrackingLayout);
79 }
80 
GetTrackingLayout(const uint32_t & tokenId,CameraTrackingLayout & cameraTrackingLayout)81 int32_t McControllerManager::GetTrackingLayout(const uint32_t &tokenId, CameraTrackingLayout &cameraTrackingLayout)
82 {
83     return McCameraTrackingController::GetInstance().GetTrackingLayout(tokenId, cameraTrackingLayout);
84 }
85 
OnMechConnect(const MechInfo & mechInfo)86 void MechConnectListenerImpl::OnMechConnect(const MechInfo &mechInfo)
87 {
88     MechBodyControllerService::GetInstance().OnAttachStateChange(AttachmentState::ATTACHED, mechInfo);
89 }
90 
OnMechDisconnect(const MechInfo & mechInfo)91 void MechConnectListenerImpl::OnMechDisconnect(const MechInfo &mechInfo)
92 {
93     MechBodyControllerService::GetInstance().OnAttachStateChange(AttachmentState::DETACHED, mechInfo);
94 }
95 }
96 }