code wiki / (root) / nx_audio_session.nx

nx_audio_session.nx

buildroot/runtime/nx_audio_session.nx

10226 B278 linesdepth 4pulls 7 transitivereach 2 importersview sourcekind librarytopic audio
docsdependenciesstructsconstsfunctions

about

nx_audio_session.nx -- concrete audio-session subtype. Extends nx_media_session by embedding it as the FIRST field of the struct, so any `*nx_audio_session` casts safely to `*nx_media_session` for the base portion (classic C inheritance pattern; works because NishiLang structs are byte-flat). Composes: nx_media_session.nx -- base lifecycle + vtable nx_codec.nx -- codec abstraction; encode/decode dispatch nx_audio_capture.nx -- mic capture abstract + null/synth backends nx_audio_playback.nx -- speaker playback abstract + null backend Consumers (audio session is composed by): nx_video_room.nx -- audio + video + chat + signaling nx_call.nx -- 1:1 family/friends call nx_game_voice.nx -- spatial audio in voxels nx_iot_intercom.nx -- kitchen tablet <-> garage nx_cli_meet.nx -- terminal-only audio genealogy_id: nx_media_session_q10 + nx_codec_q10 + nx_voice_codec_v1 + nx_lpc_q15 + nx_voice_frame_q10 lineage_id: nx_audio_session_q10

dependencies 5 imports · 2 importers

nx_syscalls_x86_64.nx nx_media_session.nx nx_codec.nx nx_audio_capture.nx nx_audio_playback.nx nx_audio_session.nx nx_call.nx nx_cli_meet.nx

imports: nx_syscalls_x86_64.nxnx_media_session.nxnx_codec.nxnx_audio_capture.nxnx_audio_playback.nx

imported by: nx_call.nxnx_cli_meet.nx

structs

62struct nx_audio_session

consts

41const NX_AUDIO_FEC_NONE: i64 = 0
42const NX_AUDIO_FEC_NEIGHBOR: i64 = 1 // half-res copy of frame N-1
43const NX_AUDIO_FEC_ADAPTIVE: i64 = 2 // tunes by recent loss measurement
51const NX_AUDIO_AEC_NONE: i64 = 0
52const NX_AUDIO_AEC_BUILTIN: i64 = 1 // when nx_aec ships
54const NX_AUDIO_NS_NONE: i64 = 0
55const NX_AUDIO_NS_BUILTIN: i64 = 1 // when nx_ns ships
86const NX_AUDIO_SESSION_BYTES: i64 = 224

functions

90func nx_audio_session_open_impl(ms: *nx_media_session) -> i64
117func nx_audio_session_close_impl(ms: *nx_media_session) -> i64
125func nx_audio_session_on_peer_join_impl(ms: *nx_media_session,
133func nx_audio_session_on_peer_leave_impl(ms: *nx_media_session,
138func nx_audio_session_on_tier_change_impl(ms: *nx_media_session,
147func nx_audio_session_health_check_impl(ms: *nx_media_session) -> i64
157func nx_audio_session_new(out: *nx_audio_session,
197func nx_audio_session_attach_capture(s: *nx_audio_session,
203func nx_audio_session_attach_playback(s: *nx_audio_session,
209func nx_audio_session_set_codec(s: *nx_audio_session, c: *nx_codec) -> i64
229func nx_audio_session_capture_encode(s: *nx_audio_session,
246func nx_audio_session_decode_play(s: *nx_audio_session,
264func nx_audio_session_sample_rate(s: *nx_audio_session) -> i64
268func nx_audio_session_channels(s: *nx_audio_session) -> i64
272func nx_audio_session_frame_samples(s: *nx_audio_session) -> i64
276func nx_audio_session_codec(s: *nx_audio_session) -> *nx_codec