Each callback generates an event, which is a list with two elements,
element 0 being a list called eventInfo, and element 1 being a list
called eventData.

eventInfo

	0 = type [amxCommand, amxResponse, matrixSwitch]

eventData - specific to each type of event

	amxCommand, amxResponse

		0 = command
		1 = device
		2 = channel/string

	matrixSwitch

		0 = input
		1 = output

--------------------------------------------------------------------

AMX Commands/Response Events

The AMX command specifies what type of AMX command occurred.  The possible
values are:
       turnOn - channel ON
	      - the specified device channel has been turned on
       turnOff - channel OFF
	       - the specified device channel has been turned off
       sendString - send/receive string
                  - AMX device sent a string to the amxd
       push - push
	    - AMX device's device channel was pushed
       release - release
	       - AMX device's device channel was released
       deviceId - device ID response
                - the channel is the device ID of the AMX device
       pulse - pulse
	     - AMX device's device channel was pulsed (on/off pulse)

The AMX device specifies which AMX device was affected or generated
the response.  Possible values are:
       computer - computer connected to AMX (where amxd runs)
       matrix - Autopatch 1YDM Matrix
       receiver - Pioneer VSX-7300 receiver
       projector - Sony PC-1270 projector
       lights - Lutron lights control
       rackVCR - AG-1970 Rack VCR
       projectorLift - Projector lift
       leftSlides - Left slides
       rightSlides - Right slides
        elmo - Elmo/On Air # FIXME - which is it?
       frontVCr - Front VCR
       yemConverter - YEM Converter
       mixer - IVIE 884PW Audio Mixer
       audienceCamera - Audience Camera
       speakerCamera - Speaker Camera

The device channel specifies which channel in the AMX device was
affected.  See mash/apps/amx/amx-header.tcl for more details.

The string specifies which string was sent.

--------------------------------------------------------------------

Matrix Switch Events

matrixSwitch events are generated when a client calls the
matrix_switchVideoStream function.  The eventData list consists of

	0 - input
	1 - output

	valid inputs: mbonePC, sgiPC, frontPC, liveboard, laptop,
		      rackVCR, frontVCR, speakerCamera, wideCamera,
		      audienceCamera, scanConverter, elmo

	valid outputs: htsr, htsr2, realNetworks, projector,
		       testMonitor

--------------------------------------------------------------------

This information is passed to the callback routine in the form of a
Tcl list, with list element 0 being the eventInfo, and element 1 being
the eventData.

