Files
racket-sound/libao/libao-async-ffi.rkt
T

45 lines
1.5 KiB
Racket
Raw Normal View History

2026-02-22 17:37:15 +01:00
#lang racket/base
(require ffi/unsafe
ffi/unsafe/define
"../utils/utils.rkt"
2026-02-22 23:15:08 +01:00
"libao-ffi.rkt"
2026-02-22 17:37:15 +01:00
)
(provide ao_create_async
ao_stop_async
ao_play_async
ao_is_at_second_async
2026-02-25 10:15:51 +01:00
ao_music_duration_async
2026-02-22 23:15:08 +01:00
ao_bufsize_async
2026-02-23 01:23:49 +01:00
ao_clear_async
2026-02-22 17:37:15 +01:00
)
2026-02-23 08:20:04 +01:00
(define lib (get-lib '("ao-play-async" "libao-play-async") '(#f)))
(define-ffi-definer define-libao-async lib)
2026-02-22 17:37:15 +01:00
(define _libao-async-handle-pointer (_cpointer 'ao-async-handle))
2026-02-22 23:15:08 +01:00
;extern void *ao_create_async(void *ao_device, );
(define-libao-async ao_create_async(_fun _pointer _fpointer -> _libao-async-handle-pointer))
2026-02-22 17:37:15 +01:00
;extern void ao_stop_async(void *handle);
(define-libao-async ao_stop_async(_fun _libao-async-handle-pointer -> _void))
2026-02-25 10:15:51 +01:00
;extern void ao_play_async(void *handle, double at_second, double music_duration, int buf_size, void *mem);
(define-libao-async ao_play_async(_fun _libao-async-handle-pointer _double _double _uint32 _pointer -> _void))
2026-02-22 17:37:15 +01:00
;extern double ao_is_at_second_async(void *handle);
(define-libao-async ao_is_at_second_async(_fun _libao-async-handle-pointer -> _double))
2026-02-22 23:15:08 +01:00
2026-02-25 10:15:51 +01:00
;extern double ao_music_duration_async(void *handle);
(define-libao-async ao_music_duration_async(_fun _libao-async-handle-pointer -> _double))
2026-02-25 09:58:51 +01:00
2026-02-22 23:15:08 +01:00
;extern int ao_bufsize_async(void *handle);
2026-02-23 01:23:49 +01:00
(define-libao-async ao_bufsize_async(_fun _libao-async-handle-pointer -> _int))
;extern void ao_clear_async(void *handle);
2026-02-25 10:15:51 +01:00
(define-libao-async ao_clear_async(_fun _libao-async-handle-pointer -> _void))