Files
jami-daemon/test/agent/jami.scm
Olivier Dion 224152f7a4 libguile-jami: Expect user to call jami:init and jami:fini
Exit hooks are only called when in a REPL.  Thus, provide the user with bindings
for initialization and finalization of the daemon.  The syntax `with-jami' can be
used to ensure that finalization happens if initialization succeed.

Change-Id: I2f84a76844866a1de06300cde26618c8576045e5
2022-10-07 12:20:59 -04:00

38 lines
1008 B
Scheme

(define-module (jami)
#:use-module (system foreign-library)
#:export (init
initialized
fini
logging
platform
start
version
JAMI_FLAG_DEBUG
JAMI_FLAG_CONSOLE_LOG
JAMI_FLAG_AUTOANSWER
JAMI_FLAG_IOS_EXTENSION)
#:export-syntax (with-jami))
(let* ((libjami (load-foreign-library "libguile-jami"))
(bootstrap (foreign-library-function libjami "bootstrap")))
(bootstrap))
(define-syntax with-jami
(syntax-rules ()
((_ config-file (init-flags ...) thunk)
(dynamic-wind
(lambda ()
(init (logior init-flags ...))
(start config-file))
thunk
fini))
((_ (init-flags ...) thunk)
(with-jami "" (init-flags ...) thunk))
((_ thunk)
(with-jami "" (0) thunk))))
(define JAMI_FLAG_DEBUG (ash 1 0))
(define JAMI_FLAG_CONSOLE_LOG (ash 1 1))
(define JAMI_FLAG_AUTOANSWER (ash 1 2))
(define JAMI_FLAG_IOS_EXTENSION (ash 1 3))