X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fbeaming-pattern.hh;h=f22cba2a2d4be1a609ffd29aa02895b7da5f3c14;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=9f2adb194029403993189c0cc57a65a3686acc03;hpb=7693db10b018da89a3123cb4c9e21e3956638c56;p=lilypond.git diff --git a/lily/include/beaming-pattern.hh b/lily/include/beaming-pattern.hh index 9f2adb1940..f22cba2a2d 100644 --- a/lily/include/beaming-pattern.hh +++ b/lily/include/beaming-pattern.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1999--2006 Han-Wen Nienhuys + (c) 1999--2008 Han-Wen Nienhuys */ #ifndef BEAMING_PATTERN_HH @@ -13,18 +13,30 @@ #include "moment.hh" #include "lily-proto.hh" +struct Beaming_options +{ + SCM grouping_; + bool subdivide_beams_; + Moment beat_length_; + Moment measure_length_; + + Beaming_options (); + void from_context (Context*); +}; + struct Beam_rhythmic_element { Moment start_moment_; Drul_array beam_count_drul_; - Moment beat_start_; - Moment group_start_; + int rhythmic_importance_; + bool invisible_; - Beam_rhythmic_element (Moment, int); + Beam_rhythmic_element (Moment, int, bool); Beam_rhythmic_element (); - int count (Direction d); + int count (Direction d) const; + void de_grace (); }; /* @@ -36,15 +48,16 @@ class Beaming_pattern public: Beaming_pattern (); - void beamify (Context*); - void add_stem (Moment d, int beams); + void beamify (Beaming_options const&); + void de_grace (); + void add_stem (Moment d, int beams, bool invisible); int beamlet_count (int idx, Direction d) const; private: vector infos_; - void beamify (bool); - int beam_extend_count (Direction) const; - int best_splitpoint_index (bool *split) const; + Direction flag_direction (Beaming_options const&, vsize) const; + void find_rhythmic_importance (Beaming_options const&); + void unbeam_invisible_stems (); }; #endif /* BEAMING_PATTERN_HH */