-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, [
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)
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
# 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
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,
--- /dev/null
+/*
+ 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;
+}
+
--- /dev/null
+/*
+ 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
#include "varray.hh"
#include "real.hh"
+
+// oo, noo!
#include "virtual-methods.hh"
/**
%
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
\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";
--- /dev/null
+% bug
+% excentric slur can't handle this ...
+\score{
+ \melodic{
+ \octave c;
+ \stemdown;
+ \[4/5c8( c ''f c c\]1/1 c c c )c |
+ }
+}
return Offset (w/2,dy );
}
-Real
-Bow::height_f () const
-{
- return 0;
-}
-
Molecule*
Bow::brew_molecule_p () const
{
return output;
}
+Real
+Bow::height_f () const
+{
+ return 0;
+}
+
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;
--- /dev/null
+/*
+ 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
+
#include "fproto.hh"
#include "scalar.hh"
#include "direction.hh"
+#include "curve.hh"
/** handy interface to symbol table
*/
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;
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();
#include "lily-proto.hh"
#include "parray.hh"
#include "bow.hh"
+#include "curve.hh"
/**
A #Bow# which tries to drape itself around the stems too.
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 ();