nx_audio_session.nx
buildroot/runtime/nx_audio_session.nx
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
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
| 62 | struct nx_audio_session |
consts
| 41 | const NX_AUDIO_FEC_NONE: i64 = 0 |
| 42 | const NX_AUDIO_FEC_NEIGHBOR: i64 = 1 // half-res copy of frame N-1 |
| 43 | const NX_AUDIO_FEC_ADAPTIVE: i64 = 2 // tunes by recent loss measurement |
| 51 | const NX_AUDIO_AEC_NONE: i64 = 0 |
| 52 | const NX_AUDIO_AEC_BUILTIN: i64 = 1 // when nx_aec ships |
| 54 | const NX_AUDIO_NS_NONE: i64 = 0 |
| 55 | const NX_AUDIO_NS_BUILTIN: i64 = 1 // when nx_ns ships |
| 86 | const NX_AUDIO_SESSION_BYTES: i64 = 224 |
functions
| 90 | func nx_audio_session_open_impl(ms: *nx_media_session) -> i64 |
| 117 | func nx_audio_session_close_impl(ms: *nx_media_session) -> i64 |
| 125 | func nx_audio_session_on_peer_join_impl(ms: *nx_media_session, |
| 133 | func nx_audio_session_on_peer_leave_impl(ms: *nx_media_session, |
| 138 | func nx_audio_session_on_tier_change_impl(ms: *nx_media_session, |
| 147 | func nx_audio_session_health_check_impl(ms: *nx_media_session) -> i64 |
| 157 | func nx_audio_session_new(out: *nx_audio_session, calls 1: nx_media_session_init |
| 197 | func nx_audio_session_attach_capture(s: *nx_audio_session, |
| 203 | func nx_audio_session_attach_playback(s: *nx_audio_session, |
| 209 | func nx_audio_session_set_codec(s: *nx_audio_session, c: *nx_codec) -> i64 |
| 229 | func nx_audio_session_capture_encode(s: *nx_audio_session, |
| 246 | func nx_audio_session_decode_play(s: *nx_audio_session, |
| 264 | func nx_audio_session_sample_rate(s: *nx_audio_session) -> i64 |
| 268 | func nx_audio_session_channels(s: *nx_audio_session) -> i64 |
| 272 | func nx_audio_session_frame_samples(s: *nx_audio_session) -> i64 |
| 276 | func nx_audio_session_codec(s: *nx_audio_session) -> *nx_codec |