Mercurial > hg > amuse
view implementations/midi-db/methods.lisp @ 314:937334f2bcd2
Add generic ID constructor to midi-db.
Ignore-this: 91554466a43d64ee99fbf840985d7c6b
darcs-hash:20100414185257-16a00-dcfa03eaa450cfdce842c64c3f49214c5c938181.gz
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Wed, 14 Apr 2010 19:52:57 +0100 |
parents | f99fd6a7bbfc |
children | 2138ea478adb |
line wrap: on
line source
(cl:in-package #:amuse-midi-db) ;;;===================================================================== ;;; Specialized constructors ;;;===================================================================== (defmethod make-composition-identifier ((package (eql *package*)) composition-id) (make-midi-db-composition-identifier composition-id)) ;;;===================================================================== ;;; Specialized database-admin methods ;;;===================================================================== (defmethod list-collections ((package (eql *package*)) &key compositions (stream *standard-output*)) "FIXME: better formatting." (let ((collection-rows (%get-all-collection-headers))) (flet ((print-separator (&optional (columns 77)) (format stream "~% ~A" (make-sequence 'string columns :initial-element #\-)))) (loop for collection-row in collection-rows do (destructuring-bind (collection-id collection-name description) collection-row (format stream "~%Collection-id: ~A~% Name: ~A~% Description: ~A~%" collection-id collection-name description) (when compositions (list-compositions package :collection-identifier (make-midi-db-collection-identifier collection-id)))) do (print-separator))))) (defmethod list-compositions ((package (eql *package*)) &key collection-identifier (stream *standard-output*)) (let ((composition-headers (if collection-identifier (%get-all-collection-composition-headers collection-identifier) (%get-all-composition-headers)))) (loop for composition-header in composition-headers do (destructuring-bind (collection-id filename timebase start duration owner version creation-timestamp deletion-timestamp) composition-header (format stream "~%Collection-id: ~A filename: ~A timebase: ~A start: ~A duration: ~A owner: ~A version: ~A created: ~A deleted: ~A~%" collection-id filename timebase start duration owner version creation-timestamp deletion-timestamp)))))