The term "substrate", though sufficiently abstracted so as to not be limited to "windows" or "sound windows", is too general and ambiguous. Originally, I'd wanted to use it as the name of the core class for representing user-end interfaces in AHITK.
See: Surface Objects, below
We may use the term surface object, for describing the actual representation, of an interface component, in an arbitrary environment -- or for representing the interface component itself.
The "window" is merely an effect of the display system.
Two categories of
There is also a sort of implicit third category, already: aggregate environment. Such an environment would be one that would support both visual and audal representations of interface objects.
Later, we may add another category, perhaps a "metacategory" -- external environment -- for representing "interfaces" that operate via special-purpose hardware, such as "interactive" museum exhibits and indivdual button panels, lighting instruments, and television displays.
Technically, and conceptually, AHITK could qualify as being an "environment", itself. This needs to be more thoroughly considered.
Two general, perhaps informal, categories:
bitmapped/raster/pixel visual environment
character-cell visual environment
Input is handled, generally, within the foreign procedures of those "environments", but there may be cases when we'll have to do our own input-handling as well?
Festival on one hand; ESD, NAS, ALSA, and native, platform-specific sound support, on another.
UEI : "user-end interface" ???