]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.55
authorfred <fred>
Tue, 26 Mar 2002 23:22:12 +0000 (23:22 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:22:12 +0000 (23:22 +0000)
15 files changed:
lily/align-interface.cc
lily/axis-group-engraver.cc
lily/engraver.cc
lily/grace-engraver-group.cc
lily/group-interface.cc
lily/include/group-interface.hh
lily/include/paper-column.hh
lily/include/rhythmic-head.hh
lily/include/slur-engraver.hh
lily/include/spanner.hh
lily/item.cc
lily/property-engraver.cc
lily/scm-hash.cc
lily/side-position-interface.cc
lily/staff-symbol-referencer.cc

index af9089b0eb203e822e356ccd629a17e4933db414..c3779358711f53c0ef277fa3182eb0898b500637 100644 (file)
@@ -32,7 +32,7 @@ Align_interface::alignment_callback (Score_element const *sc, Axis ax)
 Real
 Align_interface::center_on_element (Score_element const *me, Axis a)
 {
-  Score_element *cent = unsmob_element (me->get_elt_property ("group-center-element"));
+  Score_element *cent = unsmob_element (me->get_elt_pointer ("group-center-element"));
 
   if (cent)
     {
@@ -61,7 +61,7 @@ Align_interface::do_side_processing (Axis a)
 
   Link_array<Score_element> elems;
   Link_array<Score_element> all_elts
-    = Group_interface__extract_elements (  elt_l_, (Score_element*) 0, "elements");
+    = Pointer_group_interface__extract_elements (  elt_l_, (Score_element*) 0, "elements");
   for (int i=0; i < all_elts.size(); i++) 
     {
       Interval y = all_elts[i]->extent(a) + all_elts[i]->relative_coordinate (elt_l_, a);
@@ -134,7 +134,7 @@ Align_interface::axis ()const
 int
 Align_interface::get_count (Score_element*s)const
 {
-  SCM e = elt_l_->get_elt_property ("elements");
+  SCM e = elt_l_->get_elt_pointer ("elements");
   int c =0;
   while (gh_pair_p (e))
     {
index 4639b176a9de01c534c2460af82599cdb2b76e10..2038f51e8a393908068f2b13457a873ad85c88aa 100644 (file)
@@ -31,7 +31,7 @@ Axis_group_engraver::do_creation_processing ()
 Spanner*
 Axis_group_engraver::get_spanner_p () const
 {
-  return new Spanner;
+  return new Spanner (SCM_EOL);
 }
 
 void
index 2211e8ac324a1c260f0f69c88c82c08307605b30..8ae01f77b6b0e53471d312ee3274665f9298907c 100644 (file)
@@ -27,7 +27,7 @@ Engraver::announce_element (Score_element_info i)
   Score_element *  e = i.elem_l_;
 
   if (e->get_elt_property ("interfaces") == SCM_EOL)
-    group (e, "interfaces").add_thing (ly_symbol2scm (e->name()));
+    Group_interface (e, "interfaces").add_thing (ly_symbol2scm (e->name()));
   
   if (!i.origin_trans_l_)
     i.origin_trans_l_ = this;
index 91744ff657dc4d6dc0d977d04242df6c5965940a..f7b66a62c3f6bf30ae9f9ec5d0e77b83d0b774f3 100644 (file)
@@ -6,9 +6,9 @@
   (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
+
 #include "grace-engraver-group.hh"
 #include "lily-guile.hh"
-
 #include "score-element.hh"
 #include "musical-request.hh"
 
@@ -23,7 +23,7 @@ void
 Grace_engraver_group::finish ()
 {
   calling_self_b_ = true;
-  removal_processing ();       // ugr. We'd want to have this done by our parents.g
+  removal_processing ();       // ugr. We'd want to have this done by our parents.
   for (int i=0; i < announce_to_top_.size (); i++)
     {
       Engraver::announce_element (announce_to_top_[i]);
index a24e883da67cf83019269d52e87ad63e01c01e71..b78783c192d4fe3216aea51e938e2227ed5a75e5 100644 (file)
@@ -30,14 +30,6 @@ Group_interface::has_interface_b ()
 }
 
 
-void
-Group_interface::add_element (Score_element*p) 
-{
-  p->used_b_ =  true;
-  elt_l_->used_b_ = true;
-
-  add_thing (p->self_scm_);
-}
 
 void
 Group_interface::add_thing (SCM s)
@@ -63,16 +55,3 @@ Group_interface::set_interface ()
     }
 }
 
-Group_interface
-group (Score_element*s,String n)
-{
-  Group_interface gi (s,n);
-  return gi;
-}
-
-Group_interface
-group (Score_element*s)
-{
-  Group_interface gi (s);
-  return gi;
-}
index 72bc892258ac1aa104e9ee398352dcb0a94727cf..e2eafc6de41e7913efad9192da77ebe065f8ad1d 100644 (file)
@@ -34,22 +34,29 @@ public:
   void add_thing (SCM);
   bool has_interface_b ();
   void set_interface ();
-  void add_element (Score_element*);
 };
 
-Group_interface group (Score_element*);
-Group_interface group (Score_element*, String);
-
+struct Pointer_group_interface {
+  Score_element * elt_l_;
+  String name_;
+public:
+  Pointer_group_interface (Score_element const*);
+  Pointer_group_interface (Score_element const*, String);
+  int count ();
+  void set_interface ();
+  bool has_interface_b ();
+  void add_element (Score_element*);
+};
 /** 
   Put all score elements of ELT's property called NAME into an array,
   and return it.  */
 template<class T>
 Link_array<T>
-Group_interface__extract_elements (Score_element const *elt, T *, String name)
+Pointer_group_interface__extract_elements (Score_element const *elt, T *, const char* name)
 {
   Link_array<T> arr;
 
-  for (SCM s = elt->get_elt_property (name); gh_pair_p (s); s = gh_cdr (s))
+  for (SCM s = elt->get_elt_pointer (name); gh_pair_p (s); s = gh_cdr (s))
     {
       SCM e = gh_car (s);
       assert (SMOB_IS_TYPE_B(Score_element,e));
index 8bf231d3f49745ccad5ff0b5dcc896004ea3b574..5ef166a3bac27d386c7ed6a34e3c1c422c24ae08 100644 (file)
@@ -62,7 +62,7 @@ public:
   Moment when_mom ()const;
 
   bool musical_b () const;
-
+  bool used_b () const;
   void set_rank (int);
 private:
     
index 5d3ca3d56c839f7a41e843f5f8f46895c8e1e78b..b9fc4415b60c01a7051a956c80e1630650ab5d3c 100644 (file)
@@ -36,6 +36,7 @@ public:
   int dot_count () const;
 protected:
   virtual void after_line_breaking ();
+  Rhythmic_head (SCM s);
 };
 
 #endif // RHYTHMIC_HEAD_HH
index f639783421bc095a6ba6cf8f997cec2277ece4d0..71a84a21bcc373a67cbb0f1c80b0c2313f91515f 100644 (file)
@@ -8,26 +8,6 @@
 #ifndef SLURGRAV_HH
 #define SLURGRAV_HH
 
-#include "engraver.hh"
 
-class Slur_engraver :public Engraver {
-  Link_array<Span_req> requests_arr_;
-  Link_array<Span_req> new_slur_req_l_arr_;
-  Link_array<Slur> slur_l_stack_;
-  Link_array<Slur> end_slur_l_arr_;
-
-  void set_melisma (bool);
-protected:
-  virtual bool do_try_music (Music*);
-  virtual void do_process_music();
-  virtual void acknowledge_element (Score_element_info);
-  virtual void do_pre_move_processing();
-  virtual void do_post_move_processing();
-  virtual void do_removal_processing ();
-
-public:
-  VIRTUAL_COPY_CONS(Translator);
-  
-};
 
 #endif // SLURGRAV_HH
index 2a50a826b2d986719502650e0ae2382c30888d7c..b3e894804de62e362478470bcc11de7f4930d5ae 100644 (file)
@@ -40,7 +40,7 @@ public:
   void set_bound (Direction d, Item*);
   Item *get_bound (Direction d) const;
   
-  Spanner ();
+  Spanner (SCM);
   Spanner (Spanner const &);
   bool broken_b () const;
   void do_break ();
index ed980734523d879b369b112e630d80f462cc4c7b..ea8fde5d84395babf682f9f4f2e8aa31f45494d7 100644 (file)
@@ -15,7 +15,9 @@
 #include "lily-guile.hh"
 #include "line-of-score.hh"
 
-Item::Item ()
+Item::Item (SCM s)
+  : Score_element (s)
+
 {
   broken_to_drul_[LEFT] = broken_to_drul_[RIGHT]=0;
 }
@@ -137,8 +139,8 @@ Item::handle_prebroken_dependencies ()
 {
   if (original_l_)
     {
-      element_property_alist_
-       = handle_broken_smobs (original_l_->element_property_alist_,
+      pointer_alist_
+       = handle_broken_smobs (original_l_->pointer_alist_,
                               gh_int2scm (break_status_dir ()));
     }
   
@@ -146,7 +148,7 @@ Item::handle_prebroken_dependencies ()
     Can't do this earlier, because try_visibility_lambda () might set
     the elt property transparent, which would then be copied.
   */
-  SCM vis = remove_elt_property ("visibility-lambda");
+  SCM vis = get_elt_property ("visibility-lambda");
   if (gh_procedure_p (vis))
     {
       SCM args = scm_listify (gh_int2scm (break_status_dir ()), SCM_UNDEFINED);
index b60416ef421ab853cc2ab1765ded1642530c2dfb..a509bd1adb47ed5247fb9054f62e705c4b55cd0c 100644 (file)
@@ -76,7 +76,7 @@ Property_engraver::apply_properties (SCM p, Score_element *e)
       SCM type_p   = gh_cadr (entry);
       SCM elt_prop_sym = gh_caddr (entry);
 
-      SCM preset = scm_assq(elt_prop_sym, e->element_property_alist_);
+      SCM preset = scm_assq(elt_prop_sym, e->property_alist_);
       if (preset != SCM_BOOL_F)
        continue;
   
index 551a050a2a29b4d7e940ef50413f6d36bf9d9005..8a2094b86ee7508b246f70f70417fbf0981bb6ed 100644 (file)
@@ -65,7 +65,7 @@ Scheme_hash_table::print_smob (SCM s, SCM p, scm_print_state*)
   sprintf (str, "#<Scheme_hash_table 0x%0x ", s);
   scm_puts (str, p);      
   Scheme_hash_table *me = SMOB_TO_TYPE(Scheme_hash_table,s);
-  for (Scm_stl_map ::const_iterator i = me->begin (); i != me->end(); i++)
+  for (Scm_stl_map::const_iterator i = me->begin (); i != me->end(); i++)
     {
       scm_display ((*i).first, p);
       scm_puts (" = ",p);      
index 6e018180fd05a83bc21ce7b4c0e661990476bd61..21f8d227dc82a85780690a367e9eb4aefdf00db6 100644 (file)
@@ -15,6 +15,7 @@
 #include "dimensions.hh"
 #include "dimension-cache.hh"
 #include "staff-symbol-referencer.hh"
+#include "group-interface.hh"
 
 Side_position_interface::Side_position_interface (Score_element const *e)
 {
@@ -24,9 +25,7 @@ Side_position_interface::Side_position_interface (Score_element const *e)
 void
 Side_position_interface::add_support (Score_element*e)
 {
-  SCM sup = elt_l_->get_elt_property ("side-support");
-  elt_l_->set_elt_property ("side-support",
-                           gh_cons (e->self_scm_,sup));
+  Pointer_group_interface (elt_l_, "side-support-elements").add_element (e);
 }
 
 
@@ -45,7 +44,7 @@ Side_position_interface::get_direction () const
       relative_dir = to_dir (reldir);
     }
   
-  SCM other_elt = elt_l_->get_elt_property ("direction-source");
+  SCM other_elt = elt_l_->get_elt_pointer ("direction-source");
   Score_element * e = unsmob_element(other_elt);
   if (e)
     {
@@ -64,7 +63,7 @@ Side_position_interface::side_position (Score_element const *cme, Axis axis)
 {
   Score_element* me = (Score_element*)cme;
   Score_element *common = me->parent_l (axis);
-  SCM support = me->get_elt_property ("side-support");
+  SCM support = me->get_elt_pointer ("side-support-elements");
   for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
     {
       Score_element * e  = unsmob_element (gh_car (s));
@@ -229,8 +228,8 @@ void
 Side_position_interface::set_axis (Axis a)
 {
   // prop transparent ? 
-  if (elt_l_->get_elt_property ("side-support") == SCM_UNDEFINED)
-    elt_l_->set_elt_property ("side-support" ,SCM_EOL);
+  if (elt_l_->get_elt_pointer ("side-support-elements") == SCM_UNDEFINED)
+    elt_l_->set_elt_pointer ("side-support-elements" ,SCM_EOL);
 
   if (!elt_l_->has_offset_callback_b (aligned_side, a))
     elt_l_->add_offset_callback (aligned_side, a);
@@ -275,13 +274,13 @@ Side_position_interface::set_padding (Real p)
 bool
 Side_position_interface::has_interface_b () const
 {
-  return elt_l_->get_elt_property ("side-support") != SCM_UNDEFINED;
+  return elt_l_->get_elt_pointer ("side-support-elements") != SCM_UNDEFINED;
 }
 
 bool
 Side_position_interface::supported_b () const
 {
-  SCM s =elt_l_->get_elt_property  ("side-support"); 
+  SCM s =elt_l_->get_elt_pointer  ("side-support-elements"); 
   return s != SCM_UNDEFINED && s != SCM_EOL;
 }
 
index ed53435809f48b8407957c1360f8b1b505c83a0e..9c52f04256b10584cdfd21d980ad4607b8804303 100644 (file)
@@ -28,7 +28,7 @@ Staff_symbol_referencer_interface::set_interface ()
 bool
 Staff_symbol_referencer_interface::has_interface_b ()
 {
-  return unsmob_element (elt_l_->get_elt_property ("staff-symbol"))
+  return unsmob_element (elt_l_->get_elt_pointer ("staff-symbol"))
     || gh_number_p (elt_l_->get_elt_property ("staff-position"));
 }
 
@@ -43,7 +43,7 @@ Staff_symbol_referencer_interface::line_count () const
 Staff_symbol*
 Staff_symbol_referencer_interface::staff_symbol_l () const
 {
-  SCM st = elt_l_->get_elt_property ("staff-symbol");
+  SCM st = elt_l_->get_elt_pointer ("staff-symbol");
   return dynamic_cast<Staff_symbol* > (unsmob_element(st));
 }
 
@@ -91,6 +91,8 @@ Staff_symbol_referencer_interface::position_f () const
 Real
 Staff_symbol_referencer_interface::callback (Score_element const* sc,Axis )
 {
+  Score_element* me = (Score_element*)sc; // UGH.
+  
   SCM pos = sc->get_elt_property ("staff-position");
   Real off =0.0;
   if (gh_number_p (pos))
@@ -98,7 +100,8 @@ Staff_symbol_referencer_interface::callback (Score_element const* sc,Axis )
       Real space = staff_symbol_referencer (sc).staff_space ();
       off = gh_scm2double (pos) * space/2.0;
     }
-  sc->set_elt_property ("staff-position", gh_double2scm (0.0));
+
+  me->set_elt_property ("staff-position", gh_double2scm (0.0));
 
   return off;
 }