diff options
Diffstat (limited to 'BUG3/text_tools.udo')
-rw-r--r-- | BUG3/text_tools.udo | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/BUG3/text_tools.udo b/BUG3/text_tools.udo deleted file mode 100644 index 63cc2a8..0000000 --- a/BUG3/text_tools.udo +++ /dev/null @@ -1,185 +0,0 @@ -#ifndef UDO_TEXTTOOLS -#define UDO_TEXTTOOLS ## - -opcode notify, 0, S - Stext xin - Snew = "\n" - iwidth = 60 - index = 0 - while (index < iwidth) do - Snew = strcat(Snew, "*"); - index += 1 - od - prints strcat(strcat(Snew, "\n"), strcat(Stext, "\n\n")) -endop - - -#ifndef BUG_VERSION -#define BUG_VERSION #-1# - notify("No BUG_VERSION specified: must match directive file") - exitnow -#end - -opcode gettextindex, i, S - Sname xin - ifinalindex = -1 - index = 0 - while (index < lenarray(gSequenced)) do - if (strcmp(gSequenced[index], Sname) == 0) then - ifinalindex = index - igoto complete - endif - index += 1 - od - -complete: - xout ifinalindex -endop - - -opcode stripnewline, S, S - Sline xin - index = strindex(Sline, "\n") - if (index != -1) then - Sline = strsub(Sline, 0, index) - endif - xout Sline -endop - -opcode parserowitems, i, Siii - Sline, ix1, ix2, imode xin ; mode 0 = count, 1 = write sections, 2 = write chords - inum = 0 - while (strlen(Sline) > 0) do - icomma = strindex(Sline, ",") - Stemp = strsub(Sline, 0, icomma) - icomma = (icomma == -1) ? 0 : icomma - Sline = strsub(Sline, icomma + 1) - if (imode == 1) then - tabw_i strtod(Stemp), inum, gisectiondata[ix1][ix2] - elseif (imode == 2) then - tabw_i strtod(Stemp), inum, gichordgroups[ix1][ix2] - endif - inum += 1 - od - xout inum -endop - - - - -opcode getparameter, i, iii - ipos, idataindex, iparameter xin - xout tab_i(ipos, gisectiondata[idataindex][iparameter]) -endop - -/* -opcode getparameter, i, iiii - isection, instrindex, iparameter, ipos xin - isectiondataindex = gisections[isection][instrindex] - ifn = gisectiondata[isectiondataindex][iparameter] - xout tab_i(ipos, ifn) -endop -*/ -opcode getparameterfn, i, iii - isection, instrindex, iparameter xin - isectiondataindex = gisections[isection][instrindex] - xout gisectiondata[isectiondataindex][iparameter] -endop - -opcode getparameterfns, i[], ii - isection, instrindex xin - isectiondataindex = gisections[isection][instrindex] - xout getrow(gisectiondata, isectiondataindex) -endop - -opcode parserow, 0, Siii - Sline, ix1, ix2, imode xin ; mode 1 = section patterns , 2 = chords - isize = parserowitems(Sline, ix1, ix2, 0) - if (imode == 1) then - gisectiondata[ix1][ix2] ftgen 0, 0, -isize, -7, 0 - elseif (imode == 2) then - gichordgroups[ix1][ix2] ftgen 0, 0, -isize, -7, 0 - endif - isize = parserowitems(Sline, ix1, ix2, imode) -endop - - - -opcode parsetext, 0, S - Sfile xin - iparameter = -1 - isection = -1 - ichordnum = -1 - isectiondataindex = -1 - imode = -1 -read: - Sline, ilinenum readfi Sfile - Sline = stripnewline(Sline) - if (strlen(Sline) > 0) then - Sfirstchar = strsub(Sline, 0, 1) - if (strcmp(Sfirstchar, ";") == 0) then ; comment - ; no action - elseif (strcmp(Sfirstchar, "v") == 0) then ; version - imode = 0 - iversion = strtod(strsub(Sline, 2)) - if (iversion != $BUG_VERSION) then - notify(sprintf("Incompatible directive file version: got %.2f , expected %.2f", iversion, $BUG_VERSION)) - exitnow - endif - elseif (strcmp(Sfirstchar, "s") == 0) then ; section - imode = 1 - icomma = strindex(Sline, ",") - isectionnum = strtod(strsub(Sline, 2, icomma)) - Sub = strsub(Sline, icomma+1) - icomma = strindex(Sub, ",") - isectionlength = strtod(strsub(Sub, 0, icomma)) - ichordgroup = strtod(strsub(Sub, icomma+1)) - gisectionchords[isectionnum] = ichordgroup - tabw_i isectionlength, isectionnum, gisectionlengths - - elseif (strcmp(Sfirstchar, "b") == 0) then ; bpm - imode = -1 - gitempo = strtod(strsub(Sline, 2)) - - elseif (strcmp(Sfirstchar, "c") == 0) then ; chord group - imode = 3 - ichordgroup = strtod(strsub(Sline, 2)) - ichordnum = 0 - - elseif (strcmp(Sfirstchar, "i") == 0) then ; pattern - imode = 4 - iparameter = 0 - - icomma = strindex(Sline, ",") - instrindex = gettextindex(strsub(Sline, 2, icomma)) - Sub = strsub(Sline, icomma+1) - icomma2 = strindex(Sub, ",") - isection = strtod(strsub(Sub, 0, icomma2)) - if (icomma2 != -1) then ; repeat or null section - irepeatsection = strtod(strsub(Sub, icomma2+1)) - if (irepeatsection == -1) then - inewsection = -1 - else - inewsection = gisections[irepeatsection][instrindex] - endif - gisections[isection][instrindex] = inewsection - else - isectiondataindex += 1 - gisections[isection][instrindex] = isectiondataindex - endif - elseif (imode == 3) then ; chords - parserow(Sline, ichordgroup, ichordnum, 2) - ichordnum += 1 - - elseif (imode == 4) then - parserow(Sline, isectiondataindex, iparameter, 1) - iparameter += 1 - endif - endif - if (ilinenum != -1) igoto read -endop - - - -#end - |