CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/07/13 18:22:35

Modified files:
        .              : ChangeLog 
        lily           : accidental-engraver.cc auto-beam-engraver.cc 
                         auto-change-iterator.cc bar-check-iterator.cc 
                         beam-engraver.cc beam-performer.cc 
                         chord-name-engraver.cc cluster-engraver.cc 
                         coherent-ligature-engraver.cc 
                         completion-note-heads-engraver.cc context.cc 
                         custos-engraver.cc drum-note-engraver.cc 
                         drum-note-performer.cc dynamic-performer.cc 
                         event-chord-iterator.cc fingering-engraver.cc 
                         forbid-break-engraver.cc global-context.cc 
                         grace-music.cc gregorian-ligature-engraver.cc 
                         grid-point-engraver.cc grob-pitch-tuple.cc 
                         grob.cc key-engraver.cc key-performer.cc 
                         lyric-combine-music-iterator.cc 
                         lyric-combine-music.cc lyric-performer.cc 
                         mensural-ligature-engraver.cc music-scheme.cc 
                         music.cc new-lyric-combine-music-iterator.cc 
                         note-head.cc note-heads-engraver.cc 
                         note-performer.cc parser.yy 
                         part-combine-iterator.cc 
                         piano-pedal-performer.cc program-option.cc 
                         quote-iterator.cc rest-engraver.cc 
                         slur-performer.cc span-dynamic-performer.cc 
                         stem-engraver.cc swallow-perf.cc 
                         tab-note-heads-engraver.cc tempo-performer.cc 
                         tie-performer.cc type-swallow-translator.cc 
        lily/include   : engraver.hh event-chord-iterator.hh 
                         ligature-engraver.hh main.hh minterval.hh 
                         music.hh performer.hh program-option.hh 
        scm            : define-music-properties.scm 
                         define-music-types.scm lily.scm 
                         output-socket.scm safe-lily.scm 
Removed files:
        lily           : event.cc music-constructor.cc 
        lily/include   : event.hh 

Log message:
        * lily/include/event.hh: remove file.
        
        * lily/parser.yy (Lily_lexer): check EVENT_IDENTIFIER using 'event
        in 'types property.
        
        * lily/music.cc (duration_length_callback): new function.
        
        * lily/event.cc: remove file.
        
        * lily/music-constructor.cc: remove file.
        
        * lily/music-scheme.cc (LY_DEFINE): rename to ly:make-music
        
        * lily/context.cc (get_grob_key): nop if use_object_keys not set.
        (get_context_key): idem.
        
        * scm/lily.scm (lambda): new option object-keys (default to #f)
        
        * ps/music-drawing-routines.ps: remove draw_beam.
        
        * lily/lookup.cc (beam): use round_filled_polygon() for beam.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3874&tr2=1.3875&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/accidental-engraver.cc.diff?tr1=1.100&tr2=1.101&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/auto-beam-engraver.cc.diff?tr1=1.145&tr2=1.146&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/auto-change-iterator.cc.diff?tr1=1.56&tr2=1.57&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/bar-check-iterator.cc.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/beam-engraver.cc.diff?tr1=1.119&tr2=1.120&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/beam-performer.cc.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/chord-name-engraver.cc.diff?tr1=1.89&tr2=1.90&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/cluster-engraver.cc.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/coherent-ligature-engraver.cc.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/completion-note-heads-engraver.cc.diff?tr1=1.49&tr2=1.50&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/context.cc.diff?tr1=1.56&tr2=1.57&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/custos-engraver.cc.diff?tr1=1.42&tr2=1.43&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/drum-note-engraver.cc.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/drum-note-performer.cc.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/dynamic-performer.cc.diff?tr1=1.41&tr2=1.42&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/event-chord-iterator.cc.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/fingering-engraver.cc.diff?tr1=1.43&tr2=1.44&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/forbid-break-engraver.cc.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/global-context.cc.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/grace-music.cc.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/gregorian-ligature-engraver.cc.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/grid-point-engraver.cc.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/grob-pitch-tuple.cc.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/grob.cc.diff?tr1=1.132&tr2=1.133&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/key-engraver.cc.diff?tr1=1.110&tr2=1.111&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/key-performer.cc.diff?tr1=1.63&tr2=1.64&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/lyric-combine-music-iterator.cc.diff?tr1=1.49&tr2=1.50&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/lyric-combine-music.cc.diff?tr1=1.37&tr2=1.38&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/lyric-performer.cc.diff?tr1=1.44&tr2=1.45&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/mensural-ligature-engraver.cc.diff?tr1=1.43&tr2=1.44&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/music-scheme.cc.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/music.cc.diff?tr1=1.136&tr2=1.137&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/new-lyric-combine-music-iterator.cc.diff?tr1=1.33&tr2=1.34&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/note-head.cc.diff?tr1=1.141&tr2=1.142&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/note-heads-engraver.cc.diff?tr1=1.101&tr2=1.102&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/note-performer.cc.diff?tr1=1.60&tr2=1.61&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/parser.yy.diff?tr1=1.477&tr2=1.478&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/part-combine-iterator.cc.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/piano-pedal-performer.cc.diff?tr1=1.37&tr2=1.38&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/program-option.cc.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/quote-iterator.cc.diff?tr1=1.38&tr2=1.39&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/rest-engraver.cc.diff?tr1=1.65&tr2=1.66&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/slur-performer.cc.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/span-dynamic-performer.cc.diff?tr1=1.35&tr2=1.36&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/stem-engraver.cc.diff?tr1=1.104&tr2=1.105&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/swallow-perf.cc.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/tab-note-heads-engraver.cc.diff?tr1=1.44&tr2=1.45&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/tempo-performer.cc.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/tie-performer.cc.diff?tr1=1.51&tr2=1.52&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/type-swallow-translator.cc.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/engraver.hh.diff?tr1=1.52&tr2=1.53&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/event-chord-iterator.hh.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/ligature-engraver.hh.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/main.hh.diff?tr1=1.82&tr2=1.83&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/minterval.hh.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/music.hh.diff?tr1=1.73&tr2=1.74&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/performer.hh.diff?tr1=1.36&tr2=1.37&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/include/program-option.hh.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-music-properties.scm.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-music-types.scm.diff?tr1=1.57&tr2=1.58&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily.scm.diff?tr1=1.369&tr2=1.370&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/output-socket.scm.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/safe-lily.scm.diff?tr1=1.33&tr2=1.34&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.3874 lilypond/ChangeLog:1.3875
--- lilypond/ChangeLog:1.3874   Wed Jul 13 14:40:01 2005
+++ lilypond/ChangeLog  Wed Jul 13 18:22:34 2005
@@ -1,5 +1,25 @@
 2005-07-13  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
 
+       * lily/include/event.hh: remove file.
+
+       * lily/include/music-constructor.hh: remove file.
+
+       * lily/parser.yy (Lily_lexer): check EVENT_IDENTIFIER using 'event
+       in 'types property.
+
+       * lily/music.cc (duration_length_callback): new function.
+
+       * lily/event.cc: remove file.
+
+       * lily/music-constructor.cc: remove file.
+
+       * lily/music-scheme.cc (LY_DEFINE): rename to ly:make-music
+
+       * lily/context.cc (get_grob_key): nop if use_object_keys not set.
+       (get_context_key): idem.
+
+       * scm/lily.scm (lambda): new option object-keys (default to #f)
+
        * scm/output-svg.scm (utf-8-string): rename  from utf8-string.
 
        * scm/output-gnome.scm: remove beam routine.
Index: lilypond/lily/accidental-engraver.cc
diff -u lilypond/lily/accidental-engraver.cc:1.100 
lilypond/lily/accidental-engraver.cc:1.101
--- lilypond/lily/accidental-engraver.cc:1.100  Mon Jul 11 11:51:42 2005
+++ lilypond/lily/accidental-engraver.cc        Wed Jul 13 18:22:34 2005
@@ -16,6 +16,8 @@
 #include "side-position-interface.hh"
 #include "tie.hh"
 #include "warn.hh"
+#include "music.hh"
+#include "pitch.hh"
 
 class Accidental_entry
 {
Index: lilypond/lily/auto-beam-engraver.cc
diff -u lilypond/lily/auto-beam-engraver.cc:1.145 
lilypond/lily/auto-beam-engraver.cc:1.146
--- lilypond/lily/auto-beam-engraver.cc:1.145   Fri Jun  3 19:47:19 2005
+++ lilypond/lily/auto-beam-engraver.cc Wed Jul 13 18:22:34 2005
@@ -16,6 +16,8 @@
 #include "item.hh"
 #include "spanner.hh"
 #include "context.hh"
+#include "duration.hh"
+
 
 class Auto_beam_engraver : public Engraver
 {
Index: lilypond/lily/auto-change-iterator.cc
diff -u lilypond/lily/auto-change-iterator.cc:1.56 
lilypond/lily/auto-change-iterator.cc:1.57
--- lilypond/lily/auto-change-iterator.cc:1.56  Wed May  4 10:11:32 2005
+++ lilypond/lily/auto-change-iterator.cc       Wed Jul 13 18:22:34 2005
@@ -7,7 +7,6 @@
 */
 
 #include "context.hh"
-#include "event.hh"
 #include "music-wrapper-iterator.hh"
 #include "direction.hh"
 
Index: lilypond/lily/bar-check-iterator.cc
diff -u lilypond/lily/bar-check-iterator.cc:1.24 
lilypond/lily/bar-check-iterator.cc:1.25
--- lilypond/lily/bar-check-iterator.cc:1.24    Mon Apr  4 23:36:48 2005
+++ lilypond/lily/bar-check-iterator.cc Wed Jul 13 18:22:34 2005
@@ -7,8 +7,9 @@
 */
 
 #include "simple-music-iterator.hh"
-#include "event.hh"
+#include "music.hh"
 #include "context.hh"
+#include "input.hh"
 
 /*
   Check bar checks. We do this outside the engravers so that you can
Index: lilypond/lily/beam-engraver.cc
diff -u lilypond/lily/beam-engraver.cc:1.119 
lilypond/lily/beam-engraver.cc:1.120
--- lilypond/lily/beam-engraver.cc:1.119        Sun May  8 23:30:50 2005
+++ lilypond/lily/beam-engraver.cc      Wed Jul 13 18:22:34 2005
@@ -17,6 +17,7 @@
 #include "item.hh"
 #include "spanner.hh"
 #include "context.hh"
+#include "duration.hh"
 
 class Beam_engraver : public Engraver
 {
Index: lilypond/lily/beam-performer.cc
diff -u lilypond/lily/beam-performer.cc:1.16 
lilypond/lily/beam-performer.cc:1.17
--- lilypond/lily/beam-performer.cc:1.16        Wed Mar 16 19:19:15 2005
+++ lilypond/lily/beam-performer.cc     Wed Jul 13 18:22:34 2005
@@ -11,6 +11,7 @@
 #include "audio-column.hh"
 #include "global-context.hh"
 #include "warn.hh"
+#include "music.hh"
 
 class Beam_performer : public Performer
 {
Index: lilypond/lily/chord-name-engraver.cc
diff -u lilypond/lily/chord-name-engraver.cc:1.89 
lilypond/lily/chord-name-engraver.cc:1.90
--- lilypond/lily/chord-name-engraver.cc:1.89   Mon Jul 11 11:51:42 2005
+++ lilypond/lily/chord-name-engraver.cc        Wed Jul 13 18:22:34 2005
@@ -16,6 +16,7 @@
 #include "protected-scm.hh"
 #include "context.hh"
 #include "warn.hh"
+#include "pitch.hh"
 
 class Chord_name_engraver : public Engraver
 {
Index: lilypond/lily/cluster-engraver.cc
diff -u lilypond/lily/cluster-engraver.cc:1.30 
lilypond/lily/cluster-engraver.cc:1.31
--- lilypond/lily/cluster-engraver.cc:1.30      Sun May  8 23:30:50 2005
+++ lilypond/lily/cluster-engraver.cc   Wed Jul 13 18:22:34 2005
@@ -11,6 +11,7 @@
 #include "note-head.hh"
 #include "note-column.hh"
 #include "group-interface.hh"
+#include "pitch.hh"
 
 class Cluster_spanner_engraver : public Engraver
 {
Index: lilypond/lily/coherent-ligature-engraver.cc
diff -u lilypond/lily/coherent-ligature-engraver.cc:1.27 
lilypond/lily/coherent-ligature-engraver.cc:1.28
--- lilypond/lily/coherent-ligature-engraver.cc:1.27    Sat Jul  9 22:35:38 2005
+++ lilypond/lily/coherent-ligature-engraver.cc Wed Jul 13 18:22:34 2005
@@ -12,6 +12,7 @@
 #include "staff-symbol-referencer.hh"
 #include "spanner.hh"
 #include "paper-column.hh"
+#include "pitch.hh"
 
 /*
  * This abstract class serves as common superclass for all ligature
Index: lilypond/lily/completion-note-heads-engraver.cc
diff -u lilypond/lily/completion-note-heads-engraver.cc:1.49 
lilypond/lily/completion-note-heads-engraver.cc:1.50
--- lilypond/lily/completion-note-heads-engraver.cc:1.49        Sat Apr 30 
23:43:03 2005
+++ lilypond/lily/completion-note-heads-engraver.cc     Wed Jul 13 18:22:34 2005
@@ -8,7 +8,7 @@
 
 #include "rhythmic-head.hh"
 #include "output-def.hh"
-#include "event.hh"
+#include "music.hh"
 #include "dots.hh"
 #include "dot-column.hh"
 #include "staff-symbol-referencer.hh"
@@ -18,6 +18,10 @@
 #include "spanner.hh"
 #include "tie.hh"
 #include "global-context.hh"
+#include "duration.hh"
+#include "pitch.hh"
+
+
 
 /*
   TODO: make matching rest engraver.
Index: lilypond/lily/context.cc
diff -u lilypond/lily/context.cc:1.56 lilypond/lily/context.cc:1.57
--- lilypond/lily/context.cc:1.56       Sun May  8 23:17:49 2005
+++ lilypond/lily/context.cc    Wed Jul 13 18:22:34 2005
@@ -8,6 +8,7 @@
 
 #include "context.hh"
 
+#include "program-option.hh"
 #include "context-def.hh"
 #include "ly-smobs.icc"
 #include "main.hh"
@@ -97,7 +98,9 @@
   smobify_self ();
   properties_scm_ = (new Scheme_hash_table)->self_scm ();
   scm_gc_unprotect_object (properties_scm_);
-  scm_gc_unprotect_object (key_->self_scm ());
+
+  if (key_)
+    scm_gc_unprotect_object (key_->self_scm ());
 }
 
 /* TODO:  this shares code with find_create_context ().  */
@@ -234,6 +237,9 @@
 Object_key const *
 Context::get_context_key (String type, String id)
 {
+  if (!use_object_keys)
+    return 0;
+      
   String now_key = type + "@" + id;
 
   int disambiguation_count = 0;
@@ -253,6 +259,9 @@
 Object_key const *
 Context::get_grob_key (String name)
 {
+  if (!use_object_keys)
+    return 0;
+  
   int disambiguation_count = 0;
   if (grob_counts_.find (name) != grob_counts_.end ())
     {
@@ -494,7 +503,9 @@
 Context::mark_smob (SCM sm)
 {
   Context *me = (Context *) SCM_CELL_WORD_1 (sm);
-  scm_gc_mark (me->key_->self_scm ());
+  if (me->key_)
+    scm_gc_mark (me->key_->self_scm ());
+  
   scm_gc_mark (me->context_list_);
   scm_gc_mark (me->aliases_);
   scm_gc_mark (me->definition_);
Index: lilypond/lily/custos-engraver.cc
diff -u lilypond/lily/custos-engraver.cc:1.42 
lilypond/lily/custos-engraver.cc:1.43
--- lilypond/lily/custos-engraver.cc:1.42       Sun May  8 23:30:50 2005
+++ lilypond/lily/custos-engraver.cc    Wed Jul 13 18:22:34 2005
@@ -13,6 +13,8 @@
 #include "note-head.hh"
 #include "staff-symbol-referencer.hh"
 #include "warn.hh"
+#include "pitch.hh"
+
 
 /*
  * This class implements an engraver for custos symbols.
Index: lilypond/lily/drum-note-engraver.cc
diff -u lilypond/lily/drum-note-engraver.cc:1.29 
lilypond/lily/drum-note-engraver.cc:1.30
--- lilypond/lily/drum-note-engraver.cc:1.29    Sun May  8 23:30:50 2005
+++ lilypond/lily/drum-note-engraver.cc Wed Jul 13 18:22:34 2005
@@ -13,6 +13,7 @@
 #include "script-interface.hh"
 #include "stem.hh"
 #include "note-column.hh"
+#include "duration.hh"
 
 class Drum_notes_engraver : public Engraver
 {
Index: lilypond/lily/drum-note-performer.cc
diff -u lilypond/lily/drum-note-performer.cc:1.17 
lilypond/lily/drum-note-performer.cc:1.18
--- lilypond/lily/drum-note-performer.cc:1.17   Thu Mar 10 14:36:13 2005
+++ lilypond/lily/drum-note-performer.cc        Wed Jul 13 18:22:34 2005
@@ -11,6 +11,8 @@
 #include "audio-column.hh"
 #include "global-context.hh"
 #include "warn.hh"
+#include "pitch.hh"
+#include "music.hh"
 
 class Drum_note_performer : public Performer
 {
Index: lilypond/lily/dynamic-performer.cc
diff -u lilypond/lily/dynamic-performer.cc:1.41 
lilypond/lily/dynamic-performer.cc:1.42
--- lilypond/lily/dynamic-performer.cc:1.41     Mon Jul 11 11:51:42 2005
+++ lilypond/lily/dynamic-performer.cc  Wed Jul 13 18:22:34 2005
@@ -7,7 +7,9 @@
 */
 
 #include "performer.hh"
+
 #include "audio-item.hh"
+#include "music.hh"
 
 /*
   TODO:
Index: lilypond/lily/event-chord-iterator.cc
diff -u lilypond/lily/event-chord-iterator.cc:1.22 
lilypond/lily/event-chord-iterator.cc:1.23
--- lilypond/lily/event-chord-iterator.cc:1.22  Thu May 26 00:09:54 2005
+++ lilypond/lily/event-chord-iterator.cc       Wed Jul 13 18:22:34 2005
@@ -10,7 +10,10 @@
 
 #include "context.hh"
 #include "warn.hh"
-#include "event.hh"
+#include "music.hh"
+#include "input.hh"
+#include "pitch.hh"
+#include "duration.hh"
 
 Event_chord_iterator::Event_chord_iterator ()
 {
@@ -32,12 +35,6 @@
 {
   Simple_music_iterator::construct_children ();
   get_bottom_context ();
-}
-
-Event_chord *
-Event_chord_iterator::get_elt () const
-{
-  return (Event_chord *) get_music ();
 }
 
 void
Index: lilypond/lily/fingering-engraver.cc
diff -u lilypond/lily/fingering-engraver.cc:1.43 
lilypond/lily/fingering-engraver.cc:1.44
--- lilypond/lily/fingering-engraver.cc:1.43    Sun May  8 23:30:50 2005
+++ lilypond/lily/fingering-engraver.cc Wed Jul 13 18:22:34 2005
@@ -11,6 +11,8 @@
 #include "stem.hh"
 #include "rhythmic-head.hh"
 #include "self-alignment-interface.hh"
+#include "pitch.hh"
+
 
 class Fingering_engraver : public Engraver
 {
Index: lilypond/lily/forbid-break-engraver.cc
diff -u lilypond/lily/forbid-break-engraver.cc:1.18 
lilypond/lily/forbid-break-engraver.cc:1.19
--- lilypond/lily/forbid-break-engraver.cc:1.18 Thu Mar 10 14:36:13 2005
+++ lilypond/lily/forbid-break-engraver.cc      Wed Jul 13 18:22:34 2005
@@ -8,6 +8,10 @@
 #include "rhythmic-head.hh"
 #include "grob.hh"
 #include "score-engraver.hh"
+#include "input.hh"
+#include "pitch.hh"
+#include "duration.hh"
+#include "moment.hh"
 
 class Forbid_line_break_engraver : public Engraver
 {
Index: lilypond/lily/global-context.cc
diff -u lilypond/lily/global-context.cc:1.32 
lilypond/lily/global-context.cc:1.33
--- lilypond/lily/global-context.cc:1.32        Tue May 31 15:25:26 2005
+++ lilypond/lily/global-context.cc     Wed Jul 13 18:22:34 2005
@@ -11,7 +11,7 @@
 #include <cstdio>
 
 #include "warn.hh"
-#include "event.hh"
+#include "music.hh"
 #include "music-iterator.hh"
 #include "score-context.hh"
 #include "context-def.hh"
Index: lilypond/lily/grace-music.cc
diff -u lilypond/lily/grace-music.cc:1.29 lilypond/lily/grace-music.cc:1.30
--- lilypond/lily/grace-music.cc:1.29   Thu Mar 10 14:36:13 2005
+++ lilypond/lily/grace-music.cc        Wed Jul 13 18:22:34 2005
@@ -8,6 +8,8 @@
 
 #include "music.hh"
 #include "music-wrapper.hh"
+#include "moment.hh"
+
 
 class Grace_music
 {
Index: lilypond/lily/gregorian-ligature-engraver.cc
diff -u lilypond/lily/gregorian-ligature-engraver.cc:1.27 
lilypond/lily/gregorian-ligature-engraver.cc:1.28
--- lilypond/lily/gregorian-ligature-engraver.cc:1.27   Sun May  8 23:30:50 2005
+++ lilypond/lily/gregorian-ligature-engraver.cc        Wed Jul 13 18:22:34 2005
@@ -13,6 +13,7 @@
 #include "staff-symbol-referencer.hh"
 #include "spanner.hh"
 #include "paper-column.hh"
+#include "pitch.hh"
 
 /*
  * This abstract class is the common superclass for all ligature
Index: lilypond/lily/grid-point-engraver.cc
diff -u lilypond/lily/grid-point-engraver.cc:1.2 
lilypond/lily/grid-point-engraver.cc:1.3
--- lilypond/lily/grid-point-engraver.cc:1.2    Sat Apr 30 23:43:03 2005
+++ lilypond/lily/grid-point-engraver.cc        Wed Jul 13 18:22:34 2005
@@ -9,6 +9,7 @@
 
 #include "engraver.hh"
 #include "item.hh"
+#include "moment.hh"
 
 class Grid_point_engraver : public Engraver
 {
Index: lilypond/lily/grob-pitch-tuple.cc
diff -u lilypond/lily/grob-pitch-tuple.cc:1.17 
lilypond/lily/grob-pitch-tuple.cc:1.18
--- lilypond/lily/grob-pitch-tuple.cc:1.17      Wed Mar 16 19:19:15 2005
+++ lilypond/lily/grob-pitch-tuple.cc   Wed Jul 13 18:22:34 2005
@@ -8,7 +8,7 @@
 
 #include "grob-pitch-tuple.hh"
 
-#include "event.hh"
+#include "music.hh"
 
 int compare (Grob_pitch_tuple const &a, Grob_pitch_tuple const &b)
 {
Index: lilypond/lily/grob.cc
diff -u lilypond/lily/grob.cc:1.132 lilypond/lily/grob.cc:1.133
--- lilypond/lily/grob.cc:1.132 Mon Jul 11 11:51:42 2005
+++ lilypond/lily/grob.cc       Wed Jul 13 18:22:34 2005
@@ -63,7 +63,8 @@
   /*
     We always get a new key object for a new grob.
   */
-  scm_gc_unprotect_object (key_->self_scm ());
+  if (key_)
+    scm_gc_unprotect_object (key_->self_scm ());
   SCM meta = get_property ("meta");
   if (scm_is_pair (meta))
     {
@@ -123,7 +124,7 @@
 Grob::Grob (Grob const &s, int copy_index)
   : dim_cache_ (s.dim_cache_)
 {
-  key_ = new Copied_key (s.key_, copy_index);
+  key_ = (use_object_keys) ? new Copied_key (s.key_, copy_index) : 0;
   original_ = (Grob *) & s;
   self_scm_ = SCM_EOL;
 
@@ -645,7 +646,9 @@
 {
   Grob *s = (Grob *) SCM_CELL_WORD_1 (ses);
   scm_gc_mark (s->immutable_property_alist_);
-  scm_gc_mark (s->key_->self_scm ());
+
+  if (s->key_)
+    scm_gc_mark (s->key_->self_scm ());
   for (int a = 0; a < 2; a++)
     {
       scm_gc_mark (s->dim_cache_[a].offset_callbacks_);
Index: lilypond/lily/include/engraver.hh
diff -u lilypond/lily/include/engraver.hh:1.52 
lilypond/lily/include/engraver.hh:1.53
--- lilypond/lily/include/engraver.hh:1.52      Wed Mar 16 19:19:15 2005
+++ lilypond/lily/include/engraver.hh   Wed Jul 13 18:22:34 2005
@@ -9,7 +9,7 @@
 #ifndef ENGRAVER_HH
 #define ENGRAVER_HH
 
-#include "event.hh"
+#include "music.hh"
 #include "grob-info.hh"
 #include "translator.hh"
 
Index: lilypond/lily/include/event-chord-iterator.hh
diff -u lilypond/lily/include/event-chord-iterator.hh:1.9 
lilypond/lily/include/event-chord-iterator.hh:1.10
--- lilypond/lily/include/event-chord-iterator.hh:1.9   Thu May 26 00:09:54 2005
+++ lilypond/lily/include/event-chord-iterator.hh       Wed Jul 13 18:22:34 2005
@@ -16,7 +16,6 @@
 */
 class Event_chord_iterator : public Simple_music_iterator
 {
-  Event_chord *get_elt () const;
   /**
      Find a bottom notation context to deliver events to.
   */
Index: lilypond/lily/include/ligature-engraver.hh
diff -u lilypond/lily/include/ligature-engraver.hh:1.12 
lilypond/lily/include/ligature-engraver.hh:1.13
--- lilypond/lily/include/ligature-engraver.hh:1.12     Thu Mar 10 14:36:12 2005
+++ lilypond/lily/include/ligature-engraver.hh  Wed Jul 13 18:22:34 2005
@@ -9,6 +9,8 @@
 #define LIGATURE_ENGRAVER_HH
 
 #include "engraver.hh"
+#include "moment.hh"
+
 
 /*
  * FIXME: Spanner *create_ligature_spanner () and virtual void
Index: lilypond/lily/include/main.hh
diff -u lilypond/lily/include/main.hh:1.82 lilypond/lily/include/main.hh:1.83
--- lilypond/lily/include/main.hh:1.82  Fri Jul  1 11:22:42 2005
+++ lilypond/lily/include/main.hh       Wed Jul 13 18:22:34 2005
@@ -35,6 +35,7 @@
 extern bool is_TeX_format_global;
 extern bool point_and_click_global;
 extern String prefix_directory;
+extern bool use_object_keys;
 
 /*
   todo: collect in Output_option struct?
Index: lilypond/lily/include/minterval.hh
diff -u lilypond/lily/include/minterval.hh:1.12 
lilypond/lily/include/minterval.hh:1.13
--- lilypond/lily/include/minterval.hh:1.12     Thu Mar 10 14:36:12 2005
+++ lilypond/lily/include/minterval.hh  Wed Jul 13 18:22:34 2005
@@ -1,16 +1,18 @@
 /*
-  minterval.hh -- declare MInterval
+   -- declare MInterval
 
   source file of the GNU LilyPond music typesetter
 
   (c) 1997--2005 Han-Wen Nienhuys <[EMAIL PROTECTED]>
 */
 
-#ifndef MINTERVAL_HH
-#define MINTERVAL_HH
+#ifndef 
+#define 
 
 #include "moment.hh"
 
 typedef Interval_t<Moment> MInterval;
 
-#endif // MINTERVAL_HH
+#endif // 
+
+#error
Index: lilypond/lily/include/music.hh
diff -u lilypond/lily/include/music.hh:1.73 lilypond/lily/include/music.hh:1.74
--- lilypond/lily/include/music.hh:1.73 Fri Jul  8 22:16:28 2005
+++ lilypond/lily/include/music.hh      Wed Jul 13 18:22:34 2005
@@ -10,8 +10,9 @@
 #define MUSIC_HH
 
 #include "virtual-methods.hh"
-#include "minterval.hh"
-#include "music-constructor.hh"
+#include "smobs.hh"
+#include "moment.hh"
+#include "pitch.hh"
 
 #define is_mus_type(x) internal_is_music_type (ly_symbol2scm (x))
 
@@ -44,8 +45,10 @@
   /// Scale the music in time by #factor#.
   void compress (Moment factor);
 
+  DECLARE_SCHEME_CALLBACK (duration_length_callback, (SCM));
 protected:
   DECLARE_SMOBS (Music,);
+
   SCM immutable_property_alist_;
   SCM mutable_property_alist_;
 protected:
Index: lilypond/lily/include/performer.hh
diff -u lilypond/lily/include/performer.hh:1.36 
lilypond/lily/include/performer.hh:1.37
--- lilypond/lily/include/performer.hh:1.36     Thu Mar 10 14:36:12 2005
+++ lilypond/lily/include/performer.hh  Wed Jul 13 18:22:34 2005
@@ -9,7 +9,6 @@
 #define PERFORMER_HH
 
 #include "audio-element-info.hh"
-#include "event.hh"
 #include "grob-info.hh"
 #include "translator.hh"
 
Index: lilypond/lily/include/program-option.hh
diff -u lilypond/lily/include/program-option.hh:1.2 
lilypond/lily/include/program-option.hh:1.3
--- lilypond/lily/include/program-option.hh:1.2 Fri Jun 10 09:30:43 2005
+++ lilypond/lily/include/program-option.hh     Wed Jul 13 18:22:34 2005
@@ -16,7 +16,6 @@
 extern bool lily_1_8_relative;
 extern bool lily_1_8_compatibility_used;
 
-
 SCM ly_get_option (SCM);
 SCM ly_set_option (SCM, SCM);
 
Index: lilypond/lily/key-engraver.cc
diff -u lilypond/lily/key-engraver.cc:1.110 lilypond/lily/key-engraver.cc:1.111
--- lilypond/lily/key-engraver.cc:1.110 Mon Jul 11 11:51:42 2005
+++ lilypond/lily/key-engraver.cc       Wed Jul 13 18:22:34 2005
@@ -13,6 +13,7 @@
 #include "engraver.hh"
 #include "protected-scm.hh"
 #include "clef.hh"
+#include "pitch.hh"
 
 /*
   TODO: The representation  of key sigs is all fucked.
Index: lilypond/lily/key-performer.cc
diff -u lilypond/lily/key-performer.cc:1.63 lilypond/lily/key-performer.cc:1.64
--- lilypond/lily/key-performer.cc:1.63 Tue Apr  5 09:27:44 2005
+++ lilypond/lily/key-performer.cc      Wed Jul 13 18:22:34 2005
@@ -23,7 +23,7 @@
   virtual void stop_translation_timestep ();
 
 private:
-  Event *key_ev_;
+  Music *key_ev_;
   Audio_key *audio_;
 };
 
@@ -88,17 +88,12 @@
 bool
 Key_performer::try_music (Music *ev)
 {
-  if (Event *kc = dynamic_cast<Event *> (ev))
+  if (!key_ev_)
     {
-      if (!key_ev_)
-       {
-         key_ev_ = kc;
-       }
-      
-      return true;
+      key_ev_ = ev;
     }
-
-  return false;
+      
+  return true;
 }
 
 ADD_TRANSLATOR (Key_performer,
Index: lilypond/lily/lyric-combine-music-iterator.cc
diff -u lilypond/lily/lyric-combine-music-iterator.cc:1.49 
lilypond/lily/lyric-combine-music-iterator.cc:1.50
--- lilypond/lily/lyric-combine-music-iterator.cc:1.49  Tue Apr 12 22:49:28 2005
+++ lilypond/lily/lyric-combine-music-iterator.cc       Wed Jul 13 18:22:34 2005
@@ -7,7 +7,7 @@
 */
 
 #include "context.hh"
-#include "event.hh"
+#include "music.hh"
 #include "note-head.hh"
 #include "grob.hh"
 #include "music-iterator.hh"
Index: lilypond/lily/lyric-combine-music.cc
diff -u lilypond/lily/lyric-combine-music.cc:1.37 
lilypond/lily/lyric-combine-music.cc:1.38
--- lilypond/lily/lyric-combine-music.cc:1.37   Thu Mar 10 14:36:13 2005
+++ lilypond/lily/lyric-combine-music.cc        Wed Jul 13 18:22:34 2005
@@ -8,6 +8,7 @@
 
 #include "music.hh"
 #include "pitch.hh"
+#include "moment.hh"
 
 struct Lyric_combine_music
 {
Index: lilypond/lily/lyric-performer.cc
diff -u lilypond/lily/lyric-performer.cc:1.44 
lilypond/lily/lyric-performer.cc:1.45
--- lilypond/lily/lyric-performer.cc:1.44       Wed Mar 16 19:19:15 2005
+++ lilypond/lily/lyric-performer.cc    Wed Jul 13 18:22:34 2005
@@ -8,6 +8,7 @@
 
 #include "audio-item.hh"
 #include "performer.hh"
+#include "music.hh"
 
 class Lyric_performer : public Performer
 {
Index: lilypond/lily/mensural-ligature-engraver.cc
diff -u lilypond/lily/mensural-ligature-engraver.cc:1.43 
lilypond/lily/mensural-ligature-engraver.cc:1.44
--- lilypond/lily/mensural-ligature-engraver.cc:1.43    Sun May  8 23:30:50 2005
+++ lilypond/lily/mensural-ligature-engraver.cc Wed Jul 13 18:22:34 2005
@@ -9,7 +9,7 @@
 
 #include "coherent-ligature-engraver.hh"
 #include "mensural-ligature.hh"
-#include "event.hh"
+#include "music.hh"
 #include "warn.hh"
 #include "spanner.hh"
 #include "paper-column.hh"
Index: lilypond/lily/music-scheme.cc
diff -u lilypond/lily/music-scheme.cc:1.8 lilypond/lily/music-scheme.cc:1.9
--- lilypond/lily/music-scheme.cc:1.8   Tue Apr 12 22:49:28 2005
+++ lilypond/lily/music-scheme.cc       Wed Jul 13 18:22:34 2005
@@ -61,17 +61,17 @@
 }
 
 /* todo:  property args */
-LY_DEFINE (ly_extended_make_music, "ly:make-bare-music",
-          2, 0, 0, (SCM type, SCM props),
-          "Make a C++ music object of type @var{type}, initialize with\n"
+LY_DEFINE (ly_make_music, "ly:make-music",
+          1, 0, 0, (SCM props),
+          "Make a C++ Music object, initialize with\n"
           "@var{props}. \n\n"
           ""
           "This function is for internal use, and is only called by "
           "@code{make-music}, which is the preferred interface "
           "for creating music objects. ")
 {
-  SCM_ASSERT_TYPE (scm_is_string (type), type, SCM_ARG1, __FUNCTION__, 
"string");
-  SCM s = make_music (ly_scm2string (type), props)->self_scm ();
+  Music *ms = new Music (props);
+  SCM s = ms->self_scm ();
   scm_gc_unprotect_object (s);
   return s;
 }
Index: lilypond/lily/music.cc
diff -u lilypond/lily/music.cc:1.136 lilypond/lily/music.cc:1.137
--- lilypond/lily/music.cc:1.136        Mon Jul 11 11:51:42 2005
+++ lilypond/lily/music.cc      Wed Jul 13 18:22:34 2005
@@ -53,6 +53,11 @@
   smobify_self ();
 
   length_callback_ = get_property ("length-callback");
+  if (!ly_is_procedure (length_callback_))
+    {
+      length_callback_ = duration_length_callback_proc;
+    }
+  
   start_callback_ = get_property ("start-callback");
 }
 
@@ -76,7 +81,6 @@
 {
 }
 
-ADD_MUSIC (Music);
 
 SCM
 Music::get_property_alist (bool m) const
@@ -297,7 +301,6 @@
   return ip ? ip : &dummy_input_global;
 }
 
-
 Music *
 make_music_by_name (SCM sym)
 {
@@ -307,4 +310,20 @@
   /* UGH. */
   scm_gc_protect_object (rv);
   return unsmob_music (rv);
+}
+
+
+MAKE_SCHEME_CALLBACK (Music, duration_length_callback, 1);
+SCM
+Music::duration_length_callback (SCM m)
+{
+  Music *me = unsmob_music (m);
+  Duration *d = unsmob_duration (me->get_property ("duration"));
+
+  Moment mom;
+  if (d)
+    {
+      mom = d->get_length ();
+    }
+  return mom.smobbed_copy ();
 }
Index: lilypond/lily/new-lyric-combine-music-iterator.cc
diff -u lilypond/lily/new-lyric-combine-music-iterator.cc:1.33 
lilypond/lily/new-lyric-combine-music-iterator.cc:1.34
--- lilypond/lily/new-lyric-combine-music-iterator.cc:1.33      Thu Mar 10 
14:36:13 2005
+++ lilypond/lily/new-lyric-combine-music-iterator.cc   Wed Jul 13 18:22:34 2005
@@ -7,9 +7,10 @@
 */
 
 #include "context.hh"
-#include "event.hh"
+#include "music.hh"
 #include "grob.hh"
 #include "music-iterator.hh"
+#include "input.hh"
 
 class New_lyric_combine_music_iterator : public Music_iterator
 {
Index: lilypond/lily/note-head.cc
diff -u lilypond/lily/note-head.cc:1.141 lilypond/lily/note-head.cc:1.142
--- lilypond/lily/note-head.cc:1.141    Mon Jul 11 11:51:42 2005
+++ lilypond/lily/note-head.cc  Wed Jul 13 18:22:34 2005
@@ -20,7 +20,7 @@
 #include "dots.hh"
 #include "warn.hh"
 #include "font-interface.hh"
-#include "event.hh"
+#include "music.hh"
 #include "rhythmic-head.hh"
 #include "staff-symbol-referencer.hh"
 #include "lookup.hh"
Index: lilypond/lily/note-heads-engraver.cc
diff -u lilypond/lily/note-heads-engraver.cc:1.101 
lilypond/lily/note-heads-engraver.cc:1.102
--- lilypond/lily/note-heads-engraver.cc:1.101  Thu Jun  9 10:26:19 2005
+++ lilypond/lily/note-heads-engraver.cc        Wed Jul 13 18:22:34 2005
@@ -4,6 +4,8 @@
   (c) 1997--2005 Han-Wen Nienhuys <[EMAIL PROTECTED]>
 */
 
+#include "engraver.hh"
+
 #include <cctype>
 
 #include "rhythmic-head.hh"
@@ -12,8 +14,8 @@
 #include "dot-column.hh"
 #include "staff-symbol-referencer.hh"
 #include "item.hh"
-#include "engraver.hh"
 #include "warn.hh"
+#include "duration.hh"
 
 class Note_heads_engraver : public Engraver
 {
Index: lilypond/lily/note-performer.cc
diff -u lilypond/lily/note-performer.cc:1.60 
lilypond/lily/note-performer.cc:1.61
--- lilypond/lily/note-performer.cc:1.60        Thu Mar 10 14:36:13 2005
+++ lilypond/lily/note-performer.cc     Wed Jul 13 18:22:34 2005
@@ -11,6 +11,7 @@
 #include "audio-column.hh"
 #include "global-context.hh"
 #include "warn.hh"
+#include "music.hh"
 
 /**
    Convert evs to audio notes.
Index: lilypond/lily/parser.yy
diff -u lilypond/lily/parser.yy:1.477 lilypond/lily/parser.yy:1.478
--- lilypond/lily/parser.yy:1.477       Mon Jul 11 11:51:42 2005
+++ lilypond/lily/parser.yy     Wed Jul 13 18:22:34 2005
@@ -28,7 +28,7 @@
 #include "book.hh"
 #include "context-def.hh"
 #include "dimensions.hh"
-#include "event.hh"
+#include "music.hh"
 #include "file-path.hh"
 #include "input-smob.hh"
 #include "input.hh"
@@ -45,6 +45,7 @@
 #include "score.hh"
 #include "text-interface.hh"
 #include "warn.hh"
+#include "music.hh"
 
 #define MY_MAKE_MUSIC(x)  make_music_by_name (ly_symbol2scm (x))
 
@@ -2693,8 +2694,11 @@
                *destination = mus->self_scm ();
                unsmob_music (*destination)->
                        set_property ("origin", make_input (last_input_));
-               return dynamic_cast<Event*> (mus)
-                       ? EVENT_IDENTIFIER : MUSIC_IDENTIFIER;
+
+               bool is_event = scm_memq (ly_symbol2scm ("event"), 
mus->get_property ("types"))
+                       != SCM_BOOL_F;
+
+               return is_event ? EVENT_IDENTIFIER : MUSIC_IDENTIFIER;
        } else if (unsmob_duration (sid)) {
                *destination = unsmob_duration (sid)->smobbed_copy ();
                return DURATION_IDENTIFIER;
Index: lilypond/lily/part-combine-iterator.cc
diff -u lilypond/lily/part-combine-iterator.cc:1.24 
lilypond/lily/part-combine-iterator.cc:1.25
--- lilypond/lily/part-combine-iterator.cc:1.24 Wed May  4 10:11:32 2005
+++ lilypond/lily/part-combine-iterator.cc      Wed Jul 13 18:22:34 2005
@@ -7,7 +7,7 @@
 */
 
 #include "context.hh"
-#include "event.hh"
+#include "music.hh"
 #include "music-sequence.hh"
 #include "lily-guile.hh"
 #include "warn.hh"
Index: lilypond/lily/piano-pedal-performer.cc
diff -u lilypond/lily/piano-pedal-performer.cc:1.37 
lilypond/lily/piano-pedal-performer.cc:1.38
--- lilypond/lily/piano-pedal-performer.cc:1.37 Mon Jul 11 11:51:42 2005
+++ lilypond/lily/piano-pedal-performer.cc      Wed Jul 13 18:22:34 2005
@@ -8,6 +8,7 @@
 
 #include "performer.hh"
 #include "audio-item.hh"
+#include "music.hh"
 
 /**
    perform Piano pedals
Index: lilypond/lily/program-option.cc
diff -u lilypond/lily/program-option.cc:1.9 lilypond/lily/program-option.cc:1.10
--- lilypond/lily/program-option.cc:1.9 Thu Jun 16 11:13:02 2005
+++ lilypond/lily/program-option.cc     Wed Jul 13 18:22:34 2005
@@ -20,6 +20,7 @@
 
 /* Write midi as formatted ascii stream? */
 bool do_midi_debugging_global;
+bool use_object_keys;
 
 /*
   Backwards compatibility.
@@ -64,6 +65,10 @@
       /*  Needs to be reset for each file that uses this option.  */
       lily_1_8_compatibility_used = to_boolean (val);
       val = scm_from_bool (to_boolean (val));
+    }
+  else if (var == ly_symbol2scm ("object-keys"))
+    {
+      use_object_keys = scm_from_bool (to_boolean (val));
     }
 }
 
Index: lilypond/lily/quote-iterator.cc
diff -u lilypond/lily/quote-iterator.cc:1.38 
lilypond/lily/quote-iterator.cc:1.39
--- lilypond/lily/quote-iterator.cc:1.38        Wed May  4 10:11:32 2005
+++ lilypond/lily/quote-iterator.cc     Wed Jul 13 18:22:34 2005
@@ -7,11 +7,12 @@
 */
 
 #include "context.hh"
-#include "event.hh"
+#include "music.hh"
 #include "music-sequence.hh"
 #include "lily-guile.hh"
 #include "music-wrapper-iterator.hh"
 #include "warn.hh"
+#include "input.hh"
 
 class Quote_iterator : public Music_wrapper_iterator
 {
Index: lilypond/lily/rest-engraver.cc
diff -u lilypond/lily/rest-engraver.cc:1.65 lilypond/lily/rest-engraver.cc:1.66
--- lilypond/lily/rest-engraver.cc:1.65 Wed Mar 16 19:19:15 2005
+++ lilypond/lily/rest-engraver.cc      Wed Jul 13 18:22:34 2005
@@ -6,11 +6,15 @@
   (c) 1997--2005 Han-Wen Nienhuys <[EMAIL PROTECTED]>
 */
 
+#include "engraver.hh"
+
+#include "duration.hh"
 #include "item.hh"
 #include "staff-symbol-referencer.hh"
 #include "dots.hh"
 #include "rhythmic-head.hh"
-#include "engraver.hh"
+#include "music.hh"
+
 
 class Rest_engraver : public Engraver
 {
Index: lilypond/lily/slur-performer.cc
diff -u lilypond/lily/slur-performer.cc:1.15 
lilypond/lily/slur-performer.cc:1.16
--- lilypond/lily/slur-performer.cc:1.15        Wed Mar 16 19:19:15 2005
+++ lilypond/lily/slur-performer.cc     Wed Jul 13 18:22:34 2005
@@ -11,6 +11,7 @@
 #include "audio-column.hh"
 #include "global-context.hh"
 #include "warn.hh"
+#include "music.hh"
 
 /*
   this is C&P from beam_performer.
Index: lilypond/lily/span-dynamic-performer.cc
diff -u lilypond/lily/span-dynamic-performer.cc:1.35 
lilypond/lily/span-dynamic-performer.cc:1.36
--- lilypond/lily/span-dynamic-performer.cc:1.35        Wed Apr 13 14:41:27 2005
+++ lilypond/lily/span-dynamic-performer.cc     Wed Jul 13 18:22:34 2005
@@ -8,6 +8,7 @@
 
 #include "performer.hh"
 #include "audio-item.hh"
+#include "music.hh"
 
 /*
   TODO: fold this into 1 engraver: \< and \> should also stop when
Index: lilypond/lily/stem-engraver.cc
diff -u lilypond/lily/stem-engraver.cc:1.104 
lilypond/lily/stem-engraver.cc:1.105
--- lilypond/lily/stem-engraver.cc:1.104        Fri Jul  8 22:16:28 2005
+++ lilypond/lily/stem-engraver.cc      Wed Jul 13 18:22:34 2005
@@ -16,6 +16,7 @@
 #include "staff-symbol-referencer.hh"
 #include "stem-tremolo.hh"
 #include "stem.hh"
+#include "duration.hh"
 
 /**
    Make stems upon receiving noteheads.
Index: lilypond/lily/swallow-perf.cc
diff -u lilypond/lily/swallow-perf.cc:1.21 lilypond/lily/swallow-perf.cc:1.22
--- lilypond/lily/swallow-perf.cc:1.21  Thu Mar 10 14:36:12 2005
+++ lilypond/lily/swallow-perf.cc       Wed Jul 13 18:22:34 2005
@@ -7,6 +7,8 @@
 */
 
 #include "performer.hh"
+#include "music.hh"
+
 
 class Swallow_performer : public Performer
 {
Index: lilypond/lily/tab-note-heads-engraver.cc
diff -u lilypond/lily/tab-note-heads-engraver.cc:1.44 
lilypond/lily/tab-note-heads-engraver.cc:1.45
--- lilypond/lily/tab-note-heads-engraver.cc:1.44       Thu Mar 10 14:36:12 2005
+++ lilypond/lily/tab-note-heads-engraver.cc    Wed Jul 13 18:22:34 2005
@@ -11,13 +11,15 @@
 
 #include "rhythmic-head.hh"
 #include "output-def.hh"
-#include "event.hh"
+#include "music.hh"
 #include "dots.hh"
 #include "dot-column.hh"
 #include "staff-symbol-referencer.hh"
 #include "item.hh"
 #include "score-engraver.hh"
 #include "warn.hh"
+#include "duration.hh"
+
 
 /**
    make (guitar-like) tablature note
Index: lilypond/lily/tempo-performer.cc
diff -u lilypond/lily/tempo-performer.cc:1.34 
lilypond/lily/tempo-performer.cc:1.35
--- lilypond/lily/tempo-performer.cc:1.34       Wed Mar 16 19:19:15 2005
+++ lilypond/lily/tempo-performer.cc    Wed Jul 13 18:22:34 2005
@@ -6,9 +6,12 @@
   (c) 1997--2005 Jan Nieuwenhuizen <[EMAIL PROTECTED]>
 */
 
-#include "audio-item.hh"
 #include "performer.hh"
 
+#include "audio-item.hh"
+#include "music.hh"
+#include "duration.hh"
+
 class Tempo_performer : public Performer
 {
 public:
@@ -41,7 +44,6 @@
 {
   if (tempo_req_)
     {
-
       SCM met = tempo_req_->get_property ("metronome-count");
       Duration *d = unsmob_duration (tempo_req_->get_property ("tempo-unit"));
 
Index: lilypond/lily/tie-performer.cc
diff -u lilypond/lily/tie-performer.cc:1.51 lilypond/lily/tie-performer.cc:1.52
--- lilypond/lily/tie-performer.cc:1.51 Mon Jul 11 11:51:42 2005
+++ lilypond/lily/tie-performer.cc      Wed Jul 13 18:22:34 2005
@@ -6,10 +6,13 @@
   (c) 1998--2005 Han-Wen Nienhuys <[EMAIL PROTECTED]>
 */
 
+#include "performer.hh"
+
+#include "music.hh"
 #include "context.hh"
 #include "audio-item.hh"
 #include "pqueue.hh"
-#include "performer.hh"
+
 
 class Tie_performer : public Performer
 {
Index: lilypond/lily/type-swallow-translator.cc
diff -u lilypond/lily/type-swallow-translator.cc:1.19 
lilypond/lily/type-swallow-translator.cc:1.20
--- lilypond/lily/type-swallow-translator.cc:1.19       Thu Mar 10 14:36:12 2005
+++ lilypond/lily/type-swallow-translator.cc    Wed Jul 13 18:22:34 2005
@@ -7,7 +7,7 @@
 */
 
 #include "translator.hh"
-#include "event.hh"
+#include "music.hh"
 
 class Skip_event_swallow_translator : public virtual Translator
 {
Index: lilypond/scm/define-music-properties.scm
diff -u lilypond/scm/define-music-properties.scm:1.39 
lilypond/scm/define-music-properties.scm:1.40
--- lilypond/scm/define-music-properties.scm:1.39       Wed Jul 13 14:13:23 2005
+++ lilypond/scm/define-music-properties.scm    Wed Jul 13 18:22:35 2005
@@ -56,7 +56,6 @@
      (length ,ly:moment? "The duration of this music")
      (length-callback ,procedure? "How to compute the duration of this music. 
This property
 can only be defined as initializer in @file{define-music-types.scm}.")
-     (internal-class-name ,string? "C++ class to use for this Music object") 
      (name ,symbol? "Name of this music object")
      (numerator ,integer? "numerator of a time signature")
      (once ,boolean? "Apply this operation only during one time step?")
Index: lilypond/scm/define-music-types.scm
diff -u lilypond/scm/define-music-types.scm:1.57 
lilypond/scm/define-music-types.scm:1.58
--- lilypond/scm/define-music-types.scm:1.57    Sun Jul 10 11:25:24 2005
+++ lilypond/scm/define-music-types.scm Wed Jul 13 18:22:35 2005
@@ -814,7 +814,7 @@
   (let ((props (hashq-ref music-name-to-property-table name '())))
     (if (not (pair? props))
        (ly:error (_ "can't find music object: ~S") name))
-    (let ((m (ly:make-bare-music (cdr (assoc 'internal-class-name props)) 
props)))
+    (let ((m (ly:make-music props)))
       (define (set-props mus-props)
        (if (and (not (null? mus-props))
                 (not (null? (cdr mus-props))))
Index: lilypond/scm/lily.scm
diff -u lilypond/scm/lily.scm:1.369 lilypond/scm/lily.scm:1.370
--- lilypond/scm/lily.scm:1.369 Fri Jul  8 22:16:28 2005
+++ lilypond/scm/lily.scm       Wed Jul 13 18:22:35 2005
@@ -18,7 +18,8 @@
            (old-relative #f
                          "relative for simultaneous music works
 similar to chord syntax")
-
+           (object-keys #f
+                        "experimental mechanism for remembering tweaks") 
            (resolution 101 "resolution for generating bitmaps")
            (anti-alias-factor 1 "render at higher resolution and scale down 
result\nto prevent jaggies in PNG")
            (preview-include-book-title #t "include book-titles in preview 
images.")
Index: lilypond/scm/output-socket.scm
diff -u lilypond/scm/output-socket.scm:1.5 lilypond/scm/output-socket.scm:1.6
--- lilypond/scm/output-socket.scm:1.5  Wed Jul 13 14:40:53 2005
+++ lilypond/scm/output-socket.scm      Wed Jul 13 18:22:35 2005
@@ -95,14 +95,19 @@
          )))
 
 
+(define (escape-string str)
+  (string-regexp-substitute
+   " " "\\040" 
+   (string-regexp-substitute "\"" "\\\"" str)))
+  
 (define-public (utf-8-string
                descr
                string)
   
-  (format "utf-8 \"~a\" \"~a\"" descr
+  (format "utf-8 \"~a\" \"~a\""
+         (escape-string descr)
 
          ;; don't want unescaped spaces.
-         (string-regexp-substitute " " "\\040" 
-                                   (string-regexp-substitute "\"" "\\\"" 
string))
+         (escape-string string)
          ))
 
Index: lilypond/scm/safe-lily.scm
diff -u lilypond/scm/safe-lily.scm:1.33 lilypond/scm/safe-lily.scm:1.34
--- lilypond/scm/safe-lily.scm:1.33     Mon Jul 11 12:51:13 2005
+++ lilypond/scm/safe-lily.scm  Wed Jul 13 18:22:35 2005
@@ -67,7 +67,7 @@
    ly:item-break-dir
    ly:item?
    ly:iterator?
-   ly:make-bare-music
+   ly:make-music
    ly:make-duration
    ly:make-moment
    ly:make-music-function


_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to