// 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 "FreeRTOS.h"
#include "queue.h"
#include "headset_key_codes.hpp"
namespace bsp
{
namespace headset
{
/**
* @brief This method is responsible for initializing the headset controller.
* @param qHandle key code
*/
int32_t Init(xQueueHandle qHandle);
/**
* @brief This method is responsible for reading state of headset and its keys.
* @param headsetState headset event (1 - connected, 0 - removed)
* @param microphoneState headset event (1 - present, 0 - absent)
* @param keyEvent key event (1 - pressed, 0 - released)
* @param keyCode key code
* @note Method returns `HeadsetState::Changed` if state of headset changed (connected -> removed)
*/
HeadsetState headset_get_data(bool &headsetState, bool µphoneState, uint8_t &keyEvent, uint8_t &keyCode);
bool IsInserted();
/**
* @brief This method is responsible for deinitializing the headset controller.
* @param qHandle key code
*/
int32_t Deinit();
BaseType_t headset_IRQHandler();
}
}