]> git.jsancho.org Git - guile-assimp.git/blobdiff - src/low-level.scm
Add foreign functions and rename types
[guile-assimp.git] / src / low-level.scm
index 53bb39eb4d83906996191061a09dc729fc9f573d..7842acad035457579ea34c328777fd38028662d7 100644 (file)
        get-element-address
        sized-string
        wrap)
+
+
+;;; Function Mappers
+
+(define-syntax define-foreign-function
+  (lambda (x)
+    (syntax-case x (->)
+      ((_ ((foreign-lib name) arg-type ...) -> return-type)
+       (with-syntax ((name-string (datum->syntax x (symbol->string (syntax->datum #'name)))))
+         #'(define name
+            (pointer->procedure return-type
+                                (dynamic-func name-string foreign-lib)
+                                (list arg-type ...))))))))
+
+(export-syntax define-foreign-function)