Files
jak-project/goal_src/jakx/engine/ps2/headset-h.gc
T
2026-06-15 09:56:10 -04:00

1567 lines
56 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: headset-h.gc
;; name in dgo: headset-h
;; dgos: ENGINE, GAME
;; DECOMP BEGINS
(deftype headset-queue (structure)
((write-offset int32)
(read-offset int32)
(bytes int32)
(size int32)
(data uint32)
)
:pack-me
(:methods
(headset-queue-method-9 () none)
(headset-queue-method-10 () none)
(headset-queue-method-11 () none)
(headset-queue-method-12 () none)
)
)
(deftype nci-codec-io-block (structure)
((pcm-buffer uint32)
(samples-in-pcm-buffer int16)
(nelly-buffer uint32)
(nelly-buffer-size uint16)
(nelly-buffer-read-byte-offset uint16)
(nelly-buffer-read-bit-offset uint8)
(nelly-buffer-write-byte-offset uint16)
(nelly-buffer-write-bit-offset uint8)
)
:pack-me
)
(define *headset-input-buffer* (new 'static 'array uint8 512
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
)
)
(define *headset-input-bytes* 0)
(define *headset-output-buffer* (new 'static 'array uint8 512
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
)
)
(define *headset-output-bytes* 0)
(define *headset-output-offset* 0)
(define *headset-cmp-out-buffer* (new 'static 'array uint8 100
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
)
)
(define *headset-cmp-out-frames* 0)
(define *headset-scratch-buffer* (new 'static 'array uint8 160
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
)
)
(define *headset-mix-buffer* (new 'static 'array uint8 160
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
#x0
)
)
(define *headset-decoder-ids* (new 'static 'array int8 4 0 0 0 0))
(define *headset-decoder-ptrs*
(new 'static 'boxed-array :type nci-codec-io-block :length 0 :allocated-length 4)
)
(deftype headset-decoder (structure)
((client-idx int8)
(last-time int32)
(cmp-queue headset-queue :inline)
(io nci-codec-io-block :inline)
(scratch uint8 16)
(id int8)
)
:allow-misaligned
)
(deftype headset (process)
((flags uint32)
(decoders headset-decoder 4 :inline)
(client-to-decoder uint8 16)
(encoder-io nci-codec-io-block :inline)
(last-speech-time int32)
(prev-operation basic)
(bytes-in-playback-queue int32)
(first-send basic)
(frame-ct int32)
(client-talking uint8 16)
)
(:methods
(headset-method-15 () none)
(headset-method-16 () none)
(headset-method-17 () none)
(headset-method-18 () none)
(headset-method-19 () none)
(headset-method-20 () none)
(headset-method-21 () none)
(headset-method-22 () none)
(headset-method-23 () none)
(headset-method-24 () none)
(headset-method-25 () none)
(headset-method-26 () none)
(headset-method-27 () none)
(headset-method-28 () none)
(headset-method-29 () none)
(headset-method-30 () none)
(headset-method-31 () none)
(headset-method-32 () none)
)
)
(define *headset* (the-as headset #f))