/* * 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. */ /* * * @addtogroup HdiUsb * @{ * * @brief Provides unified APIs for usb services to access usb drivers. * * A usb service can obtain a usb driver object or agent and then call APIs provided by this object or agent to * access different types of usb devices based on the usb IDs, thereby obtaining usb information, * subscribing to or unsubscribing from usb data, enabling or disabling a usb, * setting the usb data reporting mode, and setting usb options such as the accuracy and measurement range. * * @since 5.1 * @version 1.0 */ package ohos.hdi.usb.v2_0; import ohos.hdi.usb.v2_0.IUsbdSubscriber; interface IUsbDeviceInterface { /* * * @brief Obtains the list of functions (represented by bit field) supported by the current device. * * @param funcs Indicates the list of functions supported by the current device. * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ GetCurrentFunctions([out] int funcs); /* * * @brief Sets the list of functions (represented by bit field) supported by the current device. * * @param funcs Indicates the list of functions supported by the current device. * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ SetCurrentFunctions([in] int funcs); /* * * @brief Get Accessory Strings. * * @param accessoryInfo Indicates the accessory information. * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ GetAccessoryInfo([out] String[] accessoryInfo); /* * * @brief open the accessory. * * @param fd accessory file descriptor * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ OpenAccessory([out] FileDescriptor fd); /* * * @brief close the accessory. * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ CloseAccessory([in] FileDescriptor fd); /* * * @brief Binds a subscriber. * * @param subscriber Indicates the subscriber. * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ BindUsbdDeviceSubscriber([in] IUsbdSubscriber subscriber); /* * * @brief Unbinds a subscriber. * * @param subscriber Indicates the subscriber. * * @return Returns 0 if the operation is successful; returns a non-0 value if the operation fails. * @since 5.1 * @version 1.0 */ UnbindUsbdDeviceSubscriber([in] IUsbdSubscriber subscriber); }