]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/key-item.hh
release: 1.0.17
[lilypond.git] / lily / include / key-item.hh
index 759e6d11238c7f40b3e5ef022fce84441cb67165..f8e3747b58cba51b4ae719f56dd7751e6980a426 100644 (file)
@@ -1,34 +1,48 @@
 /*
   key-item.hh -- part of GNU LilyPond
 
-  (c) 1996,97 Han-Wen Nienhuys
+  (c) 1996--1998 Han-Wen Nienhuys
 */
 
 #ifndef KEYITEM_HH
 #define KEYITEM_HH
 
 #include "item.hh"
-#include "varray.hh"
+#include "array.hh"
 
 
 /// An item which places accidentals at the start of the line
 struct Key_item : Item {
-    Array<int> pitch;
-    Array<int> acc;
-    int c_position;
-    bool default_b_;
-
+  Array<int> pitch_arr_;
+  Array<int> acc_arr_;
+  Array<int> old_pitch_arr_;
+  Array<int> old_acc_arr_;
+
+  // ugh.  Naming 
+  int c_position;
+  // see above.
+  int c0_position;
+  bool default_b_;
+  bool multi_octave_b_;
     
-    /* *************** */
-    NAME_MEMBERS();
-    SCORE_ELEM_CLONE(Key_item);
-
-    Key_item(int cposition);
-    void add(int pitch, int acc);
-    void read(const Key_engraver&);
-    void set_c_position(int);
-    virtual void do_pre_processing();
-    Molecule* brew_molecule_p()const;
+  DECLARE_MY_RUNTIME_TYPEINFO;
+  SCORE_ELEMENT_CLONE(Key_item);
+
+  Key_item ();
+  void add (int pitch, int acc);
+  void add (const Musical_pitch&);
+  void add_old (int pitch, int acc);
+  void add_old (const Musical_pitch&);
+  void set (bool multi_octave_b,
+           Array<Musical_pitch> const &idx_arr,
+           Array<Musical_pitch> const &old_idx_arr);
+
+  void set_c_position (int);
+  int Key_item::calculate_position(int p, int a) const;
+
+protected:
+  virtual void do_pre_processing();
+  Molecule* brew_molecule_p() const;
 };
 
 #endif // KEYITEM_HH