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

Surface Objects

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 environment:

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.

Visual Environments

Two general, perhaps informal, categories:

  • bitmapped/raster/pixel visual environment


    • X11
    • GGI
    • SDL
    • GFX
    • OpenGL (Mesa, on XFree86; who-knows-what, elsewhere. No guesses as to how the couple of OpenGL Common LISP things are done )
  • character-cell visual environment


    • Ncurses
    • slang

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?

Audal Environments

Festival on one hand; ESD, NAS, ALSA, and native, platform-specific sound support, on another.

(Tentative) Terminology, for API documentation

UEI : "user-end interface" ???


Last modified: Sat Mar 1 05:15:14 PST 2003