ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
peer_manager.h File Reference

Go to the source code of this file.

Data Structures

struct  webrtc_peer_manager_config_t
 Peer manager configuration. More...
struct  webrtc_signaling_callbacks_t
 Hooks that deliver local SDP offers/answers and ICE candidates to ACDS. More...

Typedefs

typedef void(* webrtc_transport_ready_callback_t) (acip_transport_t *transport, const uint8_t participant_id[16], void *user_data)
 Callback when DataChannel is ready and wrapped in ACIP transport.
typedef void(* webrtc_gathering_timeout_callback_t) (const uint8_t participant_id[16], uint32_t timeout_ms, uint64_t elapsed_ms, void *user_data)
 Callback when ICE candidate gathering is unusually slow.
typedef asciichat_error_t(* webrtc_send_sdp_callback_t) (const uint8_t session_id[16], const uint8_t recipient_id[16], const char *sdp_type, const char *sdp, void *user_data)
 Callback to send SDP via ACDS signaling.
typedef asciichat_error_t(* webrtc_send_ice_callback_t) (const uint8_t session_id[16], const uint8_t recipient_id[16], const char *candidate, const char *mid, void *user_data)
 Callback to send ICE candidate via ACDS signaling.

Enumerations

enum  webrtc_peer_role_t { WEBRTC_ROLE_CREATOR = 0 , WEBRTC_ROLE_JOINER = 1 }
 Peer connection role (server or client). More...

Functions

asciichat_error_t webrtc_peer_manager_create (const webrtc_peer_manager_config_t *config, const webrtc_signaling_callbacks_t *signaling_callbacks, webrtc_peer_manager_t **manager_out)
 Create a WebRTC peer manager.
void webrtc_peer_manager_destroy (webrtc_peer_manager_t *manager)
 Destroy peer manager and close all connections.
asciichat_error_t webrtc_peer_manager_handle_sdp (webrtc_peer_manager_t *manager, const acip_webrtc_sdp_t *sdp)
 Handle incoming SDP message from ACDS.
asciichat_error_t webrtc_peer_manager_handle_ice (webrtc_peer_manager_t *manager, const acip_webrtc_ice_t *ice)
 Handle incoming ICE candidate from ACDS.
asciichat_error_t webrtc_peer_manager_connect (webrtc_peer_manager_t *manager, const uint8_t session_id[16], const uint8_t participant_id[16])
 Initiate connection to remote peer (joiner role only).
bool webrtc_peer_manager_get_state (webrtc_peer_manager_t *manager, const uint8_t participant_id[16], webrtc_state_t *state_out)
asciichat_error_t webrtc_peer_manager_remove_peer (webrtc_peer_manager_t *manager, const uint8_t participant_id[16])
int webrtc_peer_manager_check_gathering_timeouts (webrtc_peer_manager_t *manager, uint32_t timeout_ms)
 Report slow ICE gathering and remove failed connections.
asciichat_error_t webrtc_peer_manager_dispatch_ready (webrtc_peer_manager_t *manager)