From 577f369566b42b6dfd7d75b1761520dcd9971a9d Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 3 Oct 2003 08:08:33 +0000 Subject: [PATCH] Several fixes. Now plays stock .ton files just fine. :-) --- exec/playtone.js | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/exec/playtone.js b/exec/playtone.js index 52fd21b168..5065740f8c 100644 --- a/exec/playtone.js +++ b/exec/playtone.js @@ -4,9 +4,6 @@ const REVISION = "$Revision$".split(' ')[1]; -const NOT_ABORTABLE =(1<<0) -const SHOW_DOT =(1<<1) -const SHOW_FREQ =(1<<2) const NO_VISUAL =(1<<3) var mode=0; /* Optional modes */ @@ -30,19 +27,19 @@ function play(freq, dur) dur="0"; d=parseInt(dur); - if((f=parseInt(freq))!=0) + if(isNaN(f=parseInt(freq.charAt(0)))) switch(freq.charAt(0).toUpperCase()) { case 'O': /* default octave */ - if(parseInt(dur)) + if(Number(dur.charAt(0))) octave=d; else octave+=d; return; case 'P': /* pitch variation */ - if(parseInt(dur)) - pitch=atof(dur)/32.0; + if(Number(dur.charAt(0))) + pitch=parseFloat(dur)/32.0; else - pitch+=atof(dur); + pitch+=parseFloat(dur); return; case 'Q': /* quit */ exit(0); @@ -50,7 +47,7 @@ function play(freq, dur) f=0; break; case 'S': /* stacato */ - if(parseInt(dur)) + if(Number(dur.charAt(0))) s=d; else s+=d; @@ -63,7 +60,7 @@ function play(freq, dur) return; truncsp(dur); if(dur.charAt(dur.length-1)=='\\') - write(dur); + write(truncstr(dur,'\\')); else writeln(dur); return; @@ -81,14 +78,6 @@ function play(freq, dur) break; } - if(f && mode&SHOW_FREQ) { - for(i=0;freq[i]>' ';i++) - ; - freq[i]=0; - printf("%-4.4s",freq); - } - if(mode&SHOW_DOT) - printf("."); if(t>10) len=(d*t)-(d*s); else @@ -108,10 +97,10 @@ function play(freq, dur) } -printf("\nTone Generation Module %s Copyright 2003 Rob Swindell\n\n", REVISION); +printf("\nSynchronet Tone Generation Module %s\n\n", REVISION); if(argc<1) { - alert("!No filename specified"); + alert("No filename specified"); exit(); } @@ -120,7 +109,7 @@ if(!file.exists) file.name=system.exec_dir + file.name; writeln("Opening " + file.name); if(!file.open("r")) { - alert("!Error " + file.error + " opening " + file.name); + alert("Error " + file.error + " opening " + file.name); exit(); } @@ -131,9 +120,9 @@ for(i in text) { if(js.terminated) break; // writeln(text[i]); - token=text[i].split(/\s+/); - cmd=token[0]; - token.shift(); - play(cmd, token.join(' ')); + if(text[i].charAt(0)==':') /* comment */ + continue; + token=truncsp(text[i]).split(/\s+/); + play(token.shift(), token.join(' ')); } -- GitLab