X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fbeaming-pattern.hh;h=f22cba2a2d4be1a609ffd29aa02895b7da5f3c14;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=5e0c7c30ecd98004b776fc7fc40603772dae6d67;hpb=1bcba0490ef7ad8671d221844b16b95da22ce9a0;p=lilypond.git diff --git a/lily/include/beaming-pattern.hh b/lily/include/beaming-pattern.hh index 5e0c7c30ec..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,19 +13,29 @@ #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 beat_length_; - 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 (); }; @@ -38,16 +48,16 @@ class Beaming_pattern public: Beaming_pattern (); - void beamify (Context*); + void beamify (Beaming_options const&); void de_grace (); - void add_stem (Moment d, int beams); + 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 */