]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.57
authorfred <fred>
Sun, 24 Mar 2002 20:10:27 +0000 (20:10 +0000)
committerfred <fred>
Sun, 24 Mar 2002 20:10:27 +0000 (20:10 +0000)
12 files changed:
aclocal.m4
flower/axis.cc [new file with mode: 0644]
flower/include/axes.hh [new file with mode: 0644]
flower/include/matrix-storage.hh
init/engraver.ly
input/slur-bug.ly [new file with mode: 0644]
lily/bow.cc
lily/include/bow.hh
lily/include/curve.hh [new file with mode: 0644]
lily/include/lookup.hh
lily/include/slur-grav.hh
lily/include/slur.hh

index de8271571a70f16d3b557ae3c2f8b7a762004088..a459924cb2d335de98a4b0767cd74b43ba2356f0 100644 (file)
@@ -1,4 +1,14 @@
-dnl aclocal.m4 generated automatically by aclocal 1.2
+dnl aclocal.m4 generated automatically by aclocal 1.3
+
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+dnl This Makefile.in is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
 
 
 AC_DEFUN(AC_JUNK_ARGS, [
@@ -109,8 +119,8 @@ fi
 ifelse([$3],,
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
-AM_SANITY_CHECK
-AC_ARG_PROGRAM
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
 dnl FIXME This is truly gross.
 missing_dir=`cd $ac_aux_dir && pwd`
 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
@@ -118,7 +128,7 @@ AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
 AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
 AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
 AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_PROG_MAKE_SET])
+AC_REQUIRE([AC_PROG_MAKE_SET])])
 
 
 # serial 1
@@ -145,10 +155,21 @@ echo timestamp > conftestfile
 # directory).
 if (
    set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "$@" = "X"; then
+   if test "[$]*" = "X"; then
       # -L didn't work.
       set X `ls -t $srcdir/configure conftestfile`
    fi
+   if test "[$]*" != "X $srcdir/configure conftestfile" \
+      && test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
    test "[$]2" = conftestfile
    )
 then
@@ -415,6 +436,15 @@ AC_MSG_RESULT([$NM])
 AC_SUBST(NM)
 ])
 
+
+dnl AM_PROG_LEX
+dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+AC_DEFUN(AM_PROG_LEX,
+[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
+AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
+AC_PROG_LEX
+AC_DECL_YYTEXT])
+
 # Like AC_CONFIG_HEADER, but automatically create stamp file.
 
 AC_DEFUN(AM_CONFIG_HEADER,
diff --git a/flower/axis.cc b/flower/axis.cc
new file mode 100644 (file)
index 0000000..ff85669
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  axis.cc -- implement Axis
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include <assert.h>
+
+#include "axes.hh"
+#include "string.hh"
+
+String
+axis_name_str (Axis a)
+{
+  return String (char(a + 'x'));
+}
+
+/*
+  TODO inline these.
+ */
+Axis
+post_incr(Axis &a)
+{
+  assert(a < NO_AXES);
+  Axis b= a;
+  a = Axis(int(a) + 1);
+  return b;
+}
+
+Axis
+incr(Axis &a)
+{
+  assert(a < NO_AXES);
+  a = Axis(int(a) + 1);
+  return a;
+}
+
diff --git a/flower/include/axes.hh b/flower/include/axes.hh
new file mode 100644 (file)
index 0000000..82e561e
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+  axes.hh -- declare Axis
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef AXES_HH
+#define AXES_HH
+
+enum Axis {
+    X_AXIS =0,
+    Y_AXIS =1,
+    NO_AXES=2,
+};
+
+#ifndef STANDALONE
+
+#include "string.hh"           // ugh
+
+String axis_name_str (Axis);
+
+#endif // STANDALONE
+
+/**
+  the operator ++ for Axis. 
+ */
+Axis post_incr(Axis &);
+Axis incr(Axis &);
+//Axis operator++(Axis);
+
+
+
+#endif // AXES_HH
index 5027b6f5558afa94d13ef9dfc00511d6017790cd..a48f87050c9a1881fda29dc9962262cee63fe14e 100644 (file)
@@ -12,6 +12,8 @@
 
 #include "varray.hh"
 #include "real.hh"
+
+// oo, noo!
 #include "virtual-methods.hh"
 
 /** 
index 427fb4c410e3a034d029212239d375e6d0746347..401b4d59ce081f0f74a016a26a2cd64e2e5225bb 100644 (file)
@@ -3,39 +3,37 @@
 %
 
 Staff = \translator {
-         \type "Engraver_group_engraver";
+       \type "Engraver_group_engraver";
        defaultclef = violin;
 
-         \consists "Bar_engraver";
-         \consists "Clef_engraver";
-         \consists "Key_engraver";
-         \consists "Meter_engraver";
-         \consists "Local_key_engraver";
-         \consists "Staff_sym_engraver";
-         \consists "Collision_engraver";
-         \consists "Rest_collision_engraver";
-
+       \consists "Bar_engraver";
+       \consists "Clef_engraver";
+       \consists "Key_engraver";
+       \consists "Meter_engraver";
+       \consists "Local_key_engraver";
+       \consists "Staff_sym_engraver";
+       \consists "Collision_engraver";
+       \consists "Rest_collision_engraver";
 %{
-         Uncomment to get bar numbers on single staff systems:
-         
-         The Bar_number_engraver puts a number over a staff created
-         at the same level of hierarchy.  This why you have to add it
-         here separately if you want to have numbers on single staff
-         systems: The Bar_number_engraver in Score_engraver will only
-         put numbers on bars that are Score ("system") wide.  Such
-         bars are only created when the toplevel system has multiple
-         children-staffs.
+       Uncomment to get bar numbers on single staff systems:
+       
+       The Bar_number_engraver puts a number over a staff created
+       at the same level of hierarchy.  This why you have to add it
+       here separately if you want to have numbers on single staff
+       systems: The Bar_number_engraver in Score_engraver will only
+       put numbers on bars that are Score ("system") wide.  Such
+       bars are only created when the toplevel system has multiple
+       children-staffs.
 
 %}
- %{
-
+%{
        \consists "Bar_column_engraver";
        \consists "Bar_number_engraver";
 %}
-               \consists "Separating_line_group_engraver";
-         \consists "Line_group_engraver";
+       \consists "Separating_line_group_engraver";
+       \consists "Line_group_engraver";
          
-         \accepts "Voice";
+       \accepts "Voice";
 }
 
 Rhythmic_staff = \translator
@@ -117,7 +115,7 @@ Score = \translator {
        \type Score_engraver;
 
        \consists "Timing_engraver";
-       % uncomment to bar numbers on a whoole system.
+       % uncomment to bar numbers on a whole system.
 %{
        \consists "Bar_column_engraver";
        \consists "Bar_number_engraver";
diff --git a/input/slur-bug.ly b/input/slur-bug.ly
new file mode 100644 (file)
index 0000000..6de3788
--- /dev/null
@@ -0,0 +1,9 @@
+% bug
+% excentric slur can't handle this ...
+\score{
+       \melodic{
+               \octave c; 
+               \stemdown; 
+               \[4/5c8( c ''f c c\]1/1 c c c )c |
+       }
+}
index 7f73df520ce37746e61b144cd8179bd5a5df2a1a..9433f69a18d57bcc55f793e0c02e2b286c958680 100644 (file)
@@ -30,12 +30,6 @@ Bow::center () const
   return Offset (w/2,dy );
 }
 
-Real
-Bow::height_f () const
-{
-  return 0;
-}
-
 Molecule*
 Bow::brew_molecule_p () const
 {
@@ -59,3 +53,9 @@ Bow::brew_molecule_p () const
   return output;
 }
 
+Real
+Bow::height_f () const
+{
+  return 0;
+}
+
index c2908836d5c54a6a9a1ca854e7c84cfc76036156..88f96bc4297a20ff10b45a026c164e5af2d936b8 100644 (file)
@@ -20,8 +20,9 @@ protected:
   Drul_array<Real> dy_f_drul_;
   Drul_array<Real> dx_f_drul_;
 
-  virtual Real height_f () const;
   virtual Molecule* brew_molecule_p () const;
+  virtual Real height_f () const;
+
 public:
   Bow();
   DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/curve.hh b/lily/include/curve.hh
new file mode 100644 (file)
index 0000000..a37be5c
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+  curve.hh -- declare point and curve
+
+  (c) 1998 Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#ifndef CURVE_HH
+#define CURVE_HH
+
+#ifndef STANDALONE
+#include "lily-proto.hh"
+#endif
+
+#include "real.hh"
+
+#include "offset.hh"
+#include "varray.hh"
+
+class Curve : public Array<Offset>
+{
+public:
+  void flipy ();
+  int largest_disturbing ();
+  void rotate (Real phi);
+  void translate (Offset o);
+
+  void operator = (Array<Offset> const & src) 
+  {
+    Array<Offset>::operator =(src);    
+  }
+  void operator = (Curve const & src) 
+  {
+    Array<Offset>::operator =((Array<Offset>)src);     
+  }
+};
+
+#endif // CURVE_HH
+
index 9f7bb3f023a2915e82107aadcf68a9b44523d6bb..523a00b8657ecae2b0dd7c4df340b4d28db419c3 100644 (file)
@@ -13,6 +13,7 @@
 #include "fproto.hh"
 #include "scalar.hh"
 #include "direction.hh"
+#include "curve.hh"
 
 /** handy interface to symbol table
  */
@@ -52,6 +53,7 @@ struct Lookup {
     
   Atom dots () const;
   Atom slur (Real &dy, Real &dx, Real ht, Direction dir) const;
+  Atom control_slur (Array<Offset> controls, Real dx, Real dy) const;
   Atom plet (Real &dy, Real &dx, Direction dir) const;
   Atom tex_slur (int dy, Real &dx, Direction dir) const;
   Atom ps_slur (Real dy, Real dx, Real ht, Real dir) const;
index 3eb6e182dcc536e4410afd092211d72031a92a8b..a27e0518955b6878454bd202f2339f5a0175871c 100644 (file)
@@ -18,13 +18,13 @@ class Slur_engraver :public Engraver {
   Direction dir_;
 
 protected:
-
   virtual bool do_try_request (Request*);
   virtual void do_process_requests();
   virtual void acknowledge_element (Score_elem_info);
   virtual void do_pre_move_processing();
   virtual void do_post_move_processing();
   virtual void do_removal_processing ();
+
 public:
   TRANSLATOR_CLONE(Slur_engraver);
   Slur_engraver();
index 8d2212b294a1884f6dde7d69018217c45f4d3fea..e3df46d0ae876590e50cb41231c7200c2062b002 100644 (file)
@@ -11,6 +11,7 @@
 #include "lily-proto.hh"
 #include "parray.hh"
 #include "bow.hh"
+#include "curve.hh"
 
 /**
   A #Bow# which tries to drape itself around the stems too.
@@ -19,7 +20,12 @@ class Slur : public Bow {
 public:
   Link_array<Note_column> encompass_arr_;
   void add (Note_column*);
+
 protected:
+  virtual Molecule* brew_molecule_p () const;
+  Array<Offset> get_notes () const;
+  Array<Offset> get_controls () const;
+
   virtual void set_default_dir();
   virtual void do_post_processing();
   virtual void do_add_processing ();