chiark / gitweb /
Import upstream version 5.3.
[mup] / mup / mup / globals.h
CommitLineData
69695f33
MW
1/* Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2 * 2005, 2006 by Arkkra Enterprises */
3/* All rights reserved */
4/*
5 * globals.h
6 *
7 * This file has externs for the global variables defined in global.c.
8 * It also has externs for all nonstatic functions.
9 */
10
11#ifndef _GLOBALS
12#define _GLOBALS
13
14#ifdef __WATCOMC__
15#include <sys\types.h>
16#endif
17#include <string.h>
18#include <ctype.h>
19#include "structs.h"
20#ifdef VMS
21#include <unixio.h>
22#endif
23
24/*
25 * Some non-ANSI compilers may not have these defined in stdio.h, so if they
26 * aren't defined, define them now.
27 */
28#ifndef SEEK_SET
29#define SEEK_SET 0
30#endif
31#ifndef SEEK_CUR
32#define SEEK_CUR 1
33#endif
34#ifndef SEEK_END
35#define SEEK_END 2
36#endif
37
38/* ====== externs for variables--see globals.c for comments about them ===== */
39
40extern struct SSV Score;
41extern struct SSV Staff[MAXSTAFFS];
42extern struct SSV Voice[MAXSTAFFS][MAXVOICES];
43
44extern short Staff_vis[MAXSTAFFS + 1];
45extern short Voice_vis[MAXSTAFFS + 1][MAXVOICES + 1];
46
47extern struct MAINLL *Mainllhc_p;
48extern struct MAINLL *Mainlltc_p;
49
50extern int Optch;
51extern int Mupmate;
52extern int Errorcount;
53extern int Maxverses;
54extern short Meas_num;
55extern int Preproc;
56extern int Ppcomments;
57
58extern int Context;
59extern int Curr_family;
60extern int Curr_font;
61extern int Curr_size;
62extern int Got_some_data;
63extern int Doing_tab_staff;
64extern int Doing_MIDI;
65extern char *Curr_filename;
66extern char *Outfilename;
67extern int Vflag;
68extern int Vcombused;
69extern int CSBused;
70extern int CSSused;
71extern int CSSpass;
72
73extern int yylineno;
74/* This 8192 must agree with YYLMAX in lex.c. We shouldn't have to specify
75 * the size here, but at least one compiler generates bad code if we don't. */
76extern char yytext[8192];
77
78extern int Last_was_newline;
79extern unsigned char Hctab[];
80extern unsigned char Xhctab[];
81extern unsigned char Dhctab[];
82extern unsigned char Resttab[];
83extern int Letshift[];
84extern char Circle[];
85extern char Acclets[];
86extern char *Acctostr[];
87extern char Ped_start[];
88extern char Ped_stop[];
89
90extern struct STRINGINFO Guitar[DEFTABLINES];
91extern int Octave_adjust[MAXSTAFFS+1];
92extern int Octave_bars[MAXSTAFFS+1];
93extern float Octave_count[MAXSTAFFS+1];
94
95extern float _Page [NUMCTYPE];
96extern float _Win [NUMCTYPE];
97extern float _Cur [NUMCTYPE];
98
99extern struct BLOCKHEAD Header;
100extern struct BLOCKHEAD Footer;
101extern struct BLOCKHEAD Header2;
102extern struct BLOCKHEAD Footer2;
103
104extern float *Score_location_p;
105extern float Staffs_y[MAXSTAFFS + 1];
106
107extern struct RANGELIST *Staffrange_p;
108extern struct RANGELIST *Vnorange_p;
109
110extern short Place;
111
112extern short Ped_snapshot[MAXSTAFFS + 1];
113
114extern struct MAINLL *Staffmap_p[MAXSTAFFS + 1];
115extern struct MAINLL *List_of_staffs_p;
116
117extern struct SVRANGELIST *Svrangelist_p;
118extern struct GRPSYL *Curr_gs_list_p;
119extern short Got_multirest;
120extern short Got_group;
121
122extern short Pagenum;
123extern int Last_pagenum;
124
125extern short Font_used[MAXFONTS];
126
127extern struct ATEND_INFO Atend_info;
128
129extern float Staffscale;
130extern float Stdpad;
131extern float Stepsize;
132extern float Flagsep;
133extern float Smflagsep;
134extern float Tupheight;
135
136extern RATIONAL Zero;
137extern RATIONAL One_fourth;
138extern RATIONAL One_third;
139extern RATIONAL One_half;
140extern RATIONAL Two_thirds;
141extern RATIONAL Three_fourths;
142extern RATIONAL One;
143extern RATIONAL Two;
144extern RATIONAL Three;
145extern RATIONAL Four;
146
147extern RATIONAL Maxtime;
148
149extern int Debuglevel;
150extern int ifdebug;
151
152/* =========== defines that depend on the above variables ============= */
153
154/* size of the actual paper, scaled so that the right amount of music fits */
155#define PGHEIGHT (Score.pageheight / Score.scale_factor)
156#define PGWIDTH (Score.pagewidth / Score.scale_factor)
157
158/* must divide margin variables by scale to cancel out the scaling for them */
159#define EFF_TOPMARGIN (Score.topmargin / Score.scale_factor)
160#define EFF_BOTMARGIN (Score.botmargin / Score.scale_factor)
161/* right & left margins use functions eff_rightmargin() & eff_leftmargin() */
162
163/* =========== externs for global variables in generated code ============= */
164
165extern int yydebug; /* yacc debug flag */
166extern FILE *yyin; /* where lex will read from */
167
168/* =========== externs for functions ============= */
169
170#ifdef __STDC__
171#include <stdlib.h>
172#include <unistd.h>
173#else
174/* UNIX utilities that don't appear in official header files in SV_R3 */
175extern char *malloc();
176extern char *calloc();
177extern char *realloc();
178extern void free();
179
180extern void exit();
181extern int abs();
182extern int atoi();
183extern double atof();
184extern void qsort();
185extern long strtol();
186#endif
187
188/* abshorz.c */
189extern void abshorz P((void));
190
191/* absvert.c */
192extern void absvert P((void));
193
194/* assign.c */
195extern void assign_int P((int var, int value, struct MAINLL *mainll_item_p));
196extern void assign_float P((int var, double value,
197 struct MAINLL *mainll_item_p));
198extern void assign_vscheme P((int numvoices, int vtype,
199 struct MAINLL *mainll_item_p));
200extern void assign_key P((int num, int acc, int minor,
201 struct MAINLL *mainll_item_p));
202extern void assign_string P((int var, char *string,
203 struct MAINLL *mainll_item_p));
204extern void assign_unit P((int unittype, struct MAINLL *mainll_p));
205extern char *copy_string P((char *string, int font, int size));
206extern void assign_timesig P(( struct MAINLL *mainll_item_p, int invisible,
207 char **next_alternation_p));
208extern void assign_font P((int var, int value, struct MAINLL *mainll_item_p));
209extern void new_staffset P((void));
210extern void add_staffset P((int start, int end, char *label1, char *label2));
211extern void set_staffset P((int var, struct MAINLL *mainll_item_p));
212extern void new_barstlist P((void));
213extern void add_barst P((int start, int end));
214extern void set_barstlist P((struct MAINLL *mainll_item_p));
215extern void new_beamlist P((void));
216extern void add_beamlist P((RATIONAL value));
217extern void set_beamlist P((struct MAINLL *mainll_item_p));
218extern void asgn_stafflines P((int numlines, int printclef,
219 struct MAINLL *mainll_item_p));
220extern void set_font P((int var, int value, struct MAINLL *mll_p));
221extern void add_tab_string_info P((int pitch, int accidental, int nticks,
222 int octave, struct SSV *ssv_p));
223extern void set_mnum P((struct BAR *bar_p, int mnum));
224extern void assign_2floats P((int var, double value1, double value2,
225 struct MAINLL *mainll_item_p));
226extern void chkmargin P((double topmargin, double botmargin, double leftmargin,
227 double rightmargin));
228extern double adjust2inches P((double value));
229extern void begin_subbeam P((void));
230extern void end_subbeam P((void));
231extern void assign_vcombine P((int qualifier, struct MAINLL * mainll_p));
232
233/* beaming.c */
234extern void setbeamloc P((struct GRPSYL *curr_grp_p,
235 struct GRPSYL *last_grp_p));
236extern int has_cust_beaming P((struct GRPSYL *grpsyl_p));
237extern void do_beaming P((struct GRPSYL *grpsyl_p, int grpsize, int staffno,
238 int vno));
239extern void set_alt_beams P((struct GRPSYL *grpsyl_p));
240extern int chk_crossbeam P((struct GRPSYL *gs_p, struct MAINLL *mll_p));
241
242/* beamstem.c */
243extern void beamstem P((void));
244
245/* brac.c */
246extern int brac_check P((struct STAFFSET *bracelist_p, int nbrace,
247 struct STAFFSET *bracklist_p, int nbrack));
248extern int pr_brac P((int is_restart, double x_offset, struct MAINLL *mll_p));
249extern double width_left_of_score P((struct MAINLL *mll_p));
250extern double pwidth_left_of_score P((struct MAINLL *mll_p,
251 struct MAINLL *prev_feed_mll_p));
252
253/* charinfo.c */
254extern double height P((int font, int size, int ch));
255extern double width P((int font, int size, int ch));
256extern double ascent P((int font, int size, int ch));
257extern double descent P((int font, int size, int ch));
258extern char *fix_string P((char *string, int font, int size, char *fname,
259 int lineno));
260extern char *mc_num2name P((int code, int font));
261extern unsigned char mc_name2num P((char *name, char *fname, int lineno,
262 int *size_p, int *font_p));
263extern int str2mfont P((int str));
264extern int mfont2str P((int mfont));
265#ifdef EXTCHAR
266extern char *ext_num2name P((int code));
267#endif
268extern int is_music_symbol P((char *str));
269extern double strascent P((char *str));
270extern double strdescent P((char *str));
271extern double strheight P((char *str));
272extern double strwidth P((char *str));
273extern char *tranchstr P((char *chordstring, int staffno));
274extern int restchar P((int basictime));
275extern char *dashstr P((char *str));
276extern void end_fontsize P((char *str, int *font_p, int *size_p));
277extern char *ascii_str P((char *str, int verbose, int pagenum, int textmod));
278extern char *split_string P((char *string, double desired_width));
279extern int adj_size P((int size, double factor, char *filename, int lineno));
280extern char *resize_string P((char *string, double factor, char *filename,
281 int lineno));
282extern double left_width P((char *));
283extern char *acc_trans P((char *string));
284extern char *modify_chstr P((char *string, int modifier));
285extern int is_ital_font P((int font));
286extern double circled_dimensions P((char *str, float* height_p, float *width_p,
287 float *ascent_adjust, float *x_offset_p));
288extern char *get_reh_string P((char *string, int staffnum));
289
290/* check.c */
291extern int rangecheck P((int n, int min, int max, char *name));
292extern int frangecheck P((double n, double min, double max, char *name));
293extern int power_of2check P((int n, char *name));
294extern int contextcheck P((int validcontext, char *action));
295extern char *contextname P((int cont));
296extern void check_at_least1visible P((void));
297extern void chk_vis_feed P((void));
298extern void chk_interval P((int inttype, int intnum));
299extern void used_check P((struct MAINLL *mll_p, int var, char *name));
300extern int l_rangecheck P((int num, int min, int max, char *name, char *fname,
301 int lineno));
302extern void combine_rests P((int c));
303extern char *markname P((int mark));
304extern void chk_order P((struct SSV *ssv_p, int place));
305extern int erangecheck P((int n, int min, int max, int empty_value,
306 char *name));
307extern void chk_x_arg P((char *x_arg, int *start_p, int *end_p));
308extern void extract P((int start, int end));
309
310/* debug.c */
311extern char *stype_name P((int stype));
312extern void print_mainll P((void));
313
314/* errors.c */
315extern void ufatal P((char *format, ...));
316extern void pfatal P((char *format, ...));
317extern void l_ufatal P((char *filename, int lineno, char *format, ...));
318extern void l_pfatal P((char *filename, int lineno, char *format, ...));
319extern void l_no_mem P((char *filename, int lineno));
320extern void cant_open P((char *filename));
321extern void warning P((char *format, ...));
322extern void l_yyerror P((char *fname, int lineno, char *format, ...));
323extern void l_warning P((char *filename, int lineno, char *format, ...));
324extern void debug P((int level, char *format, ...));
325extern int debug_on P((int level));
326extern void doraterr P((int code));
327extern void error_exit P((void));
328extern void print_offending_line P((char *filename, int lineno));
329
330/* font.c */
331extern double fontascent P((int font, int size));
332extern double fontdescent P((int font, int size));
333extern double fontheight P((int font, int size));
334extern void parse_font_file P((char *filename));
335extern int lookup_font P((char *fontname));
336extern int font_index P((int font));
337extern char *fontnum2name P((int font));
338
339/* fontdata.c */
340extern struct FONTINFO Fontinfo[MAXFONTS];
341extern float Maxfontheight[MAXFONTS];
342extern float Maxfontascent[MAXFONTS];
343
344/* gram.y */
345extern int yyparse P((void));
346extern int yyerror P((char *msg));
347
348/* grpsyl.c */
349extern struct GRPSYL *newGRPSYL P((int grp_or_syl));
350extern void copy_attributes P((struct GRPSYL *newgrp_p,
351 struct GRPSYL *oldgrp_p));
352extern struct TIMELIST *copy_timeunit P((struct GRPSYL *newgrp_p,
353 struct GRPSYL *oldgrp_p, struct TIMELIST *timelist_p));
354extern void copy_notes P((struct GRPSYL *newgrp_p, struct GRPSYL *oldgrp_p));
355extern void link_notegroup P((struct GRPSYL *newgrp_p,
356 struct GRPSYL *last_grp_p));
357extern void add_note P((struct GRPSYL *grpsyl_p, int pitch, int accidental,
358 int octave, int nticks, int has_paren, char *bend_string));
359#ifdef __STDC__
360extern int notecomp P((const void *item1_p, const void *item2_p));
361#else
362extern int notecomp P((char *item1_p, char *item2_p));
363#endif
364extern int reconstruct_basictime P((RATIONAL fulltime));
365extern int recalc_dots P((RATIONAL fulltime, int basictime));
366extern void clone_withlist P((struct GRPSYL *newgrp_p,
367 struct GRPSYL *oldgrp_p));
368extern char *stringname P((int stringno, int staffno));
369extern char *format_string_name P((int letter, int accidental,
370 int nticks));
371extern void do_bar P((int bartype));
372extern void begin_tuplet P((void));
373extern void end_tuplet P((int tupcont, RATIONAL tuptime, int printtup,
374 int tupside));
375extern void check4barline_at_end P((void));
376extern void add_multirest P((int nummeas));
377extern struct GRPSYL *clone_gs_list P((struct GRPSYL *list_p,
378 int copy_noteinfo));
379extern void add_slurto P((struct GRPSYL *grpsyl_p, int pitch, int octave,
380 int note_index, int slurstyle));
381extern void free_grpsyls P((struct GRPSYL *gs_p));
382extern void resize_notelist P((struct GRPSYL *gs_p));
383extern void add_meas_space P((struct GRPSYL **gs_p_p, int staff, int voice));
384extern int is_mrpt P((struct GRPSYL *gs_p));
385extern void report_mix_error P((void));
386extern void free_notelist P((struct GRPSYL *gs_p));
387extern void begin_slur P((struct GRPSYL *grpsyl_p, int note_index));
388extern void set_slurdir P((struct GRPSYL *grpsyl_p, int note_index, int dir));
389extern int has_pickup P((void));
390extern struct GRPSYL *expandgrp P((struct GRPSYL *grpsyl_p,
391 struct TIMELIST *timelist_p));
392extern RATIONAL calcfulltime P((RATIONAL basictime, int dots));
393
394/* lex.l */
395extern void chk_ifdefs P((void));
396extern int save_macro P((FILE *file));
397extern int yylex P((void));
398extern void get_parameters P((char *macname));
399extern int get_mac_arguments P((char *macname, int num_args));
400extern void pushback P((int c));
401extern void begin_raw P(());
402extern void end_raw P(());
403extern void new_lexbuff P((FILE *file));
404extern void del_lexbuff P((void));
405
406/* locvar.c */
407extern void fix_locvars P((void));
408
409/* lyrics.c */
410extern void lyr_verse P((int begin, int end));
411extern void proc_lyrics P((struct GRPSYL *grpsyl_p, char *lyrstring));
412extern void attach_lyrics2staffs P((struct MAINLL *mll_staffs_p));
413extern void sylwidth P((char *lyrstring, float *wid_b4_syl_p,
414 float *wid_real_syl_p, float *wid_after_syl_p));
415extern void set_maxverses P((void));
416extern struct SSV *get_lyr_dflt_timeunit_ssv P((void));
417extern void setlyrfont P((int staffno, int font));
418extern void setlyrsize P((int staffno, int size));
419extern void lyr_compensate P((struct GRPSYL *gs_p));
420extern struct GRPSYL *derive_lyrtime P((void));
421extern void lyr_new_bar P((void));
422
423/* macros.c */
424extern int not_in_mac P((int inc_dec));
425extern void mac_error P((void));
426extern void includefile P((char *fname));
427extern int popfile P((void));
428extern void cmdline_macro P((char *macdef));
429extern void define_macro P((char *macname));
430extern void undef_macro P((char *macname));
431extern void call_macro P((char *macname));
432extern int is_defined P((char *macname, int paramtoo));
433#ifndef unix
434extern void mac_cleanup P((void));
435#endif
436extern void add_parameter P((char *macname, char *param_name));
437extern void set_parm_value P((char *macname, char *argbuff, int argnum));
438extern char *add2argbuff P((char *argbuff, int c));
439extern FILE *find_file P((char **filename_p));
440extern void preproc P((void));
441
442/* main.c */
443extern int onpagelist P((int pagenum));
444extern int yywrap P((void));
445extern int last_page P((void));
446
447/* mainlist.c */
448extern struct MAINLL *newMAINLLstruct P((int structtype, int lineno));
449extern void insertMAINLL P((struct MAINLL *info_p, struct MAINLL *where));
450extern void unlinkMAINLL P((struct MAINLL *which_p));
451
452/* map.c */
453extern void begin_map P((void));
454extern void end_map P((void));
455extern void map_item P((void));
456extern void save_map P((void));
457extern struct SSV *get_dflt_timeunit_ssv P((void));
458extern void reset_input_style P((void));
459extern int input_style P((int staff, int voice));
460extern void merge_dup_notes P((struct GRPSYL *gs_p, int n));
461extern void link_groups P((void));
462extern int is_tab_range P((void));
463extern int timelists_equal P((struct TIMELIST *tlist1_p,
464 struct TIMELIST *tlist2_p));
465
466/* mkchords.c */
467extern void makechords P((void));
468
469/* midi.c */
470extern void gen_midi P((char *midifilename));
471extern UINT32B write_delta P((int mfile));
472extern int voice_used P((int staffno, int vno));
473
474/* midiutil.c */
475extern void fix_track_size P((int mfile, long track_start, long track_size));
476extern int parse_octave P((char *string, int place, char *fname, int lineno));
477extern int clocks P((int num));
478extern int getkeyword P((char *string, char **key_p, int *leng_p,
479 char **arg_p_p));
480extern int matches P((char *key, int leng, char *cmd));
481extern int hexdig P((int ch));
482extern UINT32B midi_wrstring P((int mfile, char *str, int internalform));
483extern UINT32B wr_varlength P((int mfile, UINT32B num));
484extern UINT32B midi_keysig P((int mfile, int sharps, int is_minor));
485extern UINT32B midi_timesig P((int mfile));
486extern void add_rest P((struct GRPSYL *gs_p, RATIONAL fulltime));
487extern struct GRPSYL *grp_before P((struct GRPSYL *gs_p, struct MAINLL *mll_p,
488 int staffno, int v));
489extern void midi_squeeze P((void));
490extern void guitar_transpose P((void));
491extern void other_voice_accidentals P((struct STAFF *staff_p));
492extern void mv_midi_items P((struct MAINLL *mll_p,
493 struct MAINLL *topstaff_mll_p));
494extern int get_param P((char *arg, char *inputfile, int inputlineno,
495 int *parmnum_p, int *parmval_p));
496
497/* nxtstrch.c */
498extern double backsp_width P((int size));
499extern int next_str_char P((char **str_p, int *font_p, int *size_p));
500extern int nxt_str_char P((char **str_p, int *font_p, int *size_p,
501 int *textfont_p, double *vertical_p, double *horizontal_p,
502 int *in_pile_p, int slash));
503extern double align_distance P((char *string, int font, int size));
504extern double pile_width P((void));
505extern int pile_size P((int size, int in_pile));
506
507/* parstssv.c */
508extern struct TIMEDSSV *tssv_create P((int context));
509extern void tssv_update P((struct TIMEDSSV *timedssv_p, int param, int value));
510extern void tssv_setgrpsyl P((struct GRPSYL *gs_p));
511extern void tssv_line P((void));
512extern struct TIMEDSSV *tssv_sort P((void));
513
514/* parstuff.c */
515extern void chk_stuff_header P((int size, int modifier, int place,
516 int dist_usage));
517extern void add_stuff_item P((double start_count, double start_steps,
518 int gracebackup, char *string, int bars, double count,
519 int dist, int dist_usage));
520extern int string_is_sym P((char *string, int sym, int font));
521extern void attach_stuff P((void));
522extern void meas_stuff_chk P((void));
523extern void chk4dangling_til_clauses P((char *boundary_desc));
524extern struct STUFF *newSTUFF P((char *string, int dist, int dist_usage,
525 double start_count, double start_steps, int gracebackup,
526 int bars, double count, int stuff_type, int modifier,
527 int place, char *inputfile, int inputlineno));
528extern void reset_ped_state P((void));
529extern void set_reh_string P((struct BAR *bar_p, int fontfamily, int font,
530 int size, char *string));
531extern void set_stuff_type P((int stuff_type));
532extern int dflt_place P((void));
533extern void ped_endings P((int endingloc));
534extern void multi_stuff P((int nmeas));
535extern int get_stuff_type P((void));
536extern char *stuff_modifier P((int modifier));
537extern char *pad_string P((char *string, int modifier));
538extern void connect_stuff P((struct STAFF *staff_p, struct STUFF *stufflist_p));
539extern void init_reh P((int rehnumber, char *rehletter,
540 struct MAINLL *mainbar_p));
541
542/* phrase.c */
543extern void phrase_points P((struct MAINLL *mll_p, struct STUFF *stuff_p));
544extern void tieslur_points P((struct MAINLL *mll_p, struct STUFF *stuff_p));
545extern void bend_points P((struct MAINLL *mll_p, struct STUFF *stuff_p));
546extern void tabslur_points P((struct MAINLL *mll_p, struct STUFF *stuff_p));
547
548/* plutils.c */
549extern struct GRPSYL *nextnongrace P((struct GRPSYL *gs_p));
550extern struct GRPSYL *prevnongrace P((struct GRPSYL *gs_p));
551extern struct GRPSYL *nextglobnongrace P((struct GRPSYL *gs_p,
552 struct MAINLL **mll_p_p));
553extern struct GRPSYL *prevglobnongrace P((struct GRPSYL *gs_p,
554 struct MAINLL **mll_p_p));
555extern int drmo P((int num));
556extern double tieslurpad P((struct STAFF *staff_p, struct GRPSYL *gs_p));
557extern int hasspace P((struct GRPSYL *gs_p, RATIONAL vtime, RATIONAL vtime2));
558extern struct GRPSYL *closestgroup P((double count, struct GRPSYL *firstgs_p,
559 int timeden));
560extern int chkallspace P((struct MAINLL *msbeg_p, struct STUFF *stuff_p,
561 int vno));
562extern int allspace P((int vno, struct MAINLL *msbeg_p, RATIONAL begtime,
563 struct MAINLL *msend_p, RATIONAL endtime));
564extern struct MAINLL *getendstuff P((struct MAINLL *mainll_p,
565 struct STUFF *stuff_p, int *timeden_p));
566extern void accdimen P((struct NOTE *note_p, float *ascent_p, float *descent_p,
567 float *width_p));
568extern double staffvertspace P((int s));
569extern double halfstaffhi P((int s));
570extern RATIONAL ratbend P((struct NOTE *note_p));
571extern double notehorz P((struct GRPSYL *gs_p, struct NOTE *note_p, int coord));
572extern int allsmall P((struct GRPSYL *gs1_p, struct GRPSYL *gs2_p));
573extern void finalstemadjust P((struct GRPSYL *gs_p));
574extern double getstemshift P((struct GRPSYL *gs_p));
575extern int vscheme_voices P((int vscheme));
576extern struct MAINLL *chmgrp2staffm P((struct MAINLL *mll_p,
577 struct GRPSYL *gs_p));
578extern void shiftgs P((struct GRPSYL *gs_p, double shift));
579extern double nearestline P((double offset));
580extern void vfyoffset P((struct GRPSYL *g_p[]));
581extern double adjslope P((struct GRPSYL *g_p, double oldslope, int betweencsb));
582extern double eos_bar_adjust P((struct BAR *bar_p));
583extern double curve_y_at_x P((struct CRVLIST *first_p, double x));
584extern double findcubic P((struct CRVLIST *left_p, struct CRVLIST *right_p,
585 float *a_p, float *b_p, float *c_p));
586extern double solvecubic P((double a, double b, double c, double d,
587 double lo, double hi, double thresh));
588extern int css_affects_stemtip P((struct GRPSYL *gs1_p));
589extern struct CHORD *gs2ch P((struct MAINLL *mll_p, struct GRPSYL *gs_p));
590extern int css_affects_tieslurbend P((struct STUFF *stuff_p, struct MAINLL *mll_p));
591extern int css_affects_phrase P((struct STUFF *stuff_p, struct MAINLL *mll_p));
592extern struct GRPSYL *nextsimilar P((struct GRPSYL *gs_p));
593extern struct GRPSYL *prevsimilar P((struct GRPSYL *gs_p));
594extern double stemroom P((struct GRPSYL *gs_p));
595
596/* print.c */
597extern void print_music P((void));
598extern void do_linetype P((int ltype));
599extern void draw_line P((double x1, double y1, double x2, double y2));
600extern void pr_muschar P((double x, double y, int ch, int size, int font));
601extern double pr_clefsig P((struct MAINLL *mll_p, struct CLEFSIG *clefsig_p,
602 int really_print));
603extern void pr_string P((double x, double y, char *string, int justify,
604 char *fname, int lineno));
605extern void end_curve P((int ncoord, double x, double y));
606extern void outcoord P((double val));
607extern void draw_wavy P((double x1, double y1, double x2, double y2));
608extern void do_pr_brac P((double x, double y1, double y2, int which));
609extern void pr_linenum P((char *inputfile, int inputlineno));
610extern void do_moveto P((double x, double y));
611extern void do_line P((double x, double y));
612extern void do_fill P((void));
613extern void do_stroke P((void));
614extern void do_curveto P((double x1, double y1, double x2, double y2,
615 double x3, double y3));
616extern void do_newpath P((void));
617extern void do_closepath P((void));
618extern void trailer P((void));
619extern void do_closepath P((void));
620extern void do_whitebox P((double x1, double y1, double x2, double y2));
621extern void draw_prop_line P((double x1, double y1, double x2, double y2,
622 int size, int ltype));
623extern void do_grid P((double x, double y, double space, struct GRID *grid_p,
624 int staff));
625extern void newpage P((struct MAINLL *mll_p));
626extern void pr_feed P((struct MAINLL *main_feed_p));
627extern double pr_clef P((int staffno, double x, int really_print, int size));
628
629/* prntdata.c */
630extern void pr_staff P((struct MAINLL *mll_p));
631extern int tupdir P((struct GRPSYL *gs_p, struct STAFF *staff_p));
632extern char *num2str P((int num));
633extern char *mrnum P((struct STAFF *staff_p, double *x_p, double *y_offset_p,
634 double *height_p, double *width_p));
635extern int tupgetsbrack P((struct GRPSYL *gs_p));
636extern char *tupnumsize P((struct GRPSYL *gs_p, float *west_p,
637 float *east_p, float *height_p, struct STAFF *staff_p));
638extern int pbeamside P((struct GRPSYL *gs_p, struct GRPSYL *first_p));
639extern struct GRPSYL *nxtbmgrp P((struct GRPSYL *gs_p, struct GRPSYL *first_p,
640 struct GRPSYL *endnext_p));
641extern struct GRPSYL *prevbmgrp P((struct GRPSYL *gs_p,
642 struct GRPSYL *first_p));
643extern double end_bm_offset P((struct GRPSYL *top_first_p, struct GRPSYL *end_p,
644 int basictime));
645extern void pr_slashes P((struct GRPSYL *grpsyl_p, double x, double y,
646 double sign, double offset, double y_tilt));
647extern void pr_tab_groups P((struct GRPSYL *gs_p, struct MAINLL *mll_p));
648extern void pr_withlist P((struct GRPSYL *gs_p));
649extern void pr_mrpt P((struct GRPSYL *gs_p, struct STAFF *staff_p));
650extern void pr_multirest P((struct GRPSYL *gs_p, struct STAFF *staff_p));
651
652/* prntmisc.c */
653extern void pr_endings P((struct MAINLL *main_feed_p));
654extern int has_ending P((int staffno));
655extern void pr_ped_char P((struct STUFF *stuff_p, int staffno));
656extern void pr_ped_bar P((struct MAINLL *mll_p, struct BAR *bar_p));
657extern void pr_phrase P((struct CRVLIST *crvlist_p, int linetype, int tapered,
658 int staffno));
659extern void pr_allcurve P((float x[], float y[], int num, double cwid,
660 int tapered));
661extern void saveped P((struct MAINLL *mll_p, struct BAR *bar_p));
662extern double ped_offset P((void));
663extern void pr_bend P((struct CRVLIST *crvlist_p));
664extern void pr_tabslur P((struct CRVLIST *crvlist_p, int ts_style));
665extern void pr_sm_bend P((double x, double y));
666extern void pr_atend P((void));
667
668/* prnttab.c */
669extern char *fret_string P((struct NOTE *note_p, struct GRPSYL *gs_p));
670extern char *bend_string P((struct NOTE *note_p));
671extern void pr_tab_groups P((struct GRPSYL *gs_p, struct MAINLL *mll_p));
672extern double pr_tabclef P((int staffno, double x, int really_print, int size));
673
674/* prolog.c */
675extern void ps_prolog P((void));
676
677/* range.c */
678extern void begin_range P((int place));
679extern void save_staff_range P((int beginstaffno, int endstaffno));
680extern void save_vno_range P((int begin, int end));
681extern void free_rlists P((void));
682extern void chk_range_type P((int has_ampersand));
683extern void create_staffs P((void));
684extern void all P((void));
685extern void free_staffrange P((void));
686extern void free_vnorange P((void));
687extern int is_tab_staff P((int staffno));
688extern int leadstaff P((void));
689extern void add_to_sv_list P((void));
690extern void free_sv_list P((struct SVRANGELIST *svlist_p));
691extern void begin_sv_list P((void));
692
693/* relvert.c */
694extern void relvert P((void));
695
696/* restsyl.c */
697extern void restsyl P((void));
698
699/* roll.c */
700extern void newROLLINFO P((void));
701extern void setrolldir P((int dir));
702extern void rollparam P((int topstaff, int topvoice, int botstaff,
703 int botvoice));
704extern void rolloffset P((double offset));
705extern void do_rolls P((struct MAINLL *mll_p));
706extern void print_roll P((struct GRPSYL *gs_p));
707extern int gets_roll P((struct GRPSYL *gs_p, struct STAFF *staff_p, int v));
708
709/* setgrps.c */
710extern void setgrps P((void));
711
712/* setnotes.c */
713extern void setnotes P((void));
714
715/* ssv.c */
716extern void initstructs P((void));
717extern void zapssv P((struct SSV *s_p));
718extern struct SSV *svpath P((int s, int field));
719extern struct SSV *vvpath P((int s, int v, int field));
720extern void asgnssv P((struct SSV *i_p));
721extern void setssvstate P((struct MAINLL *mainll_p));
722
723/* stuff.c */
724extern void stuff P((void));
725
726/* symtbl.c */
727extern void init_symtbl P((void));
728extern void addsym P((char *symname, float *coordlist_p, int coordtype));
729extern float *symval P((char *symname, float **ref_p_p));
730extern struct COORD_INFO *find_coord P((float *key));
731extern void add_coord P((float *coordlist_p, int coordtype));
732extern struct GRID *findgrid P((char *name));
733extern void add_grid P((char *name, char *griddef));
734extern struct GRID *nextgrid P((struct GRID *grid_p));
735extern void set_win_coord P((float *coord_p));
736extern void add_shape P((char *name, char *shapes));
737extern int nheadchar P((int headshape, int basictime, int stemdir,
738 int *font_p));
739extern int get_shape_num P((char *shapename));
740extern double stem_yoff P((int headch, int font, int stemdir));
741extern void remember_tsig_params P((struct MAINLL *mll_p));
742extern void upd_ref P((float *old_p, float *new_p));
743extern void rep_inpcoord P((struct INPCOORD *old_inpcoord_p,
744 struct INPCOORD *new_inpcoord_p));
745
746/* tie.c */
747extern void tie P((void));
748extern void tie_carry P((void));
749extern struct GRPSYL *find_1st_grp_in_nxt_measure P((struct MAINLL *mll_p,
750 int vno));
751extern struct GRPSYL *find_next_group P((struct MAINLL *mll_p,
752 struct GRPSYL *gs_p, char *type));
753extern struct NOTE *find_matching_note P((struct GRPSYL *gs_p,
754 int letter, int octave, char *type_p));
755
756/* trantab.c */
757extern void tab2tabnote P((void));
758
759/* trnspose.c */
760extern void transgroups P((void));
761extern char *tranchnote P((int letter, int acc, int staffno));
762extern int eff_key P((int staff));
763extern void totaltrans P((int s, int *type_p, int *num_p));
764
765/* undrscre.c */
766extern int spread_extender P((struct GRPSYL *gs_p, struct MAINLL *mll_p,
767 int verse, int sylplace, int really_print));
768extern int has_extender P((char *syl));
769extern void cont_extender P((struct MAINLL *mll_p, int sylplace,
770 int verseno));
771extern int last_char P((char *str));
772
773/* utils.c */
774extern void set_cur P((double x, double y));
775extern void set_win P((double n, double s, double e, double w));
776extern double width_barline P((struct BAR *bar_p));
777extern double width_clefsig P((struct CLEFSIG *clefsig_p));
778extern int clefchar P((int clef));
779extern void calc_headfoot_height P((void));
780extern int numbeams P((int btime));
781extern int acc2char P((int acc));
782extern double inpc_x P((struct INPCOORD *inpcoord_p, char *fname, int lineno));
783extern double inpc_y P((struct INPCOORD *inpcoord_p, char *fname, int lineno));
784extern double find_y_stem P((struct GRPSYL *gs_p));
785extern double find_x_stem P((struct GRPSYL *gs_p));
786extern double width_keysig P((int sharps, int naturals));
787extern struct GRPSYL *nextgrpsyl P((struct GRPSYL *gs_p,
788 struct MAINLL **mll_p_p));
789extern struct GRPSYL *prevgrpsyl P((struct GRPSYL *gs_p,
790 struct MAINLL **mll_p_p));
791extern void octave_transpose P((struct STAFF *staff_p, struct MAINLL *mll_p,
792 int vno, int normdir));
793extern int eff_acc P((struct GRPSYL *gs_p, struct NOTE *note_p,
794 struct MAINLL *mll_p));
795extern int acc_from_keysig P((int letter, int staffno, struct MAINLL *mll_p));
796extern void set_staffscale P((int s));
797extern void gridsize P((struct GRID *grid_p, int staff, float *north_ptr,
798 float *south_ptr, float *east_ptr, float *west_ptr));
799extern double gridspace P((int staff));
800extern void gridinfo P((struct GRID *grid_p, int staff, int *frets_p,
801 int *fretnum_p, int *numvert_p, int *topfret_p));
802extern double clefspace P((int prevclef, double prevscale, int curclef,
803 double curscale, int measnum));
804extern double eff_rightmargin P((struct MAINLL *mainll_p));
805extern double eff_leftmargin P((struct MAINLL *mainll_p));
806extern short *findprimes P((int max));
807extern short *factor P((int num));
808extern double clefwidth P((int clef, int is_small));
809extern int clefvert P((int clef, int is_small, float *north_p, float *south_p));
810extern double widest_head P((struct GRPSYL *gs_p));
811extern void calc_block_heights P((void));
812
813#endif