aboutsummaryrefslogtreecommitdiff
path: root/BUG3/text_tools.udo
diff options
context:
space:
mode:
Diffstat (limited to 'BUG3/text_tools.udo')
-rw-r--r--BUG3/text_tools.udo185
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
-