• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 "input_interface_reporter.h"
17 #include "hdf_log.h"
18 
19 #define HDF_LOG_TAG InputIfReporterTag
20 
21 namespace OHOS {
22 namespace Input {
23 
RegisterReportCallback(InputEventCb * callback)24 RetStatus InputIfReporter::RegisterReportCallback(InputEventCb *callback)
25 {
26     HDF_LOGI("register report callback");
27 
28     if (callback == nullptr) {
29         HDF_LOGE("param callback is wrong");
30         return INPUT_FAILURE;
31     }
32 
33     std::lock_guard<std::mutex> guard(eventCbMtx_);
34     eventCb = callback;
35     return INPUT_SUCCESS;
36 }
37 
UnregisterReportCallback()38 RetStatus InputIfReporter::UnregisterReportCallback()
39 {
40     HDF_LOGI("unregister report callback");
41     std::lock_guard<std::mutex> guard(eventCbMtx_);
42     eventCb = nullptr;
43     return INPUT_SUCCESS;
44 }
45 
ReportEvent(const IfInputEvent * eventBuf,int eventNum)46 RetStatus InputIfReporter::ReportEvent(const IfInputEvent *eventBuf, int eventNum)
47 {
48     if (eventBuf == nullptr) {
49         HDF_LOGE("eventBuf is null.");
50         return INPUT_FAILURE;
51     }
52 
53     std::lock_guard<std::mutex> guard(eventCbMtx_);
54     if (eventCb == nullptr) {
55         return INPUT_SUCCESS;
56     }
57     eventCb->EventCallback(&eventBuf, eventNum);
58     return INPUT_SUCCESS;
59 }
60 }
61 }
62