// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "Profile.hpp" #include #include namespace bluetooth { class HSP : public Profile { static constexpr auto CLASS_OF_DEVICE = 0x400204; // Service class: Telephony, Major device class: Phone, Minor device class: Cellular public: HSP(); ~HSP() override; HSP(const HSP &other) = delete; auto operator=(const HSP &rhs) -> HSP & = delete; HSP(HSP &&other) noexcept; auto operator=(HSP &&other) noexcept -> HSP &; auto init() -> Error::Code override; void setDeviceAddress(uint8_t *addr) override; void setOwnerService(const sys::Service *service) override; void connect() override; void disconnect() override; void start() override; void stop() override; void setAudioDevice(std::shared_ptr audioDevice) override {} private: class HSPImpl; std::unique_ptr pimpl; const sys::Service *ownerService{}; btstack_run_loop *runLoopInstance{}; }; } // namespace bluetooth