#include <stdio.h>

#include "both.h"

#define ALLBTS beat=barv[bar].b_first_note; beat<barv[bar].b_last_note;beat++

#define HDSQ 128

#define HALFLINE	3
#define FULLLINE	6
#define HALFSTAVE	12
#define FULLSTAVE	24

#define TIEHT		4

#define TEXTHT		10

#define MOVEWID		5
#define BOXWID		5
#define BOXHT		5
#define ELLIPSEHT	6
#define ELLIPSEWID	6

#define PITCHDATUM	'h'

/* barlines */

#define BLPLAIN		1
#define BLDBLE		2
#define BLTHICKL	3
#define BLTHICHR	4
#define BLTHICKB	5
#define BLRPTL		6
#define BLRPTR		7
#define BLRPTB		8
#define BLLEFT		9
#define HBL		10
#define NBL		11

/* clever args to putatom proc */

#define X 999
#define Y 998
#define S 997
#define U 996
#define V 995

struct atoms {
    char *name;
    int  arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
	height, a_width, right_move, a_v_centre;
    int  (*proc)();
};

struct clefs { /* structure for clefs */
	int	offset; /* pitch wrt middle line of stave */
	int	atomno; /* number of atomic symbol */
	char	letter;	  /* char to represent it */
};

struct barls { /* bar-line definitions for verticals */
	int	offset; /* start wrt end of symbol */
	int	fromwid[6]; /* start & width of verticals */
	int	atomno; /* number of atomic symbol */
	char	letter;	  /* char to represent it */
};

extern struct barls barlv[];

extern char *chname[];
extern char *ps;
extern char *pe;

extern struct atoms atom[];
extern struct clefs clef[];
extern struct notes notev[], *notep;
extern struct bars barv[], *barp, barl;
extern struct staves stavev[], *stavep;
extern struct pieces piecev, piecea, piecem, piecem;
extern int chbass[], chtype[], chscore[];
extern int page_width, reduction, nnotes;
extern int put_monitor, get_monitor, set_monitor;
extern int x_now, y_now, bps_now;
extern float x_scale, y_scale;
extern char readch();
extern char readleft_title();
extern char *textp, textv[];
extern int atom_monitor, up_down_border;
extern float scale_ht, totalheight;
extern int beamslope;
extern char *splines;
extern char *text_sharp, *text_flat, *text_natural; /* strings for sharp and flat in text */
