summaryrefslogtreecommitdiff
path: root/Build/source/utils/autosp/autosp-src/process_score.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/autosp/autosp-src/process_score.c')
-rw-r--r--Build/source/utils/autosp/autosp-src/process_score.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/Build/source/utils/autosp/autosp-src/process_score.c b/Build/source/utils/autosp/autosp-src/process_score.c
new file mode 100644
index 00000000000..845e39022b1
--- /dev/null
+++ b/Build/source/utils/autosp/autosp-src/process_score.c
@@ -0,0 +1,60 @@
+# include "process_score.h"
+
+void process_line ()
+{
+ char *ln;
+ ln = &line[0];
+ while ( *ln != '\0')
+ {
+ while (*ln == ' ') { ln++; fputc (' ', outfile); }
+ if (*ln == '%') {
+ fprintf (outfile, "%s", ln);
+ return;
+ }
+ process_command (&ln);
+ }
+}
+void process_score ()
+/* process .aspc file */
+{
+ int c; int i;
+ lineno = 0;
+ for (i=1; i < MAX_STAFFS; i++)
+ {
+ staffs[i] = 1;
+ active[i] = true;
+ bar_rest[i] = false;
+ }
+ spacing = MAX_SPACING;
+ restbars = 0;
+ ninstr = 1; /* number of instruments */
+ nstaffs = 1; /* number of staffs */
+ nastaffs = 1; /* number of active staffs; */
+ old_spacing = MAX_SPACING;
+ Changeclefs = false; /* output \Changeclefs after \def\atnextbar */
+
+ TransformNotes2[0] = '\0';
+ TransformNotesDefined = false;
+
+ append (global_skip_str[0], NULL, "", 16);
+ append (global_skip_str[1], NULL, "\\qqsk", 16);
+ append (global_skip_str[2], NULL, "\\hqsk", 16);
+ append (global_skip_str[3], NULL, "\\tqsk", 16);
+ append (global_skip_str[4], NULL, "\\qsk", 16);
+ append (global_skip_str[5], NULL, "\\qsk\\qqsk", 16);
+ append (global_skip_str[6], NULL, "\\qsk\\hqsk", 16);
+
+ c = getc (infile);
+ while ( c != EOF )
+ {
+ ungetc (c, infile);
+ if (fgets(line, LINE_LEN, infile) == NULL)
+ error ("Unexpected EOF.");
+ if (strlen (line) == LINE_LEN-1)
+ error ("Line too long.");
+ lineno++;
+ process_line ();
+ c = getc (infile);
+ } /* c == EOF */
+}
+