1 /*
2  * Copyright (c) 2021-2024 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 #ifndef MULTIMODAL_INPUT_CONNECT_STUB_H
17 #define MULTIMODAL_INPUT_CONNECT_STUB_H
18 
19 #include "iremote_stub.h"
20 #include "message_parcel.h"
21 #include "nocopyable.h"
22 
23 #include "i_multimodal_input_connect.h"
24 #include "mmi_event_observer.h"
25 #include "mmi_log.h"
26 #include "multimodalinput_ipc_interface_code.h"
27 #include "multimodal_input_connect_define.h"
28 
29 namespace OHOS {
30 namespace MMI {
31 class MultimodalInputConnectStub : public IRemoteStub<IMultimodalInputConnect> {
32 public:
33     MultimodalInputConnectStub() = default;
34     DISALLOW_COPY_AND_MOVE(MultimodalInputConnectStub);
35     virtual ~MultimodalInputConnectStub() = default;
36 
37     virtual bool IsRunning() const = 0;
38     virtual int32_t OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply,
39         MessageOption& options) override;
40 
41 protected:
42     int32_t StubHandleAllocSocketFd(MessageParcel &data, MessageParcel &reply);
43     int32_t StubAddInputEventFilter(MessageParcel& data, MessageParcel& reply);
44     int32_t StubRemoveInputEventFilter(MessageParcel& data, MessageParcel& reply);
45     int32_t StubSetMouseScrollRows(MessageParcel& data, MessageParcel& reply);
46     int32_t StubGetMouseScrollRows(MessageParcel& data, MessageParcel& reply);
47     int32_t StubSetPointerSize(MessageParcel& data, MessageParcel& reply);
48     int32_t StubGetPointerSize(MessageParcel& data, MessageParcel& reply);
49     int32_t StubSetCustomCursor(MessageParcel& data, MessageParcel& reply);
50     int32_t StubSetMouseIcon(MessageParcel& data, MessageParcel& reply);
51     int32_t StubSetMouseHotSpot(MessageParcel& data, MessageParcel& reply);
52     int32_t StubSetMousePrimaryButton(MessageParcel& data, MessageParcel& reply);
53     int32_t StubGetMousePrimaryButton(MessageParcel& data, MessageParcel& reply);
54     int32_t StubSetHoverScrollState(MessageParcel& data, MessageParcel& reply);
55     int32_t StubGetHoverScrollState(MessageParcel& data, MessageParcel& reply);
56     int32_t StubSetPointerVisible(MessageParcel& data, MessageParcel& reply);
57     int32_t StubSetPointerStyle(MessageParcel& data, MessageParcel& reply);
58     int32_t StubNotifyNapOnline(MessageParcel& data, MessageParcel& reply);
59     int32_t StubRemoveInputEventObserver(MessageParcel& data, MessageParcel& reply);
60     int32_t StubSetNapStatus(MessageParcel& data, MessageParcel& reply);
61     int32_t StubGetPointerStyle(MessageParcel& data, MessageParcel& reply);
62     int32_t StubIsPointerVisible(MessageParcel& data, MessageParcel& reply);
63     int32_t StubMarkProcessed(MessageParcel& data, MessageParcel& reply);
64     int32_t StubSupportKeys(MessageParcel& data, MessageParcel& reply);
65     int32_t StubGetDeviceIds(MessageParcel& data, MessageParcel& reply);
66     int32_t StubGetDevice(MessageParcel& data, MessageParcel& reply);
67     int32_t StubRegisterInputDeviceMonitor(MessageParcel& data, MessageParcel& reply);
68     int32_t StubUnregisterInputDeviceMonitor(MessageParcel& data, MessageParcel& reply);
69     int32_t StubGetKeyboardType(MessageParcel& data, MessageParcel& reply);
70     int32_t StubSetKeyboardRepeatDelay(MessageParcel& data, MessageParcel& reply);
71     int32_t StubSetKeyboardRepeatRate(MessageParcel& data, MessageParcel& reply);
72     int32_t StubGetKeyboardRepeatDelay(MessageParcel& data, MessageParcel& reply);
73     int32_t StubGetKeyboardRepeatRate(MessageParcel& data, MessageParcel& reply);
74     int32_t StubAddInputHandler(MessageParcel& data, MessageParcel& reply);
75     int32_t StubRemoveInputHandler(MessageParcel& data, MessageParcel& reply);
76     int32_t StubMarkEventConsumed(MessageParcel& data, MessageParcel& reply);
77     int32_t StubMoveMouseEvent(MessageParcel& data, MessageParcel& reply);
78     int32_t StubInjectKeyEvent(MessageParcel& data, MessageParcel& reply);
79     int32_t StubSubscribeKeyEvent(MessageParcel& data, MessageParcel& reply);
80     int32_t StubUnsubscribeKeyEvent(MessageParcel& data, MessageParcel& reply);
81     int32_t StubSubscribeSwitchEvent(MessageParcel& data, MessageParcel& reply);
82     int32_t StubUnsubscribeSwitchEvent(MessageParcel& data, MessageParcel& reply);
83     int32_t StubInjectPointerEvent(MessageParcel& data, MessageParcel& reply);
84     int32_t StubSetAnrListener(MessageParcel& data, MessageParcel& reply);
85     int32_t StubGetDisplayBindInfo(MessageParcel& data, MessageParcel& reply);
86     int32_t StubGetAllMmiSubscribedEvents(MessageParcel& data, MessageParcel& reply);
87     int32_t StubSetDisplayBind(MessageParcel& data, MessageParcel& reply);
88     int32_t StubSetPointerColor(MessageParcel& data, MessageParcel& reply);
89     int32_t StubGetPointerColor(MessageParcel& data, MessageParcel& reply);
90     int32_t StubEnableCombineKey(MessageParcel& data, MessageParcel& reply);
91     int32_t StubSetPointerSpeed(MessageParcel& data, MessageParcel& reply);
92     int32_t StubGetPointerSpeed(MessageParcel& data, MessageParcel& reply);
93     int32_t StubGetFunctionKeyState(MessageParcel &data, MessageParcel &reply);
94     int32_t StubSetFunctionKeyState(MessageParcel &data, MessageParcel &reply);
95     int32_t StubSetPointerLocation(MessageParcel &data, MessageParcel &reply);
96     int32_t StubSetMouseCaptureMode(MessageParcel& data, MessageParcel& reply);
97     int32_t StubGetWindowPid(MessageParcel& data, MessageParcel& reply);
98     int32_t StubAppendExtraData(MessageParcel& data, MessageParcel& reply);
99     int32_t StubEnableInputDevice(MessageParcel& data, MessageParcel& reply);
100     int32_t StubSetKeyDownDuration(MessageParcel& data, MessageParcel& reply);
101     int32_t StubSetTouchpadScrollSwitch(MessageParcel& data, MessageParcel& reply);
102     int32_t StubGetTouchpadScrollSwitch(MessageParcel& data, MessageParcel& reply);
103     int32_t StubSetTouchpadScrollDirection(MessageParcel& data, MessageParcel& reply);
104     int32_t StubGetTouchpadScrollDirection(MessageParcel& data, MessageParcel& reply);
105     int32_t StubSetTouchpadTapSwitch(MessageParcel& data, MessageParcel& reply);
106     int32_t StubGetTouchpadTapSwitch(MessageParcel& data, MessageParcel& reply);
107     int32_t StubSetTouchpadPointerSpeed(MessageParcel& data, MessageParcel& reply);
108     int32_t StubGetTouchpadPointerSpeed(MessageParcel& data, MessageParcel& reply);
109     int32_t StubSetTouchpadPinchSwitch(MessageParcel& data, MessageParcel& reply);
110     int32_t StubGetTouchpadPinchSwitch(MessageParcel& data, MessageParcel& reply);
111     int32_t StubSetTouchpadSwipeSwitch(MessageParcel& data, MessageParcel& reply);
112     int32_t StubGetTouchpadSwipeSwitch(MessageParcel& data, MessageParcel& reply);
113     int32_t StubSetTouchpadRightClickType(MessageParcel& data, MessageParcel& reply);
114     int32_t StubGetTouchpadRightClickType(MessageParcel& data, MessageParcel& reply);
115     int32_t StubSetTouchpadRotateSwitch(MessageParcel& data, MessageParcel& reply);
116     int32_t StubGetTouchpadRotateSwitch(MessageParcel& data, MessageParcel& reply);
117     int32_t StubSetTouchpadDoubleTapAndDragState(MessageParcel& data, MessageParcel& reply);
118     int32_t StubGetTouchpadDoubleTapAndDragState(MessageParcel& data, MessageParcel& reply);
119     int32_t StubClearWindowPointerStyle(MessageParcel& data, MessageParcel& reply);
120     int32_t StubSetShieldStatus(MessageParcel& data, MessageParcel& reply);
121     int32_t StubGetShieldStatus(MessageParcel& data, MessageParcel& reply);
122     int32_t StubGetKeyState(MessageParcel& data, MessageParcel& reply);
123     int32_t StubAuthorize(MessageParcel& data, MessageParcel& reply);
124     int32_t StubCancelInjection(MessageParcel& data, MessageParcel& reply);
125     int32_t StubSetPixelMapData(MessageParcel& data, MessageParcel& reply);
126 
127     int32_t StubHasIrEmitter(MessageParcel& data, MessageParcel& reply);
128     int32_t StubGetInfraredFrequencies(MessageParcel& data, MessageParcel& reply);
129     int32_t StubTransmitInfrared(MessageParcel& data, MessageParcel& reply);
130     int32_t StubSetCurrentUser(MessageParcel& data, MessageParcel& reply);
131     int32_t StubAddVirtualInputDevice(MessageParcel& data, MessageParcel& reply);
132     int32_t StubRemoveVirtualInputDevice(MessageParcel& data, MessageParcel& reply);
133     int32_t StubEnableHardwareCursorStats(MessageParcel& data, MessageParcel& reply);
134     int32_t StubGetHardwareCursorStats(MessageParcel& data, MessageParcel& reply);
135     int32_t StubGetIntervalSinceLastInput(MessageParcel& data, MessageParcel& reply);
136 #ifdef OHOS_BUILD_ENABLE_MAGICCURSOR
137     int32_t StubGetPointerSnapshot(MessageParcel &data, MessageParcel &reply);
138 #endif // OHOS_BUILD_ENABLE_MAGICCURSOR
139 #ifdef OHOS_BUILD_ENABLE_ANCO
140     int32_t StubAncoAddChannel(MessageParcel& data, MessageParcel& reply);
141     int32_t StubAncoRemoveChannel(MessageParcel& data, MessageParcel& reply);
142 #endif // OHOS_BUILD_ENABLE_ANCO
143     int32_t StubTransferBinderClientService(MessageParcel& data, MessageParcel& reply);
144     int32_t StubSkipPointerLayer(MessageParcel& data, MessageParcel& reply);
145 
146 private:
147     int32_t VerifyTouchPadSetting(void);
148 };
149 } // namespace MMI
150 } // namespace OHOS
151 #endif // MULTIMODAL_INPUT_CONNECT_STUB_H
152