195489c19Sopenharmony_ci/* 295489c19Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 395489c19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 495489c19Sopenharmony_ci * you may not use this file except in compliance with the License. 595489c19Sopenharmony_ci * You may obtain a copy of the License at 695489c19Sopenharmony_ci * 795489c19Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 895489c19Sopenharmony_ci * 995489c19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1095489c19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1195489c19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1295489c19Sopenharmony_ci * See the License for the specific language governing permissions and 1395489c19Sopenharmony_ci * limitations under the License. 1495489c19Sopenharmony_ci */ 1595489c19Sopenharmony_ci 1695489c19Sopenharmony_ci/** 1795489c19Sopenharmony_ci * @addtogroup Bluetooth 1895489c19Sopenharmony_ci * @{ 1995489c19Sopenharmony_ci * 2095489c19Sopenharmony_ci * @brief Defines device class. 2195489c19Sopenharmony_ci * 2295489c19Sopenharmony_ci * @since 1.0 2395489c19Sopenharmony_ci * @version 1.0 2495489c19Sopenharmony_ci */ 2595489c19Sopenharmony_ci 2695489c19Sopenharmony_ci/** 2795489c19Sopenharmony_ci * @file bluetooth_device_class.h 2895489c19Sopenharmony_ci * 2995489c19Sopenharmony_ci * @brief Bluetooth device class. 3095489c19Sopenharmony_ci * 3195489c19Sopenharmony_ci * @since 1.0 3295489c19Sopenharmony_ci * @version 1.0 3395489c19Sopenharmony_ci */ 3495489c19Sopenharmony_ci 3595489c19Sopenharmony_ci#ifndef BLUETOOTH_DEVICE_CLASS_H 3695489c19Sopenharmony_ci#define BLUETOOTH_DEVICE_CLASS_H 3795489c19Sopenharmony_ci 3895489c19Sopenharmony_ci#include "bluetooth_def.h" 3995489c19Sopenharmony_ci 4095489c19Sopenharmony_cinamespace OHOS { 4195489c19Sopenharmony_cinamespace Bluetooth { 4295489c19Sopenharmony_ci/** 4395489c19Sopenharmony_ci * @brief Represents device class. 4495489c19Sopenharmony_ci * 4595489c19Sopenharmony_ci * @since 1.0 4695489c19Sopenharmony_ci * @version 1.0 4795489c19Sopenharmony_ci */ 4895489c19Sopenharmony_ciclass BLUETOOTH_API BluetoothDeviceClass { 4995489c19Sopenharmony_cipublic: 5095489c19Sopenharmony_ci /** 5195489c19Sopenharmony_ci * @brief A constructor used to create a <b>BluetoothDeviceClass</b> instance. 5295489c19Sopenharmony_ci * 5395489c19Sopenharmony_ci * @since 1.0 5495489c19Sopenharmony_ci * @version 1.0 5595489c19Sopenharmony_ci */ 5695489c19Sopenharmony_ci BluetoothDeviceClass(); 5795489c19Sopenharmony_ci 5895489c19Sopenharmony_ci /** 5995489c19Sopenharmony_ci * @brief A constructor used to create a <b>BluetoothDeviceClass</b> instance. 6095489c19Sopenharmony_ci * 6195489c19Sopenharmony_ci * @param deviceClass Device class to create an <b>BluetoothDeviceClass</b> instance. 6295489c19Sopenharmony_ci * @since 1.0 6395489c19Sopenharmony_ci * @version 1.0 6495489c19Sopenharmony_ci */ 6595489c19Sopenharmony_ci explicit BluetoothDeviceClass(int deviceClass); 6695489c19Sopenharmony_ci 6795489c19Sopenharmony_ci /** 6895489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BluetoothDeviceClass</b> instance. 6995489c19Sopenharmony_ci * 7095489c19Sopenharmony_ci * @since 1.0 7195489c19Sopenharmony_ci * @version 1.0 7295489c19Sopenharmony_ci */ 7395489c19Sopenharmony_ci ~BluetoothDeviceClass(); 7495489c19Sopenharmony_ci 7595489c19Sopenharmony_ci /** 7695489c19Sopenharmony_ci * @brief Get major class. 7795489c19Sopenharmony_ci * 7895489c19Sopenharmony_ci * @return Returns device major class. 7995489c19Sopenharmony_ci * @since 1.0 8095489c19Sopenharmony_ci * @version 1.0 8195489c19Sopenharmony_ci */ 8295489c19Sopenharmony_ci int GetMajorClass() const; 8395489c19Sopenharmony_ci 8495489c19Sopenharmony_ci /** 8595489c19Sopenharmony_ci * @brief Get major minor class. 8695489c19Sopenharmony_ci * 8795489c19Sopenharmony_ci * @return Returns device major minor class. 8895489c19Sopenharmony_ci * @since 1.0 8995489c19Sopenharmony_ci * @version 1.0 9095489c19Sopenharmony_ci */ 9195489c19Sopenharmony_ci int GetMajorMinorClass() const; 9295489c19Sopenharmony_ci 9395489c19Sopenharmony_ci /** 9495489c19Sopenharmony_ci * @brief Get class of device. 9595489c19Sopenharmony_ci * 9695489c19Sopenharmony_ci * @return Returns the class of device. 9795489c19Sopenharmony_ci * @since 1.0 9895489c19Sopenharmony_ci * @version 1.0 9995489c19Sopenharmony_ci */ 10095489c19Sopenharmony_ci int GetClassOfDevice() const; 10195489c19Sopenharmony_ci 10295489c19Sopenharmony_ci /** 10395489c19Sopenharmony_ci * @brief Check if device supporte some profiles. 10495489c19Sopenharmony_ci * 10595489c19Sopenharmony_ci * @param profileId Profile Id. 10695489c19Sopenharmony_ci * @return Returns <b>true</b> if device supported this profile; 10795489c19Sopenharmony_ci * returns <b>false</b> if device did not support this profile. 10895489c19Sopenharmony_ci * @since 1.0 10995489c19Sopenharmony_ci * @version 1.0 11095489c19Sopenharmony_ci */ 11195489c19Sopenharmony_ci bool IsProfileSupported(int profileId) const; 11295489c19Sopenharmony_ci 11395489c19Sopenharmony_ci /** 11495489c19Sopenharmony_ci * @brief Check if device supporte some services. 11595489c19Sopenharmony_ci * 11695489c19Sopenharmony_ci * @param profileId Profile Id. 11795489c19Sopenharmony_ci * @return Returns <b>true</b> if device supported this service; 11895489c19Sopenharmony_ci * returns <b>false</b> if device did not support this service. 11995489c19Sopenharmony_ci * @since 1.0 12095489c19Sopenharmony_ci * @version 1.0 12195489c19Sopenharmony_ci */ 12295489c19Sopenharmony_ci bool IsServiceSupported(int service) const; 12395489c19Sopenharmony_ci 12495489c19Sopenharmony_ciprivate: 12595489c19Sopenharmony_ci bool IsA2dpSupported() const; 12695489c19Sopenharmony_ci bool IsA2dpSinkSupported() const; 12795489c19Sopenharmony_ci bool IsHeadSetSupported() const; 12895489c19Sopenharmony_ci bool IsOppSupported() const; 12995489c19Sopenharmony_ci int class_; 13095489c19Sopenharmony_ci}; 13195489c19Sopenharmony_ci} // namespace Bluetooth 13295489c19Sopenharmony_ci} // namespace OHOS 13395489c19Sopenharmony_ci 13495489c19Sopenharmony_ci#endif // BLUETOOTH_DEVICE_CLASS_H 135