A computer-readable media, the computer-readable media comprising computer-readable instructions embodied on tangible, non-transitory media, the instructions operable when executed by at least one computer to:
- identify, by an emulated device application operating at an intermediary device associated with a particular user, a set of two or more current external device context states, wherein each of the two or more current external device context states are associated with one or more particular ones of a plurality of external devices monitored by the emulated device application, wherein the plurality of external devices are used in combination to emulate input operations of an emulated device, wherein the emulated device is a first type of device associated with inputs comprising physical movements, and wherein the plurality of external devices includes at least a first device and a second device, wherein at least the second device comprises a second type of device different from the first type of device of the emulated device, wherein the second device receives non-movement inputs comprising non-speech-based sounds, and wherein the two or more current external device context states are aggregated to define a combined set of the identified current external device context states for the two or more external devices;
- determine, automatically by the emulated device application, an emulated device context state corresponding to the combined set of the identified current external device context states, wherein the determining comprises identifying, from a plurality of predefined external device context state rules, a particular predefined external device context state rule corresponding to the combined set of the identified current external device context states and mapping the combined set of the identified current external device context states to the emulated device context state wherein the predefined external device context state rule is a customized rule defined at design time specifically for the particular user based on one or more disabilities of the particular user;
- generate, automatically by the emulated device application at the intermediary device and in response to determining the emulated device context state, an input command in an input format corresponding to an input generated by a physical version of the emulated device for use by a target device in performing at least one operation on the target device, the generating using an emulated device context state rule that maps the determined emulated device context state to the input command;
- and
- transmit, by the emulated device application, the generated input command to the target device;
- wherein the external device context state rules and the emulated device context state rules are predefined at an initialization stage, wherein the initialization stage includes:
- receiving an identification of the plurality of external devices;
- receiving a description of at least one combination of inputs associated with each of the plurality of external devices relevant to the external device context states;
- receiving information associated with at least one emulated operation of the emulated device associated with each of the at least one combination of inputs;
- generating an external device context state rule associated with context states of the external devices, each external device context state rule mapping context states of one or more external devices to a single context state of an emulated device;
- generating one or more emulated device context state rules associated with context states of the emulated device, each emulated device context state rule mapping a respective context state of an emulated device to a command to be provided to a target device;
- storing the one or more external device context state rules and the one or more emulated device context state rules;
- and
- receiving an identification of a particular interaction design pattern from a set of candidate interaction design patterns, each interaction design pattern identifying a configuration of external devices and including default information for context states and external device context state rules associated with the external devices and emulated device context state rules associated with the emulated devices.