#ifndef C_NGC_HS1_H #define C_NGC_HS1_H // this is a c header //#include //#include //#include #include #include "ngc_ext_common.h" #ifdef __cplusplus extern "C" { #endif // ========== struct / typedef ========== typedef struct NGC_HS1 NGC_HS1; struct NGC_HS1_options { // (and up) // 0 all // 1 users // 2 mods // 3 founders // 4 no one (above founder) uint8_t default_trust_level /*= 2*/; bool record_others; float query_interval_per_peer; // 15.f size_t last_msg_ids_count; // 5 float ft_activity_timeout; // seconds 60.f }; // ========== init / kill ========== // (see tox api) //NGC_HS1* NGC_HS1_new(const struct NGC_HS1_options* options); bool NGC_HS1_init(NGC_EXT_CTX* ngc_ext_ctx, const struct NGC_HS1_options* options); //void NGC_HS1_kill(NGC_HS1* ngc_hs1_ctx); void NGC_HS1_kill(NGC_EXT_CTX* ngc_ext_ctx); // ========== iterate ========== void NGC_HS1_iterate(Tox *tox, NGC_EXT_CTX* ngc_ext_ctx/*, void *user_data*/); // ========== peer online/offline ========== void NGC_HS1_peer_online(Tox* tox, NGC_EXT_CTX* ngc_ext_ctx, uint32_t group_number, uint32_t peer_number, bool online); // ========== send ========== // shim (same interface) // NGC_HS1_record_own_message() bool NGC_HS1_shim_group_send_message( const Tox *tox, NGC_EXT_CTX* ngc_ext_ctx, uint32_t group_number, Tox_Message_Type type, const uint8_t *message, size_t length, uint32_t *message_id, Tox_Err_Group_Send_Message *error ); // record own msg void NGC_HS1_record_own_message( const Tox *tox, NGC_EXT_CTX* ngc_ext_ctx, uint32_t group_number, Tox_Message_Type type, const uint8_t *message, size_t length, uint32_t message_id ); // ========== receive message ========== // !!! no shim, whould require global state !!! // shim (same interface) //typedef void tox_group_message_cb(Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, //const uint8_t *message, size_t length, uint32_t message_id, void *user_data); //void NGC_HS1_callback_group_message(Tox *tox, NGC_HS1* ngc_hs1_ctx, tox_group_message_cb *callback); // record others msg void NGC_HS1_record_message( const Tox *tox, NGC_EXT_CTX* ngc_ext_ctx, uint32_t group_number, uint32_t peer_number, Tox_Message_Type type, const uint8_t *message, size_t length, uint32_t message_id ); #ifdef __cplusplus } #endif #endif // C_NGC_HS1_H