diff bindings/sb-alien/library.lisp @ 646:368c8c72e723

Implement sb-adb:liszt in sb-alien bindings Don't forget to export the symbol from the package! Fixes audioDB Trac ticket #33
author mas01cr
date Tue, 13 Oct 2009 14:26:28 +0000
parents 1b3b303957bd
children a35ca2d5f238
line wrap: on
line diff
--- a/bindings/sb-alien/library.lisp	Tue Oct 13 14:26:27 2009 +0000
+++ b/bindings/sb-alien/library.lisp	Tue Oct 13 14:26:28 2009 +0000
@@ -137,5 +137,24 @@
 (define-int-checking-function %free-query-results (adb spec results)
   %%free-query-results)
 
+(define-alien-type adb-track-entry-t
+  (struct adbtrackentry
+    (nvectors (unsigned 32))
+    (key c-string)))
+
+(define-alien-type adb-liszt-results-t
+  (struct adblisztresults
+    (nresults (unsigned 32))
+    (entries (* adb-track-entry-t))))
+
+(define-alien-routine ("audiodb_liszt" %%liszt) (* adb-liszt-results-t)
+  (adb (* adb-t)))
+(define-pointer-checking-function %liszt (adb) %%liszt)
+(define-alien-routine ("audiodb_liszt_free_results" %%free-liszt-results) int
+  (adb (* adb-t))
+  (results (* adb-liszt-results-t)))
+(define-int-checking-function %free-liszt-results (adb results)
+  %%free-liszt-results)
+
 (define-alien-routine ("audiodb_close" %close) void
   (adb (* adb-t)))