/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1998--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1998--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
Pitch is lexicographically ordered by (octave, notename, alteration).
*/
-class Pitch
+class Pitch : public Simple_smob<Pitch>
{
+public:
+ static SCM equal_p (SCM, SCM);
+ int print_smob (SCM, scm_print_state *) const;
+ SCM mark_smob () const;
+ static const char * const type_p_name_;
private:
int octave_;
int notename_;
int get_notename () const;
Rational get_alteration () const;
- Pitch (int octave, int notename, Rational accidental);
- Pitch (int octave, int notename);
+ Pitch (int octave, int notename, Rational accidental = 0);
Pitch ();
Pitch transposed (Pitch) const;
string to_string () const;
DECLARE_SCHEME_CALLBACK (less_p, (SCM a, SCM b));
- DECLARE_SIMPLE_SMOBS (Pitch);
};
enum
SCM ly_pitch_diff (SCM pitch, SCM root);
SCM ly_pitch_transpose (SCM p, SCM delta);
-DECLARE_UNSMOB (Pitch, pitch);
INSTANTIATE_COMPARE (Pitch, Pitch::compare);