/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
sequenceable light_agent_type..LightColor;
sequenceable light_animation_ipc..OHOS.Sensors.LightAnimationIPC;
sequenceable light_info_ipc..OHOS.Sensors.LightInfoIPC;
sequenceable OHOS.IRemoteObject;
sequenceable raw_file_descriptor..OHOS.Sensors.RawFileDescriptor;
sequenceable vibrator_infos..OHOS.Sensors.VibratePattern;
sequenceable vibrator_infos..OHOS.Sensors.VibratorCapacity;
sequenceable vibrator_infos..OHOS.Sensors.VibratorIdentifierIPC;
sequenceable vibrator_infos..OHOS.Sensors.VibratorInfoIPC;
sequenceable vibrator_infos..OHOS.Sensors.EffectInfoIPC;
sequenceable vibrator_infos..OHOS.Sensors.CustomHapticInfoIPC;
sequenceable vibrator_infos..OHOS.Sensors.PrimitiveEffectIPC;
sequenceable vibrator_infos..OHOS.Sensors.VibratePackage;
interface OHOS.Sensors.IMiscdeviceService {
void Vibrate([in] VibratorIdentifierIPC identifier, [in] int timeOut, [in] int usage, [in] boolean systemUsage);
void PlayVibratorEffect([in] VibratorIdentifierIPC identifier, [in] String effect, [in] int loopCount, [in] int usage, [in] boolean systemUsage);
void StopVibrator([in] VibratorIdentifierIPC identifier);
void StopVibratorByMode([in] VibratorIdentifierIPC identifier, [in] String mode);
void IsSupportEffect([in] VibratorIdentifierIPC identifier, [in] String effect, [out] boolean state);
void GetLightList([out] LightInfoIPC[] lightInfoIpcList);
void TurnOn([in] int lightId, [in] int singleColor, [in] LightAnimationIPC animation);
void TurnOff([in] int lightId);
void GetDelayTime([in] VibratorIdentifierIPC identifier, [out] int delayTime);
void PlayPattern([in] VibratorIdentifierIPC identifier, [in] VibratePattern pattern, [in] CustomHapticInfoIPC customHapticInfoIPC);
void TransferClientRemoteObject([in] IRemoteObject vibratorClient);
void PlayPrimitiveEffect([in] VibratorIdentifierIPC identifier, [in] String effect, [in] PrimitiveEffectIPC primitiveEffectIPC);
void GetVibratorCapacity([in] VibratorIdentifierIPC identifier, [out] VibratorCapacity capacity);
void GetVibratorList([in] VibratorIdentifierIPC identifier, [out] VibratorInfoIPC[] vibratorInfoIPC);
void GetEffectInfo([in] VibratorIdentifierIPC identifier, [in] String effectType, [out] EffectInfoIPC effectInfoIPC);
void SubscribeVibratorPlugInfo([in] IRemoteObject vibratorClient);
void PlayPackageBySessionId([in] VibratorIdentifierIPC identifier, [in] VibratePackage packageIPC, [in] CustomHapticInfoIPC customHapticInfoIPC);
void StopVibrateBySessionId([in] VibratorIdentifierIPC identifier, [in] unsigned int sessionId);
void DisableVibratorByPid([in] int pid);
void EnableVibratorByPid([in] int pid);
}