diff options
author | Samuel Fadel <samuel@nihil.ws> | 2022-12-01 15:03:05 +0100 |
---|---|---|
committer | Samuel Fadel <samuel@nihil.ws> | 2022-12-01 15:03:05 +0100 |
commit | 7aa66702b2b9396add0cc20849ec89a48495c7ff (patch) | |
tree | 3d5bf019313264ff6527e5cfb464b060113b44aa /wm.scm |
Initial commit.
Sketching Scheme/C interop.
Diffstat (limited to 'wm.scm')
-rw-r--r-- | wm.scm | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -0,0 +1,24 @@ +(define-module (wm) + #:use-module (system foreign) + #:export (wm-init wm-quit)) + +(define libschewm (dynamic-link "libschewm")) + +(define (int-as-bool i) + (not (eq? 0 i))) + +(define (schewm-func return-type name args) + (pointer->procedure + return-type + (dynamic-func name libschewm) + args)) + +(define (wm-init) + (let ((c/wm-init + (schewm-func int "wm_init" '()))) + (int-as-bool (c/wm-init)))) + +(define (wm-quit s) + (let ((c/wm-quit + (schewm-func void "wm_quit" (list '*)))) + (c/wm-quit (string->pointer s)))) |