chiaki/lib/include/chiaki/feedbacksender.h
2020-12-27 16:46:09 +01:00

43 lines
1.1 KiB
C

// SPDX-License-Identifier: LicenseRef-AGPL-3.0-only-OpenSSL
#ifndef CHIAKI_FEEDBACKSENDER_H
#define CHIAKI_FEEDBACKSENDER_H
#include "controller.h"
#include "takion.h"
#include "thread.h"
#include "common.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct chiaki_feedback_sender_t
{
ChiakiLog *log;
ChiakiTakion *takion;
ChiakiThread thread;
ChiakiSeqNum16 state_seq_num;
ChiakiSeqNum16 history_seq_num;
ChiakiFeedbackHistoryBuffer history_buf;
bool should_stop;
ChiakiControllerState controller_state_prev;
ChiakiControllerState controller_state;
bool controller_state_changed;
ChiakiMutex state_mutex;
ChiakiCond state_cond;
} ChiakiFeedbackSender;
CHIAKI_EXPORT ChiakiErrorCode chiaki_feedback_sender_init(ChiakiFeedbackSender *feedback_sender, ChiakiTakion *takion);
CHIAKI_EXPORT void chiaki_feedback_sender_fini(ChiakiFeedbackSender *feedback_sender);
CHIAKI_EXPORT ChiakiErrorCode chiaki_feedback_sender_set_controller_state(ChiakiFeedbackSender *feedback_sender, ChiakiControllerState *state);
#ifdef __cplusplus
}
#endif
#endif // CHIAKI_FEEDBACKSENDER_H