comparison bindings/sb-alien/interface.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 9cda689dcc20
children 7e7ba87b5466
comparison
equal deleted inserted replaced
645:397e94f6db44 646:368c8c72e723
323 (setf (slot qdatum 'times) nil)) 323 (setf (slot qdatum 'times) nil))
324 (if (datum-power datum) 324 (if (datum-power datum)
325 (setf (slot qdatum 'power) (sb-sys:vector-sap (sb-ext:array-storage-vector (datum-times datum)))) 325 (setf (slot qdatum 'power) (sb-sys:vector-sap (sb-ext:array-storage-vector (datum-times datum))))
326 (setf (slot qdatum 'power) nil)))) 326 (setf (slot qdatum 'power) nil))))
327 327
328 (defgeneric liszt (adb))
329 (defmethod liszt ((db adb))
330 (let ((results (%liszt (slot-value db 'alien))))
331 (unwind-protect
332 (loop for i below (slot results 'nresults)
333 with entries = (slot results 'entries)
334 for entry = (deref entries i)
335 collect (cons (slot entry 'key) (slot entry 'nvectors)))
336 (%free-liszt-results (slot-value db 'alien) results))))
337
328 #+test 338 #+test
329 (sb-adb:with-adb (db "/home/csr21/tmp/omras2-workshop/9.adb") 339 (sb-adb:with-adb (db "/home/csr21/tmp/omras2-workshop/9.adb")
330 (sb-adb:query "KSA_CHARM_337" db :exhaustivep t :sequence-length 30 340 (sb-adb:query "KSA_CHARM_337" db :exhaustivep t :sequence-length 30
331 :accumulation :per-track :distance :euclidean :npoints 1 :ntracks 20)) 341 :accumulation :per-track :distance :euclidean :npoints 1 :ntracks 20))
332 342