Update of /project/gsharp/cvsroot/gsharp In directory common-lisp.net:/tmp/cvs-serv19750
Modified Files: buffer.lisp gui.lisp packages.lisp Log Message: Put back some more constructors.
Two things need to be fixed ultimately:
* Clefs should not be named objects. Instead, the exact type should probably be identified by subclassing
* There is not compelling reason for bars to be subclassed. The distinction between melody and lyrics (and percussion, ultimately) is enough to enforce at the level of the layer.
Date: Wed Nov 2 20:28:09 2005 Author: rstrandh
Index: gsharp/buffer.lisp diff -u gsharp/buffer.lisp:1.21 gsharp/buffer.lisp:1.22 --- gsharp/buffer.lisp:1.21 Wed Nov 2 06:01:10 2005 +++ gsharp/buffer.lisp Wed Nov 2 20:28:08 2005 @@ -406,6 +406,19 @@ (setf text (make-array length :adjustable t :element-type 'fixnum :fill-pointer length :initial-contents text))))))
+(defun make-lyrics-element (staff &rest args + &key (notehead :filled) (lbeams 0) (rbeams 0) + (dots 0) (xoffset 0)) + (declare (type staff staff) + (type (member :whole :half :filled) notehead) + (type (integer 0 5) lbeams) + (type (integer 0 5) rbeams) + (type (integer 0 3) dots) + (type number xoffset) + (ignore notehead lbeams rbeams dots xoffset)) + (apply #'make-instance 'lyrics-element + :staff staff args)) + (defmethod print-object :after ((elem lyrics-element) stream) (with-slots (staff text) elem (format stream ":staff ~W :text ~W " staff text))) @@ -500,6 +513,9 @@ (defclass melody-bar (bar) ((print-character :allocation :class :initform #|)))
+(defun make-melody-bar () + (make-instance 'melody-bar)) + (defun read-melody-bar-v3 (stream char n) (declare (ignore char n)) (apply #'make-instance 'melody-bar (read-delimited-list #] stream t))) @@ -511,6 +527,9 @@ (defclass lyrics-bar (bar) ((print-character :allocation :class :initform #\C)))
+(defun make-lyrics-bar () + (make-instance 'lyrics-bar)) + (defun read-lyrics-bar-v3 (stream char n) (declare (ignore char n)) (apply #'make-instance 'lyrics-bar (read-delimited-list #] stream t))) @@ -594,7 +613,7 @@ (setf bars (delete bar bars :test #'eq)) (unless bars ;; make sure there is one bar left - (add-bar (make-instance 'melody-bar) slice 0))) + (add-bar (make-melody-bar) slice 0))) (setf slice nil)))
(defmethod remove-bar ((bar lyrics-bar)) @@ -604,7 +623,7 @@ (setf bars (delete bar bars :test #'eq)) (unless bars ;; make sure there is one bar left - (add-bar (make-instance 'lyrics-bar) slice 0))) + (add-bar (make-lyrics-bar) slice 0))) (setf slice nil)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -663,7 +682,7 @@ (defmethod make-layer (name (initial-staff fiveline-staff)) (flet ((make-initialized-slice () (let ((slice (make-instance 'slice))) - (add-bar (make-instance 'melody-bar) slice 0) + (add-bar (make-melody-bar) slice 0) slice))) (let* ((head (make-initialized-slice)) (body (make-initialized-slice)) @@ -692,7 +711,7 @@ (defmethod make-layer (name (initial-staff lyrics-staff)) (flet ((make-initialized-slice () (let ((slice (make-instance 'slice))) - (add-bar (make-instance 'lyrics-bar) slice 0) + (add-bar (make-lyrics-bar) slice 0) slice))) (let* ((head (make-initialized-slice)) (body (make-initialized-slice))
Index: gsharp/gui.lisp diff -u gsharp/gui.lisp:1.37 gsharp/gui.lisp:1.38 --- gsharp/gui.lisp:1.37 Wed Nov 2 06:01:10 2005 +++ gsharp/gui.lisp Wed Nov 2 20:28:09 2005 @@ -1118,12 +1118,11 @@ (defun insert-lyrics-element () (let* ((state (input-state *application-frame*)) (cursor (cursor *application-frame*)) - (element (make-instance 'lyrics-element + (element (make-lyrics-element (car (staves (layer (cursor *application-frame*)))) :rbeams (if (eq (notehead state) :filled) (rbeams state) 0) :lbeams (if (eq (notehead state) :filled) (lbeams state) 0) :dots (dots state) - :notehead (notehead state) - :staff (car (staves (layer (cursor *application-frame*))))))) + :notehead (notehead state)))) (insert-element element cursor) (forward-element cursor) element))
Index: gsharp/packages.lisp diff -u gsharp/packages.lisp:1.23 gsharp/packages.lisp:1.24 --- gsharp/packages.lisp:1.23 Wed Nov 2 06:01:10 2005 +++ gsharp/packages.lisp Wed Nov 2 20:28:09 2005 @@ -51,7 +51,8 @@ #:slice #:elements #:nb-elements #:elementno #:add-element #:remove-element #:bar #:make-bar - #:melody-bar #:lyrics-bar + #:melody-bar #:make-melody-bar + #:lyrics-bar #:make-lyrics-bar #:layer #:lyrics-layer #:melody-layer #:bars #:nb-bars #:barno #:add-bar #:remove-bar #:slice