1 /* Header for module globals, generated by p2c 1.21alpha-07.Dec.93 */ 2 #ifndef GLOBALS_H 3 #define GLOBALS_H 4 5 6 #ifdef GLOBALS_G 7 # define vextern 8 #else 9 # define vextern extern 10 #endif 11 12 13 /* 1. All global variables. 14 2. Miscellaneous other procedures required by several Units. 15 */ 16 17 /* CMO: addition/change by Christian Mondrup */ 18 19 20 #define PMXlinelength 128 21 /* !!! One or more of the following constants should be reduced if this 22 program is to be compiled by a 16-bit compiler (e.g. Turbo Pascal), 23 otherwise you get a "Data segment too large" error */ 24 #define lines_in_paragraph 100 25 #define max_words 128 26 #define max_notes 128 27 /* Christian Mondrup's suggestion to reduce data segment size: 28 lines_in_paragraph = 50; 29 max_words = 64; 30 max_notes = 64; 31 */ 32 #define max_bars 16 33 #define maxstaves 15 34 #define maxvoices 15 35 #define maxgroups 3 36 #define standardPMXvoices 12 37 38 #define max_lyrics_line_length (PMXlinelength - 4) 39 40 #define inf 32000 41 #define unspec 1000 42 #define default_size 20 43 44 #define start_beam '[' 45 #define stop_beam ']' 46 #define rest 'r' 47 48 #define pause "rp" 49 50 #define dotcode 'd' 51 #define grace_group 'G' 52 #define multi_group 'x' 53 #define barsym '|' 54 #define comment '%' 55 #define blank ' ' 56 #define dot '.' 57 #define comma ',' 58 #define colon ':' 59 #define tilde '~' 60 #define atsign '@' 61 #define dummy '\0' 62 63 #define ndurs 8 64 65 #define unspecified '5' /* Not a valid duration */ 66 67 #define whole 2 /* position of '0' in durations */ 68 69 #define digits "123456789" 70 #define digitsdot "0123456789." 71 72 #define putspace true 73 #define nospace false 74 #define print true 75 76 77 typedef char paragraph_index; 78 79 typedef char voice_index; 80 81 typedef char stave_index; 82 83 typedef char bar_index0; 84 85 typedef uchar word_index0; 86 87 typedef char paragraph_index0; 88 89 typedef char voice_index0; 90 91 typedef char stave_index0; 92 93 typedef Char paragraph[lines_in_paragraph][256]; 94 typedef short line_nos[lines_in_paragraph]; 95 96 97 extern Char double_comment[3]; 98 extern Char durations[ndurs + 1]; 99 extern Char terminators[256]; 100 extern Char has_duration[9]; 101 extern Char solfa_names[8]; 102 103 extern Char choice; 104 extern boolean outfile_open; 105 extern Char texdir[256]; 106 extern Char old_meter_word[256]; 107 extern short outlen; 108 extern boolean ignore_input; 109 vextern Char voice_label[maxvoices][256]; 110 vextern Char clef[maxstaves]; 111 vextern voice_index0 instr[maxstaves], stave[maxstaves], 112 first_on_stave[maxstaves], number_on_stave[maxstaves]; 113 vextern short nspace[maxstaves], stave_size[maxstaves]; 114 vextern voice_index0 nvoices, nstaves, ninstr, bottom, top; 115 vextern short one_beat, full_bar, line_no, short_note, musicsize, meternum, 116 meterdenom, pmnum, pmdenom, paragraph_no, bar_no, pickup, nbars, 117 nleft; 118 vextern paragraph_index0 para_len; 119 vextern double xmtrnum0; 120 vextern paragraph P; 121 vextern line_nos orig_line_no; 122 vextern FILE *infile, *outfile, *stylefile; 123 vextern Char default_duration; 124 vextern Char fracindent[256], this_version[256], this_version_date[256]; 125 vextern boolean pmx_preamble_done, first_paragraph, final_paragraph, 126 must_respace, must_restyle, multi_bar_rest, some_vocal; 127 vextern Char infile_NAME[_FNSIZE]; 128 vextern Char outfile_NAME[_FNSIZE]; 129 vextern Char stylefile_NAME[_FNSIZE]; 130 131 132 extern Void error PP((Char *message, int printLine)); 133 extern Void fatalerror PP((Char *message)); 134 extern Void warning PP((Char *message, int printLine)); 135 extern short PMXinstr PP((int stave)); 136 extern Void setDefaultDuration PP((int meterdenom)); 137 extern Void getMeter PP((Char *line, short *meternum, short *meterdenom, 138 short *pmnum, short *pmdenom)); 139 extern Void setSpace PP((Char *line)); 140 extern Char *meterChange PP((Char *Result, int n1, int n2, int blind)); 141 extern Char *meterWord PP((Char *Result, int num, int denom, int pnum, 142 int pdenom)); 143 extern Void cancel PP((short *num, short *denom, int lowest)); 144 extern boolean isNoteOrRest PP((Char *w)); 145 extern boolean isPause PP((Char *note)); 146 /* CMO: */ 147 extern short PMXmeterdenom PP((int denom)); 148 149 150 #undef vextern 151 152 #endif /*GLOBALS_H*/ 153 154 /* End. */ 155