]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/repeated-music.hh
Issue 4842/6: Don't special-case Scheme_engraver's acknowledgers
[lilypond.git] / lily / include / repeated-music.hh
index b2deaee08fa4446f23769b0a9aff0c97aebfcf8b..a346f6a388c7150d22e4872f9274fe0f8af59c7d 100644 (file)
@@ -1,17 +1,26 @@
-/*   
-  repeated-music.hh -- declare Repeated_music
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef RepEATED_MUSIC_HH
-#define RepEATED_MUSIC_HH
+/*
+  This file is part of LilyPond, the GNU music typesetter.
 
 
-#include "music.hh"
+  Copyright (C) 1999--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
 
 
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef REPEATED_MUSIC_HH
+#define REPEATED_MUSIC_HH
+
+#include "music.hh"
 
 /**
    Musical repeats.
 
 /**
    Musical repeats.
    There are three modes of representing this  music:
 
    BODY A
    There are three modes of representing this  music:
 
    BODY A
-        B
-       C
+   B
+   C
 
    is called "folded". Mostly used for lyrics.
 
 
    is called "folded". Mostly used for lyrics.
 
-   
+
    BODY A B C
 
    is called volta.  This is common notation
    BODY A B C
 
    is called volta.  This is common notation
 
    If the number of repeats is bigger than the number of alternatives, then
    the first alternative is assumed to be repeated.
 
    If the number of repeats is bigger than the number of alternatives, then
    the first alternative is assumed to be repeated.
-   
 */
 */
-class Repeated_music : public Music
+class Repeated_music
 {
 public:
 {
 public:
-  Music * body () const;
-  Music_sequence * alternatives () const;
-
-  /// how often do we repeat?
-  int repeat_count( ) const;
-  virtual Pitch to_relative_octave (Pitch);
+  static Music *body (Music *);
+  static SCM alternatives (Music *);
 
 
-  Moment body_length_mom () const;
-  Moment alternatives_length_mom (bool fold) const;
+  /* How often do we repeat? */
+  static int repeat_count (Music *);
 
 
-  DECLARE_SCHEME_CALLBACK(unfolded_music_length, (SCM));
-  DECLARE_SCHEME_CALLBACK(volta_music_length, (SCM));
-  DECLARE_SCHEME_CALLBACK(folded_music_length, (SCM));    
-  
-  /// Transpose, with the interval central C to #p#
-  virtual void transpose (Pitch p);
+  static Moment body_get_length (Music *);
+  static Moment alternatives_get_length (Music *, bool fold);
+  static Moment alternatives_volta_get_length (Music *);
 
 
-  /// Scale the music in time by #factor#.
-  virtual void compress (Moment factor);
-  VIRTUAL_COPY_CONS(Music);
-
-  Repeated_music (Music*, int , Music_sequence*);
-  Repeated_music (Repeated_music const&);
+  DECLARE_SCHEME_CALLBACK (unfolded_music_length, (SCM));
+  DECLARE_SCHEME_CALLBACK (volta_music_length, (SCM));
+  DECLARE_SCHEME_CALLBACK (folded_music_length, (SCM));
+  DECLARE_SCHEME_CALLBACK (minimum_start, (SCM));
+  DECLARE_SCHEME_CALLBACK (first_start, (SCM));
 };
 
 };
 
-
-#endif /* RepEATED_MUSIC_HH */
+#endif /* REPEATED_MUSIC_HH */