]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.0.1
authorfred <fred>
Sun, 24 Mar 2002 20:12:52 +0000 (20:12 +0000)
committerfred <fred>
Sun, 24 Mar 2002 20:12:52 +0000 (20:12 +0000)
38 files changed:
lily/engraver-group.cc
lily/font-size-engraver.cc [new file with mode: 0644]
lily/horizontal-group-elem.cc
lily/horizontal-vertical-group-elem.cc
lily/include/align-element.hh [new file with mode: 0644]
lily/include/axis-group-element.hh
lily/include/bar.hh
lily/include/beam.hh
lily/include/clef-item.hh
lily/include/directional-spanner.hh
lily/include/elem-group.hh
lily/include/engraver-group.hh
lily/include/engraver.hh
lily/include/grouping.hh
lily/include/horizontal-align-item.hh
lily/include/horizontal-group-item.hh
lily/include/horizontal-vertical-group-item.hh
lily/include/idealspacing.hh
lily/include/identifier.hh
lily/include/item.hh
lily/include/key.hh
lily/include/keyword.hh
lily/include/leastsquares.hh
lily/include/line-of-score.hh [new file with mode: 0644]
lily/include/local-key-item.hh
lily/include/note-head.hh
lily/include/notename.hh
lily/include/parseconstruct.hh
lily/include/script-def.hh
lily/include/script.hh
lily/include/slur.hh
lily/include/spanner.hh
lily/include/staff-side.hh
lily/include/stem.hh
lily/include/text-item.hh
lily/include/text-spanner.hh
lily/include/time-description.hh
lily/include/time-signature.hh [new file with mode: 0644]

index bd6873d0d227ef63a0bea59b627520f09fe6009d..8ac916b54737a96f862efc9e849ff12e2ecfdb8a 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "proto.hh"
 #include "engraver.hh"
 #include "debug.hh"
 #include "p-score.hh"
-#include "score-elem.hh"
+#include "score-element.hh"
 
 IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator_group);
 ADD_THIS_TRANSLATOR(Engraver_group_engraver);
 
 void
-Engraver_group_engraver::announce_element (Score_elem_info info)
+Engraver_group_engraver::announce_element (Score_element_info info)
 {
   announce_info_arr_.push (info);
   Engraver::announce_element (info);
@@ -46,7 +46,7 @@ Engraver_group_engraver::do_announces()
     {
       for (int j =0; j < announce_info_arr_.size(); j++)
        {
-         Score_elem_info info = announce_info_arr_[j];
+         Score_element_info info = announce_info_arr_[j];
          
          if (!info.req_l_)
            info.req_l_ = &dummy_req;
diff --git a/lily/font-size-engraver.cc b/lily/font-size-engraver.cc
new file mode 100644 (file)
index 0000000..6689e91
--- /dev/null
@@ -0,0 +1,36 @@
+/*   
+  font-size-grav.cc --  implement Font_size_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "font-size-engraver.hh"
+#include "score-element.hh"
+
+Font_size_engraver::Font_size_engraver ()
+{
+  size_i_ = 0;
+}
+
+void
+Font_size_engraver::do_process_requests ()
+{
+  Scalar s (get_property ("fontsize"));
+  
+  if (s.length_i ()  && s.isnum_b ())
+    {
+      size_i_ = int (s);
+    }
+}
+
+void
+Font_size_engraver::acknowledge_element (Score_element_info e)
+{
+  e.elem_l_->size_i_ = size_i_;
+}
+
+ADD_THIS_TRANSLATOR (Font_size_engraver);
+IMPLEMENT_IS_TYPE_B1(Font_size_engraver,Engraver);
index 85ca74550954aeaeb6b5074553427f51f9e5d759..804dd6d9b3a8b69f214ad42b95271d869d6ae11c 100644 (file)
@@ -1,5 +1,4 @@
-
-#include "horizontal-group-elem.hh"
+#include "horizontal-group-element.hh"
 #include "interval.hh"
 #include "item.hh"
 #include "debug.hh"
@@ -7,28 +6,14 @@
 
 IMPLEMENT_IS_TYPE_B1(Horizontal_group_element, Axis_group_element);
 
-void
-Horizontal_group_element::remove_all()
-{
-  axis_admin_.remove_all (X_AXIS,X_AXIS);
-}
-
-void
-Horizontal_group_element::add_element (Graphical_element*e)
+Horizontal_group_element::Horizontal_group_element ()
+  : Axis_group_element (X_AXIS,X_AXIS)
 {
-  axis_admin_.add_element (e,this, X_AXIS,X_AXIS);
 }
 
-void
-Horizontal_group_element::remove_element (Graphical_element*e)
-{
-  axis_admin_.remove_element (e,X_AXIS,X_AXIS);
-}
-
-
 Interval
 Horizontal_group_element::do_width() const
 {
-  return axis_admin_.extent (X_AXIS);
+  return Graphical_axis_group::extent (X_AXIS);
 }
 
index 6b5ddd79b67840b2d4ce01961b61bba789587fab..9021d88da6bfc5cb99183cbe64478e7c28c3343c 100644 (file)
@@ -1,24 +1,13 @@
 
-#include "horizontal-vertical-group-elem.hh"
+#include "horizontal-vertical-group-element.hh"
 #include "interval.hh"
 #include "item.hh"
 #include "debug.hh"
 
-void
-Horizontal_vertical_group_element::remove_all()
+Horizontal_vertical_group_element::Horizontal_vertical_group_element()
 {
-  axis_admin_.remove_all (X_AXIS,Y_AXIS);
-}
-void
-Horizontal_vertical_group_element::add_element (Graphical_element *e)
-{
-  axis_admin_.add_element (e, this, X_AXIS, Y_AXIS);
-}
-
-void
-Horizontal_vertical_group_element::remove_element (Graphical_element*e)
-{
-  axis_admin_.remove_element (e, X_AXIS, Y_AXIS);
+  axis1_ = X_AXIS;
+  axis2_ = Y_AXIS;    
 }
 
 
diff --git a/lily/include/align-element.hh b/lily/include/align-element.hh
new file mode 100644 (file)
index 0000000..0b18f18
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+  align-item.hh -- declare Align_elem
+
+  source file of the GNU LilyPond music typesetter
+
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+
+#ifndef VERTICAL_ALIGN_ITEM_HH
+#define VERTICAL_ALIGN_ITEM_HH
+
+#include "score-element.hh"
+#include "interval.hh"
+#include "direction.hh"
+#include "axes.hh"
+
+/**
+  Order elements top to bottom.
+
+  TODO: merge with Horizontal_align_item
+ */
+class Align_element : virtual public Score_element {
+  Link_array<Score_element> elem_l_arr_;
+  Array<int> priority_i_arr_;
+  void sort_elements ();
+public:
+  Interval threshold_interval_ ;
+
+  /**
+     Should high priorities be first or last?
+   */
+    
+  Direction stacking_dir_;
+
+  /**
+     Which side to align? 
+     -1: left side, 0: centered (around center_l_ if not nil), 1: right side
+  */
+
+  Direction align_dir_;
+  
+  Axis axis_;
+  Score_element * center_l_;
+  
+  Align_element ();
+  void add_element (Score_element*);
+  void add_element_priority (Score_element*, int);
+  bool contains_b (Score_element const*) const;
+  DECLARE_MY_RUNTIME_TYPEINFO;
+protected:
+  virtual void do_print() const;
+  virtual void do_substitute_dependency (Score_element*,Score_element*);
+  virtual void do_post_processing() ;
+  virtual void do_pre_processing ();
+  virtual void do_side_processing ();
+};
+#endif // VERTICAL_ALIGN_ITEM_HH
index f3bfb3f7025553a9f9074607f8916f7c4564b4e4..f1389deebdb33d28d018f6468f24ffeed92dd208 100644 (file)
@@ -3,34 +3,35 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #ifndef AXIS_GROUP_ELEMENT_HH
 #define AXIS_GROUP_ELEMENT_HH
 
-#include "score-elem.hh"
-#include "axis-group-administration.hh"
+#include "score-element.hh"
+#include "graphical-axis-group.hh"
+
 /** 
   Treat a group of elements a unity in either or both axis sense .
   This is a wrapper around Axis_group_administration
   */
-class Axis_group_element : public virtual Score_elem {
+class Axis_group_element : public virtual Score_element,
+                          public Graphical_axis_group {
 protected:
-  Axis_group_administration axis_admin_;
   virtual void do_print() const;
-  virtual Link_array<Score_elem> get_extra_dependencies() const;
+  virtual Link_array<Score_element> get_extra_dependencies() const;
   virtual void do_unlink();
   virtual void do_junk_links();
+  virtual Axis_group_element * access_Axis_group_element ();
 
 public:
-  virtual Link_array<Score_elem> elem_l_arr() const;
-  Axis_group_element();
-  virtual void remove_all()=0;
-  virtual void add_element (Graphical_element*)=0;
-  virtual void remove_element (Graphical_element*)=0;
-  virtual bool contains_b (Graphical_element const *) const;
+  virtual Link_array<Score_element> elem_l_arr() const;
+  Axis_group_element(Axis,Axis);
+  Axis_group_element();  
+  virtual Link_array<Score_element> get_children ();
+
   DECLARE_MY_RUNTIME_TYPEINFO;
 };
 
index df39cea3893077da0331539ecb3cd1018c5972f3..c00677cc0fdb5d25d27c54633759d3012d20668e 100644 (file)
@@ -1,7 +1,7 @@
 /*
   bar.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef BAR_HH
@@ -17,13 +17,15 @@ public:
   String type_str_;
 
   DECLARE_MY_RUNTIME_TYPEINFO;
-  SCORE_ELEM_CLONE(Bar);
-  Bar();
-private:
-  void do_print() const;
+  SCORE_ELEMENT_CLONE (Bar);
+  Bar ();
+
 protected:
-  virtual void do_pre_processing();
-  Molecule*brew_molecule_p() const;
+  virtual void do_pre_processing ();
+  Molecule* brew_molecule_p () const;
+
+private:
+  void do_print () const;
 };
 #endif // BAR_HH
 
index e4bad88c1caee13781d2ac97578eff4037ad654c..f6f59c8c9eb24f178eefdd837ee5966479073eb3 100644 (file)
@@ -1,7 +1,7 @@
 /*
   beam.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef BEAM_HH
@@ -21,6 +21,7 @@ public:
     especially at small slopes.
     */
   enum Quantisation { NONE, NORMAL, TRADITIONAL, TEST };
+  enum Dir_algorithm { /* DOWN=-1, UP=1, */ MAJORITY=2, MEAN, MEDIAN };
 
   Link_array<Stem> stems_;
   /// the slope of the beam in posns / point (dimension)   
@@ -40,11 +41,11 @@ public:
 
   DECLARE_MY_RUNTIME_TYPEINFO;
   Beam();
-  void add (Stem*);
+  void add_stem (Stem*);
 
   void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
   void set_stemlens ();
-  SCORE_ELEM_CLONE (Beam);
+  SCORE_ELEMENT_CLONE (Beam);
 
 protected:
   virtual Interval do_width () const;    
@@ -52,7 +53,7 @@ protected:
   void set_default_dir ();
   virtual void do_pre_processing ();
   virtual void do_post_processing ();
-  virtual void do_substitute_dependent (Score_elem*, Score_elem*);
+  virtual void do_substitute_dependent (Score_element*, Score_element*);
 
   virtual void do_print() const;
 
index 3b82f9d426e77d994707d7cb8bca3033e752d883..54c5bf1a0ce268bacb747ebf74168ab18e515505 100644 (file)
@@ -1,7 +1,7 @@
 /*
   clef-item.hh -- declare Clef_item
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef CLEFITEM_HH
@@ -9,37 +9,36 @@
 #include "item.hh"
 #include "text-def.hh"
 #include "direction.hh"
+#include "pointer.hh"
 
 /**
   Set a clef in a staff.
  */
 class Clef_item : public Item {
 protected:
-    virtual void do_pre_processing();
-    Molecule* brew_molecule_p() const;
+  virtual void do_pre_processing();
+  virtual Molecule* brew_molecule_p() const;
 public:
     
-    String symbol_;
-    int y_position_i_;
+  String symbol_;
+  int y_position_i_;
 
-    /// is this a change clef (smaller size)?
-    bool change_b_;
+  /// is this a change clef (smaller size)?
+  bool change_b_;
     
-    /// set because of existence of a bar
-    bool default_b_;
-
-    /// should we print an octave symbol (8), and where? (up=1, down=1)?
-    Direction octave_dir_;
-
-    /// text def to put above/below clef (ugh: should be const)
-    Text_def * octave_marker_td_p_;
-  
-    /* *************** */
-    DECLARE_MY_RUNTIME_TYPEINFO;
-    SCORE_ELEM_CLONE(Clef_item);
-    Clef_item();
-    void read (Clef_engraver const&);
-    void read (String);
+  /// set because of existence of a bar
+  bool default_b_;
+
+  /// should we print an octave symbol (8), and where? (up=1, down=-1)?
+  Direction octave_dir_;
+
+  /// text def to put above/below clef?
+  P<Text_def> octave_marker_td_p_;
+
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  SCORE_ELEMENT_CLONE(Clef_item);
+  Clef_item();
+  void read (Clef_engraver const&);
 };
 
 #endif // CLEFITEM_HH
index 7854a348cea4184797ef3a0c5ef637401636825d..99594b12ce037a257f80e80502db4f34d9636594 100644 (file)
@@ -1,7 +1,7 @@
 /*
   directional-spanner.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef DIRECTIONALSPANNER_HH
index 6ad1d1d24371e35b7482a8f65b506afd77b163c3..d1092d98bd875fc7beed3067bef9b563287b512b 100644 (file)
@@ -3,14 +3,14 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #ifndef ELEM_GROUP_HH
 #define ELEM_GROUP_HH
 
-#include "score-elem.hh"
+#include "score-element.hh"
 #include "axis-group-element.hh"
 
 
index 125021cdf6122e088bea994d61709be35aa3c1bb..636842ce77c8e358ba57027d939085ceb7e4c629 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
@@ -13,7 +13,7 @@
 #include "lily-proto.hh"
 #include "parray.hh"
 #include "plist.hh"
-#include "score-elem-info.hh"
+#include "score-element-info.hh"
 #include "engraver.hh"
 #include "translator-group.hh"
 
@@ -26,7 +26,7 @@ class Engraver_group_engraver : public Engraver,
                                public virtual Translator_group
 {
 protected:
-  Array<Score_elem_info> announce_info_arr_;
+  Array<Score_element_info> announce_info_arr_;
 public:
   TRANSLATOR_CLONE(Engraver_group_engraver);
   Engraver_group_engraver();
@@ -36,7 +36,7 @@ public:
     
   virtual Staff_info get_staff_info() const;
   virtual void do_announces();
-  virtual void announce_element (Score_elem_info);
+  virtual void announce_element (Score_element_info);
 };
 
 #endif // ENGRAVERGROUP_HH
index f6b4f6bafa82b7cca2256b1f5e6cc1461a0a92d1..e6e5b7fe7665e4ece53207c6f559320c6421d17d 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c) 1996,  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #define ENGRAVER_HH
 
 #include "lily-proto.hh"
-#include "varray.hh"
+#include "array.hh"
 #include "request.hh"
-#include "score-elem-info.hh"
+#include "score-element-info.hh"
 #include "staff-info.hh"
 #include "translator.hh"
 
 
 /**
-  a struct which processes requests, and creates the #Score_elem#s.
+  a struct which processes requests, and creates the #Score_element#s.
   It may use derived classes. Hungarian postfix: grav
   
   */
@@ -35,7 +35,7 @@ protected:
   /**
     Invoke walker method to typeset element. Default: pass on to daddy.
     */
-  virtual void typeset_element (Score_elem*elem_p);
+  virtual void typeset_element (Score_element*elem_p);
     
   /**
     take note of item/spanner
@@ -43,7 +43,7 @@ protected:
 
     Default: ignore the info
     */
-  virtual void acknowledge_element (Score_elem_info) {}
+  virtual void acknowledge_element (Score_element_info) {}
 
   /** Do things with stuff found in acknowledge_element. Ugh. Should
      be looped with acknowledge_element.
@@ -53,7 +53,7 @@ protected:
   /**
     Announce element. Default: pass on to daddy. Utility
     */
-  virtual void announce_element (Score_elem_info);
+  virtual void announce_element (Score_element_info);
    
   /**
     Get information on the staff. Default: ask daddy.
index d88ed2876b5f0b8e9c4d3f7407b37818e6733d3e..b0bff2363d17563c0b140ffcff6976dd29d9a59f 100644 (file)
@@ -1,14 +1,14 @@
 /*
   grouping.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef GROUPING_HH
 #define GROUPING_HH
 
 #include "minterval.hh"
-#include "varray.hh"
+#include "array.hh"
 
 /** data structure which represents rhythmic units   this is a tree. It groupes notes according to rules
 
index da0794d760e1b595f9a39978f20219fae6e84499..20ef3a43364d3797e462d1273a28393b0c0d57a1 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #define HORIZONTAL_ALIGN_ITEM_HH
 
 #include "item.hh"
+#include "align-element.hh"
 
 /**
   Order elems left to right.
 
-  
-
   TODO: insert (order, elem)
   */
-class Horizontal_align_item : public Item {
-protected:
-    Link_array<Item> item_l_arr_;
-    Array<int> priority_i_arr_;
-    
+class Horizontal_align_item : public Item , public Align_element {
 public:
-    Item * center_l_;
-    /**
-      Which side to align? 
-      -1: left side, 0: centered (around center_l_ if not nil), 1: right side
-     */
-    int align_i_;
-        
-    DECLARE_MY_RUNTIME_TYPEINFO;
-    SCORE_ELEM_CLONE(Horizontal_align_item);
-    void add (Item*, int p);
-    Horizontal_align_item();
-protected:
-    
-    virtual void do_substitute_dependency (Score_elem * , Score_elem *);
-    /// do calculations before determining horizontal spacing
-    virtual void do_pre_processing();
-    virtual void do_print() const;
-    virtual Interval do_width() const;
-    bool contains_b (Item*) const;
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  SCORE_ELEMENT_CLONE(Horizontal_align_item);
+  void add_item (Item*, int p);
+  Horizontal_align_item();
+  virtual void do_print() const;
+
 };
 #endif // HORIZONTAL_ALIGN_ITEM_HH
index d94e0df1a4291acf4cde10a52628c0110940ce91..8c6f9ea7b98c8afc5606e79456e1f5391dd6eb78 100644 (file)
@@ -3,14 +3,14 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #ifndef HORIZONTAL_GROUP_ITEM_HH
 #define HORIZONTAL_GROUP_ITEM_HH
 
-#include "horizontal-group-elem.hh"
+#include "horizontal-group-element.hh"
 #include "axis-group-item.hh"
 
 /**
@@ -18,7 +18,6 @@
  */
 class Horizontal_group_item : public Axis_group_item, public Horizontal_group_element {
 protected:
-  virtual void remove_all() { Horizontal_group_element::remove_all (); }
   virtual void do_unlink () { 
     Axis_group_item::do_unlink ();
   }
@@ -27,10 +26,9 @@ protected:
   }
   virtual void do_print() const;
 public:
-  virtual void add_element (Graphical_element*e) { Horizontal_group_element::add_element (e); }
-  virtual void remove_element (Graphical_element*e) { Horizontal_group_element::remove_element (e); }
+  Horizontal_group_item ();
   DECLARE_MY_RUNTIME_TYPEINFO;
-  SCORE_ELEM_CLONE(Horizontal_group_item);
+  SCORE_ELEMENT_CLONE(Horizontal_group_item);
 };
 
 #endif // HORIZONTAL_GROUP_ITEM_HH
index 50e1e9ef562564f5650992e127399ae67ac87eb1..2a6a0bf42503be3da3bb053f0818708743de3cbf 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
@@ -11,7 +11,7 @@
 #define HORIZONTAL_VERTICAL_GROUP_ITEM_HH
 
 #include "axis-group-item.hh"
-#include "horizontal-vertical-group-elem.hh"
+#include "horizontal-vertical-group-element.hh"
 
 
 /**
 class Horizontal_vertical_group_item  : public Axis_group_item, public Horizontal_vertical_group_element {
 protected:
   virtual void do_print() const;
-  virtual void remove_all() { Horizontal_vertical_group_element::remove_all (); }
   virtual void do_unlink () { Horizontal_vertical_group_element::do_unlink (); }
-  SCORE_HORIZONTAL_VERTICAL_CLONE(Horizontal_vertical_group_item);
+  SCORE_ELEMENT_CLONE(Horizontal_vertical_group_item);
 public:
-  virtual void add_element (Graphical_element*e) { Horizontal_vertical_group_element::add_element (e); }
-  virtual void remove_element (Graphical_element*e) { Horizontal_vertical_group_element::remove_element (e); }
+  Horizontal_vertical_group_item ();
 
   DECLARE_MY_RUNTIME_TYPEINFO;
 };
index 198b7e000b5f59f78df0de2b1561165dc58cd76f..20ff60fee5bf6f8673c096d13c0e9f5779f287b5 100644 (file)
@@ -1,7 +1,7 @@
 /*
   idealspacing.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef IDEALSPACING_HH
index 85a398ae0eb2bc8c9352f93653c76e8814722856..56898a043ee23d11d86f67776ecc36ffd1c50776 100644 (file)
@@ -1,7 +1,7 @@
 /*
   identifier.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef IDENTIFIER_HH
@@ -12,8 +12,8 @@
 #include "input.hh"
 #include "virtual-methods.hh"
 
-#define IDACCESSOR(Class, accessor)\
-virtual Class * accessor () const { error (#Class  + String ("_identifier")); return 0; }
+#define IDACCESSOR(Class)\
+virtual Class *  access_ ## Class (bool=true) const { error (#Class  + String ("_identifier")); return 0; }
 
 /**
    A declarable data structure in mudela. 
@@ -33,19 +33,19 @@ struct Identifier : public Input {
   DECLARE_MY_RUNTIME_TYPEINFO;
   void error (String) const;
   String str () const;
-  IDACCESSOR(Translator, translator)
-  IDACCESSOR(Music, music)
-  IDACCESSOR(General_script_def, script)
-  IDACCESSOR(Symtables, symtables)
-  IDACCESSOR(Midi_def, mididef)
-  IDACCESSOR(Paper_def, paperdef)
-  IDACCESSOR(Lookup,lookup)
-  IDACCESSOR(Real,real)
-  IDACCESSOR(String,string)
-  IDACCESSOR(Request, request)
-  IDACCESSOR(Score, score)
-  IDACCESSOR(int, intid)
-  IDACCESSOR(Duration, duration)
+  IDACCESSOR(Translator)
+  IDACCESSOR(Music)
+  IDACCESSOR(General_script_def)
+  IDACCESSOR(Symtables)
+  IDACCESSOR(Midi_def)
+  IDACCESSOR(Paper_def)
+  IDACCESSOR(Lookup)
+  IDACCESSOR(Real)
+  IDACCESSOR(String)
+  IDACCESSOR(Request)
+  IDACCESSOR(Score)
+  IDACCESSOR(int)
+  IDACCESSOR(Duration)
   VIRTUAL_COPY_CONS (Identifier, Identifier);
 
 protected:
@@ -53,33 +53,33 @@ protected:
   virtual String do_str () const;
 };
 
-#define DECLARE_ID_CLASS(Class, accessor)      \
+#define DECLARE_ID_CLASS(Class)        \
 struct Class ## _identifier : Identifier {\
                             Class *data_p_;                 \
                             DECLARE_MY_RUNTIME_TYPEINFO; \
                             Class ## _identifier (Class ## _identifier const&);\
                             Class ## _identifier (Class*st, int code);\
                             VIRTUAL_COPY_CONS (Class ## _identifier, Identifier);\
-                            virtual Class* accessor () const;\
+                            virtual Class* access_ ## Class (bool copy_b = true) const;\
                             ~Class ## _identifier();\
                             virtual void do_print () const; \
                             virtual String do_str () const; \
 }\
 
 
-DECLARE_ID_CLASS(Translator, translator);
-DECLARE_ID_CLASS(Duration, duration);
-DECLARE_ID_CLASS(Real, real);
-DECLARE_ID_CLASS(String, string);
-DECLARE_ID_CLASS(General_script_def, script);
-DECLARE_ID_CLASS(Lookup, lookup);
-DECLARE_ID_CLASS(Symtables, symtables);
-DECLARE_ID_CLASS(Music, music);
-DECLARE_ID_CLASS(int, intid);
-DECLARE_ID_CLASS(Score, score);
-DECLARE_ID_CLASS(Request, request);
-DECLARE_ID_CLASS(Paper_def, paperdef);
-DECLARE_ID_CLASS(Midi_def, mididef);
+DECLARE_ID_CLASS(Translator);
+DECLARE_ID_CLASS(Duration);
+DECLARE_ID_CLASS(Real);
+DECLARE_ID_CLASS(String);
+DECLARE_ID_CLASS(General_script_def);
+DECLARE_ID_CLASS(Lookup);
+DECLARE_ID_CLASS(Symtables);
+DECLARE_ID_CLASS(Music);
+DECLARE_ID_CLASS(int);
+DECLARE_ID_CLASS(Score);
+DECLARE_ID_CLASS(Request);
+DECLARE_ID_CLASS(Paper_def);
+DECLARE_ID_CLASS(Midi_def);
 
 #endif // IDENTIFIER_HH
 
index 0a20e7614844d1db6d35ff12b4cdfab90d579633..32010298298543c90cc93fc90593b9332cd673f5 100644 (file)
@@ -3,15 +3,15 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 #ifndef ITEM_HH
 #define ITEM_HH
 
 
-#include "boxes.hh"
+#include "box.hh"
 #include "string.hh"
-#include "score-elem.hh"
+#include "score-element.hh"
 #include "drul-array.hh"
 
 /**
   spacing calculation. 
   
 */
-class Item : public virtual Score_elem {
+class Item : public virtual Score_element {
 public:
   Link_array<Spanner> attached_span_l_arr_;
   Drul_array<Item*> broken_to_drul_;
 
   /// should be put in a breakable col.
   bool breakable_b_;
-  Direction break_status_i_;
+  Direction break_status_dir_;
   int break_priority_i_;
   
   /// nobreak = 0, pre = -1, post = 1
-  int break_status_i() const;
+  Direction break_status_dir() const;
   Item * find_prebroken_piece (Direction) const;
   Item * find_prebroken_piece (Line_of_score*) const;    
 
-  virtual Item *item() { return this; }
+  virtual Item *access_Item() ;
   Item();
   Real hpos_f() const;
   DECLARE_MY_RUNTIME_TYPEINFO;
@@ -47,6 +47,8 @@ public:
   virtual Paper_column * column_l () const;
     
   static int left_right_compare (Item const *, Item const*);
+  
+  Item (Item const &);
 protected:
   virtual void do_unlink ();
   virtual void do_junk_links();
index 90c14792353fc710aa69f8f7d1d0e12bf537803b..b00b1723c12a8c6e0d47fbc764c6fa71ce7e8ca0 100644 (file)
@@ -1,13 +1,13 @@
 /*
   key.hh -- declare Key, Octave_key
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef KEY_HH
 #define KEY_HH
 
-#include "varray.hh"
+#include "array.hh"
 #include "scalar.hh"
 #include "lily-proto.hh"
 
index 4b40a979fcfc85a1f0bf986bcca23593721ab05a..1f01b93d60dbdca2ddfc190e258d110a441f8d96 100644 (file)
@@ -1,7 +1,7 @@
 /*
   keyword.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef KEYWORD_HH
index c813f36bc465a2a03b89348a954e5e854e25f62c..63f88b6097474b5baa8312a4f95b29e1588045dd 100644 (file)
@@ -1,12 +1,12 @@
 /*
   leastsquare.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef LEASTSQUARE_HH
 #define LEASTSQUARE_HH
-#include "varray.hh"
+#include "array.hh"
 #include "offset.hh"
 
 
diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh
new file mode 100644 (file)
index 0000000..894b39a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+  scoreline.hh -- part of GNU LilyPond
+
+  (c) 1996--1998 Han-Wen Nienhuys
+*/
+
+#ifndef SCORELINE_HH
+#define SCORELINE_HH
+
+#include "colhpos.hh"
+#include "spanner.hh"
+
+/// the columns of a score that form one line.
+class Line_of_score : public Spanner 
+{
+public:
+  Link_array<Paper_column> cols;
+  bool error_mark_b_;
+
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  Line_of_score();
+    
+  void add_element (Score_element *);
+
+  /// is #c# contained in #*this#?
+  bool contains_b (Paper_column const *c) const;
+    
+  Link_array<Line_of_score> get_lines() const;
+  void set_breaking (Array<Column_x_positions> const&);
+
+protected:
+  virtual Link_array<Score_element> get_extra_dependencies () const;
+
+  virtual void do_unlink ();
+  virtual void do_junk_links ();
+  virtual void break_into_pieces (bool);
+  virtual Interval do_width() const;
+  virtual void do_print() const;
+  SCORE_ELEMENT_CLONE(Line_of_score);
+};
+
+#endif
+
index ec41cb3a54252b3399026858b4aeaa4c50faea89..d08ca2b4905faed98be685b7addff73b924e9d00 100644 (file)
@@ -1,13 +1,13 @@
 /*
   local-key-item.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef LOCALKEYITEM_HH
 #define LOCALKEYITEM_HH
 #include "item.hh"
-#include "varray.hh"
+#include "array.hh"
 #include "musical-pitch.hh"
 
 /**
@@ -26,16 +26,14 @@ public:
     DECLARE_MY_RUNTIME_TYPEINFO;
     Array<Musical_pitch> accs;
     Link_array<Item> support_items_;
-    int c0_position;
-
-
+    int c0_position_i_;
     
-    Local_key_item (int c0position);
+    Local_key_item ();
     void add_support (Item*);
     void add (Musical_pitch);
 protected:
     virtual void do_pre_processing();    
-    virtual void do_substitute_dependency (Score_elem*,Score_elem*);
+    virtual void do_substitute_dependency (Score_element*,Score_element*);
     virtual Molecule* brew_molecule_p() const;
 };
 #endif // LOCALKEYITEM_HH
index 6ed35ce26357a38ed33972d8b87d1dfc09acc089..07d3185a065e0d3ae691d7480f71e3258553a583 100644 (file)
@@ -1,7 +1,7 @@
 /*
   note-head.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef NOTEHEAD_HH
index 426f7e45649c085d4bb7873f6924a4456cb6a2af..716217ef84985176ca486020986cfb9c802f39b7 100644 (file)
@@ -1,7 +1,7 @@
 /*
   notename.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef NOTENAME_HH
index a48ce2c022c1085cfb64feeb8ac16d39727a3201..7a8510484678b71197410afa2d8d33f009d49667 100644 (file)
@@ -1,7 +1,7 @@
 /*
   parseconstruct.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef PARSECONSTRUCT_HH
index ac5bf63561e51530b9dda5ba3db10eb2f81c5071..a68628c9ef4a85d03b3ab8020444c1bce5f72445 100644 (file)
@@ -1,7 +1,7 @@
 /*
   script-def.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef SCRIPTDEF_HH
index 35a945af5a8665ed0154619881e91d69f9afe34a..105cb4f15c30f1b99bad79952178a9a5043ac9e2 100644 (file)
@@ -1,7 +1,7 @@
 /*
   script.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef SCRIPT_HH
   Accents that are put over a note-group.
  */
 class Script : public Item, public Staff_side {
-    
-    Stem *stem_l_;
+  Stem *stem_l_;
 
 protected:
-    Molecule *brew_molecule_p() const;
-    virtual void do_substitute_dependency (Score_elem*,Score_elem*);
-    virtual void do_print() const;
-    virtual Interval symbol_height() const;
-    virtual void do_pre_processing();
-    virtual Interval do_width() const;
-    SCORE_ELEM_CLONE(Script);
+  Molecule *brew_molecule_p() const;
+  virtual void do_substitute_dependency (Score_element*,Score_element*);
+  virtual void do_print() const;
+  virtual Interval symbol_height() const;
+  virtual Interval symbol_width () const;
+  virtual void do_pre_processing();
+  virtual Interval do_width() const;
+  SCORE_ELEMENT_CLONE(Script);
 private:
 
-    void set_default_dir();
+  void set_default_dir();
 public:
-    General_script_def *specs_l_;
+  General_script_def *specs_p_;
+  bool postbreak_only_b_;
     
-    static int compare (Script  *const&, Script *const&) ;
-    Script();
-    void set_stem (Stem*);
-    DECLARE_MY_RUNTIME_TYPEINFO;
-
+  static int compare (Script  *const&, Script *const&) ;
+  Script();
+  ~Script ();
+  Script (Script const&);
+   
+  void set_stem (Stem*);
+  DECLARE_MY_RUNTIME_TYPEINFO;
 };
 
 
index 07ceb99374a39e6edc21118669d7b63533da9505..c77f6f9865a585e9a612af6bb07d93a729430f96 100644 (file)
@@ -1,7 +1,7 @@
 /*
   slur.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef SLUR_HH
@@ -19,11 +19,11 @@ class Slur : public Bow
 {
 public:
   Link_array<Note_column> encompass_arr_;
-  void add (Note_column*);
+  void add_column (Note_column*);
 
   Slur ();
 
-  SCORE_ELEM_CLONE(Slur);
+  SCORE_ELEMENT_CLONE(Slur);
   DECLARE_MY_RUNTIME_TYPEINFO;
 
 protected:
@@ -33,7 +33,7 @@ protected:
   virtual void do_post_processing ();
   virtual void do_add_processing ();
   virtual void do_pre_processing ();
-  virtual void do_substitute_dependency (Score_elem*, Score_elem*);
+  virtual void do_substitute_dependency (Score_element*, Score_element*);
 };
 
 #endif // SLUR_HH
index 0559dce40dd6a5841a625f290f065911c522357d..d5688cb8e0ff03de18454480fc5f7396058449ba 100644 (file)
@@ -1,14 +1,14 @@
 /*
   spanner.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef SPANNER_HH
 #define SPANNER_HH
 
 #include "lily-proto.hh"
-#include "score-elem.hh"
+#include "score-element.hh"
 #include "drul-array.hh"
 #include "rod.hh"
 
   length of stems of notes they encompass.
 
   */
-class Spanner : public virtual Score_elem {
+class Spanner : public virtual Score_element {
 public:
   
   Drul_array<Item*> spanned_drul_;
-  void set_bounds(Direction d, Item*);
+  void set_bounds (Direction d, Item*);
 
   DECLARE_MY_RUNTIME_TYPEINFO;
-  virtual Spanner* spanner() { return this; }    
-  Spanner();
-  bool broken_b() const;
+  virtual Spanner* access_Spanner ();
+  Spanner ();
+  bool broken_b () const;
   virtual Array<Rod> get_rods () const;
   Spanner* find_broken_piece (Line_of_score*) const;
 protected:
-  void set_my_columns();
-  SCORE_ELEM_CLONE(Spanner);
+  void set_my_columns ();
+  SCORE_ELEMENT_CLONE (Spanner);
 
   /**
     this is virtual; for instance, Line_of_score overrides it.
@@ -55,13 +55,13 @@ protected:
 
   Link_array<Spanner> broken_into_l_arr_;
 
-  virtual void do_unlink();
-  virtual void do_junk_links();
+  virtual void do_unlink ();
+  virtual void do_junk_links ();
   virtual void do_brew_molecule ();
   virtual void do_space_processing ();
-  virtual void do_break_processing();
-  virtual Interval do_width() const;
-  virtual void do_print() const;
-  virtual Line_of_score*line_l() const;
+  virtual void do_break_processing ();
+  virtual Interval do_width () const;
+  virtual void do_print () const;
+  virtual Line_of_score*line_l () const;
 };
 #endif
index 976288745861246bd6ba69c3e97ed9b0b8a49ef1..5c95249868cae6799fbd45007740c7d61e81512c 100644 (file)
@@ -3,21 +3,24 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #ifndef STAFF_SIDE_HH
 #define STAFF_SIDE_HH
 
-#include "score-elem.hh"
+#include "score-element.hh"
 #include "interval.hh"
 #include "direction.hh"
 
-/** A symbol which sits along a staff.
+/**
 
-  */
-class Staff_side : virtual Score_elem
+   A symbol which sits either below or above "something" (usually, a
+   staff).
+
+*/
+class Staff_side : virtual Score_element
 {
 public:
 
@@ -25,25 +28,33 @@ public:
     Vertical dir of symbol relative to staff. -1 = below staff?
     */
   Direction dir_;
+  Axis axis_;
   Interval sym_int_;
     
-  Real y_;
+  Real coordinate_offset_f_;
 
+  /**
+     Add extra vertical space to the support symbols.
+   */
+  Real padding_f_;
 
-  void set_staffsym (Staff_symbol * );
   Staff_side ();
-  void add_support (Score_elem*);
+  void add_support (Score_element*);
   DECLARE_MY_RUNTIME_TYPEINFO;
     
 protected:
   virtual Interval symbol_height () const;
+  virtual Interval symbol_width () const;
+  Interval symbol_extent () const;
   virtual Real get_position_f () const;
-  virtual void do_substitute_dependency (Score_elem *, Score_elem*);
+  virtual void do_substitute_dependency (Score_element *, Score_element*);
+  virtual void do_pre_processing ();
   virtual void do_post_processing ();
-  Interval support_height () const;
+  Interval support_extent () const;
 
 private:
-  Link_array<Score_elem> support_l_arr_;
-//  Interval support_height () const;
+  void do_side_processing ();
+  Link_array<Score_element> support_l_arr_;
 };
+
 #endif // STAFF_SIDE_HH
index aa6f1b44cabfa09b169b1db343389c9eda05c864..6bef757c911b755851ee34beff3a27925f5576f3 100644 (file)
@@ -1,13 +1,13 @@
 /*
   stem.hh -- declare Stem
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef STEM_HH
 #define STEM_HH
 #include "item.hh"
-#include "varray.hh"
+#include "array.hh"
 #include "moment.hh"
 #include "molecule.hh"
 
@@ -82,7 +82,7 @@ public:
   Stem ();
     
   /// ensure that this Stem also encompasses the Notehead #n#
-  void add (Rhythmic_head*n);
+  void add_head (Rhythmic_head*n);
 
   DECLARE_MY_RUNTIME_TYPEINFO;
 
@@ -93,10 +93,10 @@ public:
 
   void do_print() const;
   void set_stemend (Real);
-  Direction get_default_dir();
-  Direction get_dir ();
+  Direction get_default_dir() const;
+  Direction get_dir () const;
 
-  int get_center_distance(Direction);
+  int get_center_distance(Direction) const;
   void set_default_dir();
   void set_default_stemlen();
   void set_default_extents();
@@ -111,8 +111,9 @@ public:
     
   /// heads that the stem encompasses (positions)
   Interval_t<int> head_positions() const;
+  virtual ~Stem ();
 protected:
-  virtual void do_substitute_dependency (Score_elem*,Score_elem*);
+  virtual void do_substitute_dependency (Score_element*,Score_element*);
   virtual void do_pre_processing();
   virtual Interval do_width() const;
   Molecule* brew_molecule_p() const;
index 581446cfd46494e9a95c3d9b5c6fe97b0eb92d81..8c6ba84f69348c13c4457254736ff12a3f3c4d0b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   text-item.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef TEXT_ITEM_HH
index ab81d9099ebde543ce227da6ba5cfa6e1eb7fbce..e7cd556cd9a479bffe0f5daaac41f0011cf9a833 100644 (file)
@@ -1,7 +1,7 @@
 /*
   textspanner.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef TEXTSPANNER_HH
@@ -24,10 +24,10 @@ public:
   Text_spanner();
   Text_spanner (Text_spanner const&);
 protected:
-  SCORE_ELEM_CLONE(Text_spanner);
+  SCORE_ELEMENT_CLONE(Text_spanner);
   ~Text_spanner();
   virtual void do_add_processing ();
-  virtual void do_substitute_dependency (Score_elem*,Score_elem*);
+  virtual void do_substitute_dependency (Score_element*,Score_element*);
   virtual void do_pre_processing();
   virtual void do_post_processing();
   virtual Interval height() const ;
index 5a84817ed93e3c99bf99561d141d0d8d4dbfd58d..f92b48ba7921ead72be6a5ffd99cd4f26b85f3a6 100644 (file)
@@ -1,7 +1,7 @@
 /*
   moment.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef tdes_HH
@@ -9,7 +9,7 @@
 
 #include "moment.hh"
 #include "lily-proto.hh"
-#include "varray.hh"
+#include "array.hh"
 
 /// full info on where we are
 struct Time_description {
@@ -39,14 +39,14 @@ struct Time_description {
   void OK() const;
   Time_description();
   void add (Moment dt);
-  bool allow_meter_change_b();
+  bool allow_time_signature_change_b();
   String str() const;
   void print() const;
   void setpartial (Moment p);
   String try_set_partial_str (Moment) const;
   Moment barleft() const;
   Moment next_bar_moment() const;
-  void set_meter (int,int);
+  void set_time_signature (int,int);
   static int compare (const Time_description&, const Time_description&);
 };
 
diff --git a/lily/include/time-signature.hh b/lily/include/time-signature.hh
new file mode 100644 (file)
index 0000000..762f465
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+  time_signature.hh -- declare Time_signature
+
+  (c) 1996--1998 Han-Wen Nienhuys
+*/
+
+#ifndef METER_HH
+#define METER_HH
+#include "item.hh"
+#include "array.hh"
+#include "scalar.hh"
+
+/**
+   Print a time_signature sign.
+  TODO:
+
+  C style time_signatures, 2+3+2/8 time_signatures, alla breve.
+  
+ */
+class Time_signature: public Item {
+  Array<Scalar> args;
+
+protected:
+  virtual Molecule*brew_molecule_p() const;
+public:
+  Time_signature (Array<Scalar> args) ;
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  SCORE_ELEMENT_CLONE(Time_signature);
+};
+#endif // METER_HH
+