Okay, see how this works for you. Start by copying the library code for getInputLineExt
modify inputManager
getInputLineExt(defObj)
{
/* add this line at beginning of method */
local skipInputBegin = nil;
...
for (;;)
{
...
/* make this modification where
* inputLineBegin is called
*/
if(!skipInputBegin)
inputLineBegin(defObj);
skipInputBegin = nil;
getInput:
...
case InEvtTimeout:
/* if you wanted some normal/textual realtime events, you would
* enter a block here that contains the library logic. Otherwise if
* you determine that you're dealing with a sound event, you
* would enter a block that contains the following logic: (and just
* use as-is if you're only doing sounds)
*/
// "<.commandint>"; // remove this
skipInputBegin = true;
flushOutput();
break;
...
[rest of method]
;
I haven’t tested this for robustness such as processing multiple ready events in the same cycle and such, but sure enough I could get:
>ring bell
[sound actually plays here, no additional command line]