// 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 #include #include #include namespace hal::battery { class AbstractBatteryCharger { public: struct Factory { static std::shared_ptr create(sys::Service *service); }; virtual ~AbstractBatteryCharger() = default; virtual void init(xQueueHandle, xQueueHandle) = 0; virtual void deinit() = 0; virtual void processStateChangeNotification(std::uint8_t) = 0; virtual void setChargingCurrentLimit(std::uint8_t) = 0; }; BaseType_t IRQHandler(); extern "C" { void USB_ChargerDetectedCB(std::uint8_t detectedType); } } // namespace hal::battery