;;;;
;;;; source file of the GNU LilyPond music typesetter
;;;;
-;;;; (c) 2004--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
;; todo: figure out how to make module,
;; without breaking nested ly scopes
(ly:interpret-music-expression (make-non-relative-music music) global)
context-list))
-(define noticed '())
-;; todo: junk this, extract $defaultlayout from parser instead
-(define part-combine-listener '())
-
-; UGH - should pass noticed setter to part-combine-listener
-(define-safe-public (set-part-combine-listener x)
- (set! part-combine-listener x))
-
-(define-public (notice-the-events-for-pc context lst)
- "add CONTEXT-ID, EVENT list to NOTICED variable."
-
- (set! noticed (acons (ly:context-id context) lst noticed)))
-
-(define-public (make-part-combine-music music-list)
+(define-public (make-part-combine-music parser music-list)
(let* ((m (make-music 'PartCombineMusic))
- (m1 (make-non-relative-music (context-spec-music (first music-list) 'Voice "one")))
- (m2 (make-non-relative-music (context-spec-music (second music-list) 'Voice "two")))
- (evs2 (recording-group-emulate m2 part-combine-listener))
- (evs1 (recording-group-emulate m1 part-combine-listener)))
+ (m1 (make-non-relative-music (context-spec-music (first music-list) 'Voice "one")))
+ (m2 (make-non-relative-music (context-spec-music (second music-list) 'Voice "two")))
+ (listener (ly:parser-lookup parser 'partCombineListener))
+ (evs2 (recording-group-emulate m2 listener))
+ (evs1 (recording-group-emulate m1 listener)))
+
(set! (ly:music-property m 'elements) (list m1 m2))
(set! (ly:music-property m 'split-list)
- (determine-split-list (reverse! (cdr (assoc "one" evs1)) '())
- (reverse! (cdr (assoc "two" evs2)) '())))
+ (if (and (assoc "one" evs1) (assoc "two" evs2))
+ (determine-split-list (reverse! (cdr (assoc "one" evs1)) '())
+ (reverse! (cdr (assoc "two" evs2)) '()))
+ '() ))
m))
(define-public (determine-split-list evl1 evl2)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define-public (add-quotable name mus)
- (set! noticed '())
+(define-public (add-quotable parser name mus)
(let* ((tab (eval 'musicQuotes (current-module)))
(context-list (recording-group-emulate (context-spec-music mus 'Voice)
- part-combine-listener)))
+ (ly:parser-lookup parser 'partCombineListener))))
(if (pair? context-list)
(hash-set! tab name
;; cdr : skip name string