#pragma once #include #ifdef __cplusplus extern "C" { #endif /** * @brief Byte input anonymous structure * */ typedef struct ByteInput ByteInput; /** * @brief callback that is executed on save button press * */ typedef void (*ByteInputCallback)(void* context); /** * @brief callback that is executed when byte buffer is changed * */ typedef void (*ByteChangedCallback)(void* context); /** * @brief Allocate and initialize byte input. This byte input is used to enter bytes. * * @return ByteInput instance pointer */ ByteInput* byte_input_alloc(); /** * @brief Deinitialize and free byte input * * @param byte_input Byte input instance */ void byte_input_free(ByteInput* byte_input); /** * @brief Get byte input view * * @param byte_input byte input instance * @return View instance that can be used for embedding */ View* byte_input_get_view(ByteInput* byte_input); /** * @brief Set byte input result callback * * @param byte_input byte input instance * @param input_callback input callback fn * @param changed_callback changed callback fn * @param callback_context callback context * @param bytes buffer to use * @param bytes_count buffer length */ void byte_input_set_result_callback( ByteInput* byte_input, ByteInputCallback input_callback, ByteChangedCallback changed_callback, void* callback_context, uint8_t* bytes, uint8_t bytes_count); /** * @brief Set byte input header text * * @param byte_input byte input instance * @param text text to be shown */ void byte_input_set_header_text(ByteInput* byte_input, const char* text); #ifdef __cplusplus } #endif