Patent Publication Number: US-11641502-B2

Title: Methods and systems for implementing legacy remote and keystroke redirection

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 16/781,238, filed Feb. 4, 2020, now assigned U.S. Pat. No. 11,122,318, which is a continuation of U.S. patent application Ser. No. 15/853,221, filed Dec. 22, 2017, now U.S. Pat. No. 10,602,212, which claims priority to U.S. Provisional Patent Application No. 62/438,236, filed Dec. 22, 2016, the entire disclosures of which are each hereby incorporated herein by reference for all that they teach and for all purposes. 
    
    
     FIELD 
     Systems and methods for routing and redirecting keystroke commands received from a remote control device are disclosed. 
     BACKGROUND 
     Increasingly, video entertainment, such as movies and television shows, is delivered to users on demand over digital networks. In addition, the distribution of content has expanded to include user devices, such as smartphones. These user devices have the ability to interface with content delivery systems and to output video and other content to users and various output devices. However, because of the need for mobility, the output capabilities of user devices are necessarily limited. Therefore, it is desirable to direct content streams associated with a user device to televisions or home theater systems. 
     In many hospitality settings, there is a desire to provide entertainment services to guests using applications and devices that are familiar to guests. However, making such entertainment services, such as Netflix®, available to guests while maintaining security and implementing device isolation has proved to be difficult. Moreover, there is often a desire to utilize components familiar to guests and further to implement such components in a commercial off-the-shelf configuration, where existing components are utilized in various hospitality settings and configurations. However, as access and control of media content displayed in hospitality settings becomes more of a combination of user-provided devices and content and hospitality operator-provided devices and content, there becomes a need to provide configurations where such devices operate together in a cohesive manner. 
     SUMMARY 
     Embodiments of the present disclosure are directed to systems and methods for receiving a key, or command, from a remote-control device and redirecting the received key, or command, to a system network controller. Within the context of a hospitality environment, where a guest room may include an output device, such as a television, and local player capable of supporting one or more streaming protocols, a system network controller may receive a first key value from a remote-control device or other device, and change the value of the key so that an application executing on the local player associated with an output device correctly registers the value, or meaning, of the received key. More specifically, and as a first non-limiting example, pressing an INFO button on a remote control may cause the remote control to send a key or command representative of the INFO button. A device generally associated with the remote control, such as a television, may receive the key or command representative of the INFO button and cause an information screen to be displayed at the television. However, where the remote is also to be used to control a local player for example, the local player may not have the necessary mapping to receive the specific key or command and cause an appropriate action to be performed. 
     For example, the local player, if capable, may receive the key or command associated with the INFO button; however, if an appropriate mapping is not established, the local player may not respond accordingly. Moreover, in instances where the communication medium of the remote control is incompatible with the local player, the local player cannot receive the key or command. In accordance embodiments of the present disclosure, the key or command may be redirected to a device that is compatible with the local player. Thus, the key or command representative of the INFO button for example, may change from a first value/character to a second value/character, such as a “?” or other character, by the system network controller so that the key can be natively digested by an application running on the local player. An up arrow may still be the equivalent of an up arrow, but might have a different representation code. 
     In accordance with an embodiment of the present disclosure, a method for routing key commands received from a remote-control device is provided. The method may include receiving, at a device, a key command from the remote-control device, generating a first message that includes the key command, sending, from the device, the first message to a keystroke router, and determining, at the keystroke router, a system network controller associated with the device. Moreover, the keystroke router may send the key command to the system network controller. 
     In accordance with another embodiment of the present disclosure, a communication system is provided. The communication system may include a local player, an output device configured to receive a key command from a remote-control device and to generate a first message that includes the key command, and a keystroke router configured to receive the first message from the output device, determine a system network controller associated with the output device, and send the key command to the system network controller. 
     In accordance with another embodiment of the present disclosure, a communication system is provided. The communication system may include a local player, a device configured to receive a key command from a remote-control device and to generate a first message that includes the key command, and a keystroke router configured to receive the first message from the output device, determine a system network controller associated with the output device, and send the key command to the system network controller. 
     Additional features and advantages of embodiments of the present disclosure will become more readily apparent from the following description, particularly when taken together with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1 A  is a first block diagram depicting components of a system in accordance with embodiments of the present disclosure; 
         FIG.  1 B  is a second block diagram depicting components of a system in accordance with embodiments of the present disclosure; 
         FIG.  2 A  is a third block diagram depicting components of a system in accordance with embodiments of the present disclosure; 
         FIG.  2 B  is a fourth block diagram depicting components of a system in accordance with embodiments of the present disclosure; 
         FIGS.  3 A- 3 B  depict an example display in accordance with embodiments of the present disclosure; 
         FIG.  4    depicts a first flow diagram in accordance with embodiments of the present disclosure; 
         FIG.  5    depicts a second flow diagram in accordance with embodiments of the present disclosure; 
         FIG.  6    depicts aspects of a keystroke router in accordance with embodiments of the present disclosure; and 
         FIG.  7    depicts aspects of a system network controller (SNC) in accordance with embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
       FIG.  1 A  is a block diagram illustrating a system  100 A for enabling connectivity in accordance with embodiments of the present disclosure. The system  100 A is generally configured to operate in one or more hospitality environments, such as a guest room  104 . The system  100 A generally includes one or more guest remote-control devices  108  configured to interact with and/or control an output device  112 . The output device  112  may be a television, monitor, or similar output device. The guest room remote control  108  generally controls or otherwise provides keystroke commands, also referred to as keys, to the output device  112  using any form of wireless communication  116 . Such wireless communication  116  may include, but is not limited to, infrared and/or radio frequency user devices. The output device  112  may receive a key command from the guest room remote control  108  and communicate with a headend system  120 . The headend system  120  may then provide content to the output device  112 . 
     In some embodiments, the output device  112  may be in communication with a local player  124 , such as a Chromecast device or other device capable of supporting one or more multimedia streaming sessions. The local player  124  may be connected to the output device  112  via an HDMI port. Power may be supplied to the local player  124  through a USB port associated with the output device  112 . The USB port may be one that supplies power when the output device  112  is itself powered on, or can be configured to supply power continuously. In accordance with other embodiments, power may be supplied to the local player  124  through other means. For example, the local player  124  can be connected to a wall outlet providing power. Alternatively, or in addition, the local player  124  may reside within the output device  112 . That is, the output device  112  may include the functionality of the local player  124 . In accordance with embodiments of the present disclosure, the local player  124  may receive content, such as multimedia content, to be rendered or otherwise output to the output device  112  at the direction of the mobile device  110 . Moreover, a pairing procedure may ensure security and sufficiently maintain device isolation such that the mobile device  110  is confined to or otherwise restricted from communicating with or accessing restricted hospitality devices and/or components that are inside and/or outside the guest room  104 . That is, once paired, the mobile device  110  may communicate with authorized devices connected to the hospitality network. The local player  124 , output device  112 , and/or the mobile device  110  may be connected to a system network controller (SNC)  140  through a communication network  132  via a wireless access point  128 . The SNC  140  may perform registration functions with respect to local players  124 , output devices  112 , mobile device  110 , and other devices capable of providing content, such as multimedia content, to the output device  112 . More particularly, the SNC  140  may maintain a table of information associating the local player  124  to the guest room  104 , the mobile device  110  to the guest room  104 , and/or the local player  124  to the mobile device  110 . 
     In accordance with embodiments of the present disclosure, the system  100 A may include various other devices and network nodes, located locally or remotely with respect to the output devices  112 . For example, the local premises or hotel headend system  120  may be provided and may include the SNC  140  and a local area network switch, router, and/or Internet access core  136 , which may be associated with a wireless or wireline (e.g., Ethernet) network or networks. As a further example, an application server  144  can be provided as part of the headend system  120  for hosting or otherwise making applications accessible to the local player  124 . The headend system  120  may generally include a control center in an entertainment system where various signals are brought together and monitored before being introduced into the local entertainment network. The reference to headend system  120  is not limited to video entertainment providers, such as cable tv systems, but may also include various monitoring and control features associated with Internet access, wireless Internet access, output devices  112 , local players  124 , and other devices and services a guest of a hospitality establishment may use. Various other devices may be connected to the headend system  120  via the Internet  148 . Examples of such systems include, but are not limited to, an application server  144 B accessible by the local player  124 . 
     An application on the local player  124  can be launched via a command from the SNC server  140  when the SNC server  140  detects that a local player  124  has powered up. A local player app or application, such as a default app at power up, communicates with the local SNC server  140  to get information regarding in what room and site the player app or application is installed. The information from the local SNC server  140  also contains the URL for an app, such as a second app, to launch. Once this information is retrieved, the currently executing app on the local player (the default app for instance) calls the specified URL and loads the requested application from a server. The URL for the requested application may point to the application server  144 A, the application server  144 B, the SNC  140  and/or another location having an accessible app, such as a receiver app, that runs on the local player  124 . The SNC server  140  may use the room number and IP/MAC address of the user device  110  to create a pairing between the local player  124  in the guest room and the user device  110 . In addition to providing convenient pairing of a user device  110  in the form of a smartphone, such embodiments also enable laptop computers, tablets, or other devices that may support casting through the chrome browser or other applications to an output device  112 . 
     The local player  124  generally receives one or more commands from the guest mobile device  110  and/or the SNC  140 ; such commands may direct the local player  124  to one or more specific URLs or other locations where one or more receiver apps may be hosted. The local player  124  then renders, or executes, the receiver app located at the specified URL. In accordance with embodiments of the present disclosure, the local player  124  may be configured to render content consistent with one or more key commands from the guest remote-control  108 . That is, both the mobile device  110  and the guest remote-control  108  may be used to control content accessed by the local player  124 . Accordingly, and as depicted in at least  FIG.  1 A , the guest remote-control  108  may send a key command to the output device  112 , where the output device  112  receives the key command and sends the command on to a keystroke router  152  via a broadband local area network (b-LAN)  102 . The output device  112  may first generate a message including the received key or command, and then send the message including the receive key or command to the keystroke router  152 . The keystroke router  152  may then determine an address associated with the key command origination (e.g., output device  112 ), determine which SNC  140  is associated with the particular output device  112 , and send the message including key or command on to the associated SNC  140 . If the SNC  140  is executing a sender app, the SNC  140  may communicate with the receiver app to update the app in accordance with the received key command from the remote control  108 . That is, the SNC  140  may send the key, or a reformatted key, to an entity providing, or serving, the application to the Chromecast, such as the Application server  144 B, the SNC  140  itself, and/or an external server. Alternatively, or in addition, the SNC  140  may provide the key, or a reformatted key, directly to the app running on the local player  124  (e.g., Chromecast device) via the network  132 . 
       FIG.  1 B  depicts a second system  100 B in accordance with embodiments of the present disclosure. The second system  100 B is the same as or similar to the first system  100 A; however, the system  100 B further includes a keystroke detector  106  and/or a b-LAN Bridge  114 . Rather than, or in addition to, the output device  112  receiving the key from the guest room remote-control  108 , the keystroke detector  106  may receive the key from the guest room-remote control  108  and communicate the received key to the keystroker router  152  over the b-LAN  102 . The keystroke detector  106  may first generate a message including the received key or command, and then send the message including the receive key or command to the keystroke router  152 . Alternatively, or in addition, the key may be routed via a b-LAN bridge  114 ; the b-LAN bridge  114  is a device that bridges a first communication network or connection, such as from the keystroke detector  106  and/or from the output device  112 , to the b-LAN  102 , such that devices not inherently capable of communicating via the b-LAN  102  may do so. Accordingly, a key may be received by the output device  112  and communicated to the keystroke router  152  via the b-LAN Bridge  114  and the b-LAN  102 . 
       FIG.  2 A  depicts a third system  200 A in accordance with embodiments of the present disclosure. The third system  200 A is the same as or similar to the first and second systems  100 A and/or  100 B; however, in the system  200 A, the output device  112  receives a key from the guest room remote control  108  and forwards the key, or a reformatted key, to the SNC  140  via an Internet Protocol (IP) network  202 . Accordingly, in such a system  200 A, a keystroke router may not be needed since the key receiving device, for example the output device  112 , may route the key, or a reformatted key, directly to the SNC  140 . Accordingly, the guest remote control  108  may send a key command which is received by the output device  112 . The output device  112  may receive the key, translate the key into a routable key message, and pass the key message to the SNC  140  via the network  132  and the Internet access core  136 . The key message is received at the SNC  140 , where the SNC  140  may then determine an address associated with the key command origination (e.g., output device  112 ). If the SNC  140  is executing a sender app, the SNC  140  may communicate with the receiver app to update the app in accordance with the received key command from the remote control  108 . That is, the SNC  140  may send the key, or a reformatted key, to an entity providing, or serving, the application to the Chromecast, such as the Application server  144 B, the SNC  140  itself, and/or an external server. Alternatively, or in addition, the SNC  140  may provide the key, or a reformatted key, directly to the app running on the local player  124  (e.g., Chromecast device) via the network  132 . 
       FIG.  2 B  depicts a fourth system  200 B in accordance with embodiments of the present disclosure. The fourth system  200 B is the same as or similar to the first, second, and third systems  100 A,  100 B, and  200 A; however, the system  200 B further includes a keystroke detector  204  for directly receiving keystrokes from the guest room remote control  108 . Accordingly, the guest remote control  108  may send a key command which is detected by the keystroke detector  204 . The keystroke detector  204  may receive the keystroke, translate the keystroke into a routable keystroke message, and pass the keystroke message to the SNC  140  via the network  132  and the Internet access core  136 . The keystroke message is received at the SNC  140  since that keystroke detector is likely communicating via IP rather than b-LAN, where the SNC  140  may then determine an address associated with the key command origination (e.g., keystroke detector  204 ). If the SNC  140  is executing a sender app, the SNC  140  may communicate with the receiver app to update the app in accordance with the received key command from the remote control  108 . That is, the SNC  140  may send the key, or a reformatted key, to an entity providing, or serving, the application to the Chromecast, such as the Application server  144 B, the SNC  140  itself, and/or an external server. Alternatively, or in addition, the SNC  140  may provide the key, or a reformatted key, directly to the app running on the local player  124  (e.g., Chromecast device) via the network  132 . 
     In accordance with at least one embodiment of the present disclosure, the guest mobile device  208  may run an application having the ability to route key codes over the network  132  to the Internet access core  136  and directly to the SNC  140 . Alternatively, or in addition, the guest mobile device  208  may run an application having the ability to route key codes over the network  132  to the Internet access core  136  and out to an external server. Accordingly, an external server (RCI  160  for example) would send the key code to the SNC  140  in a manner previously discussed. 
       FIG.  3 A  depicts an example display  304  including content provided from the local player  124  and output to the output device  112  in accordance with embodiments of the present disclosure. As depicted in  FIG.  3 A , the display  304  may include guest-related content, such as guest name, schedule, and weather for example. The display  304  may also include one or more user-selectable items  316 , such as, but not limited to, Guest Services, Guest Devices, Pairing Information, Checkout, and Help for example. In accordance with embodiments of the present disclosure, if a user desired to interact with the display  304 , to move the selection box  320  from “Pairing Information” to “Checkout,” as displayed in  FIG.  3 B , the user would select a down arrow on the guest remote control  108 . The down arrow keystroke would then be detected by the output device  112  as depicted in  FIGS.  1 A and  2 A  and/or by the keystroke detector  106 / 204  as depicted in  FIGS.  1 B and  2 B . The output device  112  and/or the keystroke detector  106  may send the received keystroke to the keystroke router  152  via the b-lan  102 . Alternatively, or in addition, the output device  112  and/or the keystroke detector  204  may send the received keystroke to the SNC  140  via the network  132  and the Internet access core  136 . The keystroke router  152 , when needed, may then route the keystroke to the SNC  140  and/or another appropriate device. For example, the keystroke router  152  may route the keystroke to another device running the sender app. The SNC  140  and/or the other device may receive the keystroke and cause the receiver app running on the local player  124  to update accordingly. Thus, a guest is able to interact with the local player  124  using a guest room remote control  108 . 
       FIG.  4    depicts aspects of the operation of the system  100 A and/or  200 A for utilizing a guest remote control  108  to control an application running on a local player  124  in accordance with embodiments of the present disclosure. That is,  FIG.  4    generally illustrates a messaging flow diagram. Initially, a guest may depress a key on a remote control  108  such that the remote control  108  provides a key, or keystroke, to the output device  112  and/or keystroke detector  106 . The output device  112  and/or keystroke detector  106  may format the received key and transmit such received key to the keystroke router  152  via a b-LAN  102  via a message. The keystroke router  152  may then send the key to an SNC  140  via another message, where the SNC  140  may interact with an application server  144 ; the application server  144  may then update the receiver app running on the local player  124  such that the change indicated by the key depressed by the user is depicted at the output device  112 . 
       FIG.  5    depicts aspects of the operation of the system  100 B and/or  200 B for utilizing a guest remote control  108  to control an application running on a local player  124  in accordance with embodiments of the present disclosure. That is,  FIG.  5    generally illustrates a messaging flow diagram. Initially, a guest may depress a key on a remote control  108  such that the remote control  108  provides a key, or keystroke, to the output device  112  and/or to the keystroke detector  204 . The output device  112  may format the received key and transmit such received key via a message to the SNC  140  via the communication network  132 , such as an IP network. Alternatively, or in addition, the keystroke detector  204  may format the received key and transmit the received key in a message to the SNC  140  via the communication network  132 . The SNC  140  may interact with an application server  144 ; the application server  144  may then update the receiver app running on the local player  124  such that the change indicated by the key depressed by the user is respectively represented at the output device  112 . Alternatively, or in addition, the SNC  140  may directly interact with the local player  124  via one or more application programming interfaces such that the change indicated by the key depressed by the user is respectively represented at the output device  112 . 
       FIG.  6    is a block diagram illustrating components of a keystroke router  152  in accordance with embodiments of the present disclosure. In general, the keystroke router  152  includes a processor and memory. The processor may comprise a general purpose programmable processor or controller  604  for executing application programming or instructions. As a further example, the processor  604  may comprise a specially configured application specific integrated circuit (ASIC). The processor  604  generally functions to run programming code or instructions, such as applications or programs, implementing various functions of the keystroke router  152 . The memory  608  is generally used in connection with the execution of application programming by the processor  604  and for the temporary or long-term storage of program instructions and/or data. As examples, the memory may comprise removable secure digital storage, RAM, SDRAM, or other solid-state memory. 
     The keystroke router  152  may include data storage  612 . In accordance with embodiments of the present invention, data storage  612  may contain program code or instructions  616  implementing various applications or functions executed by the keystroke router  152 . Like the memory  608 , the data storage  612  may comprise a solid-state memory device. In addition, in certain applications, the data storage  612  can be integrated with and/or indistinguishable from the memory  608 . Alternatively, or in addition, the data storage  612  may comprise a hard disk drive or other random access memory and/or can be interconnected to the keystroke router  152 , for example as network-attached storage. Programming or modules stored in the data storage and executed by the processor  604  may include, as examples and without limitation, keystroke routing associations  620 . That is, the keystroke routing associations  620  may associate an originating (or sending) address (or identifier), such as an IP address (or other identifier) of the output device  112  or keystroke detector  106 , to an SNC  140 . For example, a table  632 , or other data association structure, may include the originating (or sending) address (or identifier), such as an IP address (or other identifier) of the output device  112  or keystroke detector  106 , and an SNC  140 . Of course additional fields may be included in the table  632 . The keystroke router  152  may also include one or more communication interfaces  624 A-B. For example, a first communication interface  624 A may provide a connection to a first communication network, such as network  132 , while the second communication interface  624 B may provide a connection to the output device  112  via the b-LAN  102 . One or more components of the keystroke router  152  may be coupled to and/or communication with one another via the bus  628 . 
     The keystroke detector  106  may include the same or similar components as the keystroke router  152 . That is, the keystroke detector  106  may include a processor, memory, one or more communication interfaces, and/or data storage and/or associations associating a received key or command to a respective keystroke router  152 . 
       FIG.  7    is a block diagram illustrating components of a system network controller (SNC)  140  in accordance with embodiments of the present disclosure. In general, the SNC  140  includes a processor  704  and memory  708 . The processor  704  may comprise a general purpose programmable processor or controller for executing application programming or instructions. As a further example, the processor  704  may comprise a specially configured application specific integrated circuit (ASIC). The processor  704  generally functions to run programming code or instructions, such as applications or programs, implementing various functions of the SNC  140 . The memory  708  is generally used in connection with the execution of application programming by the processor  704  and for the temporary or long-term storage of program instructions and/or data. As examples, the memory  708  may comprise removable secure digital storage, RAM, SDRAM, or other solid-state memory. 
     The SNC  140  can also include data storage  712 . In accordance with embodiments of the present invention, data storage  712  can contain program code or instructions implementing various applications or functions executed by the SNC server  140 . Like the memory  708 , the data storage  712  can comprise a solid-state memory device. In addition, in certain applications, the data storage  712  can be integrated with and/or indistinguishable from the memory  708 . Alternatively, or in addition, the data storage  712  may comprise a hard disk drive or other random-access memory and/or can be interconnected to the SNC server  140 , for example as network-attached storage. Programming or modules  716  stored in the data storage  712  and executed by the processor  704  can include, as examples and without limitation, one or more sender applications  720 , and one or more keystroke/application associations  724 . The one or more keystroke/application associations  724  may associate a keystroke to an application. For example, a table  736 , or other data association structure, may include the originating key command, (or a key command received from a keystroke router), an identifier of the sending application, an identifier of a receiver application, and one or more transformed keys. Of course additional fields may be included in the table  736 . The sender application  720  may allow the SNC  140  to direct the local player  124  to a specified location, such as a URL. Further, the SNC  140  sender application  720  may receive the keystroke from the keystroke router  152  and interact with a receiver application located at an application server  144  for example. Thus, the keystroke/application association  724  including instructions and associations ensure that a change associated with a keystroke received from a keystroke router  152  is reflected at the local player  112  and ultimately the output device  108 . 
     The SNC server  140  may also include one or more communication interfaces  728 A-B. For example, a first communication interface  728 A may provide a connection to the first communication network  132  while a second communication interface  728 B may provide a connection to a device virtual local area network (VLAN), such as one or more VLANs in which the local player  124  resides. One or more components of the SNC server  140  may be coupled to one another via the bus  732 . 
     In accordance with some embodiments, the value of the key received from the remote-control device may be changed. For example, an SNC  140  may receive a first key value from the remote-control device  108 , output device  112 , keystroke router  152 , and/or keystroke detector  106 / 204  and change the value of the key so that the application executing on the local player  124  correctly registers the value, or meaning, of the received key. For example, if a remote control  108  has an INFO button, the key representative of the INFO button may change from a first value/character to a second value/character, such as a “?” or other character so that the key can be natively digested by an app. An up arrow may still be the equivalent of an up arrow, but might have a different representation code. 
     In accordance with an embodiment of the present disclosure, a method for routing key commands received from a remote-control device is provided. The method may include receiving, at a device, a key command from the remote-control device, generating a first message that includes the key command, sending, from the device, the first message to a keystroke router, and determining, at the keystroke router, a system network controller associated with the device. Moreover, the keystroke router may send the key command to the system network controller. 
     At least one aspect of the above embodiment may include where the keystroke router sends the key command to the system network controller. An additional aspect may include where the first message is communicated across a broadband local area network. At least one aspect of the above embodiment may include where the key command sent from the keystroke router to the system network controller is sent in a second message. An additional aspect of the may include where determining a system network controller associated with the device is based on one or more of information included in the first message and an association between the device and the determined system network controller. At least one aspect of the above embodiment may include providing, by the system network controller, a second message indicative of the key command received from the remote-control device, to an application associated with a local player. Yet, another aspect may include where the device is a keystroke detector. At least one aspect of the above embodiment may include providing, by the system network controller, a second message indicative of the key command received at the device, to an application associated with a local player. An additional aspect of the may include displaying, at an output device associated with the local player, an action indicative of the key command received at the device. At least one aspect of the above embodiment may include displaying, at the device, an action indicative of the key command received at the device. 
     In accordance with an embodiment of the present disclosure, a communication system is provided. The communication system may include a local player, an output device configured to receive a key command from a remote-control device and to generate a first message that includes the key command, and a keystroke router configured to receive the first message from the output device, determine a system network controller associated with the output device, and send the key command to the system network controller. 
     In accordance with at least one aspect of the above embodiment, the first message is communicated across a broadband local area network. In accordance with another aspect of the above embodiment, the system network controller is configured to receive the key command in a second message. Further still, the system network controller is configured to provide a second message indicative of the key command received from the remote-control device to an application associated with the local player. Moreover, the output device is configured to display an action indicative of the key command received at the device. In accordance with at least one aspect of the above embodiment, the keystroke router is configured to determine the system network controller associated with the output device based on one or more of information included in the first message and an association between the output device and the determined system network controller. 
     In accordance with an embodiment of the present disclosure, a communication system is provided. The communication system may include a local player, a device configured to receive a key command from a remote-control device and to generate a first message that includes the key command, and a keystroke router configured to receive the first message from the output device, determine a system network controller associated with the output device, and send the key command to the system network controller. 
     In accordance with at least one aspect of the above embodiment, the communication system may include an output device configured to display an action indicative of the key command received at the device. Further, the first message may be communicated across a broadband local area network. In accordance with at least one aspect, the system network controller is configured to provide a second message indicative of the key command received from the remote-control device to an application associated with the local player. At least one aspect includes where the keystroke router is configured to determine the system network controller associated with the device based on one or more of information included in the first message and an association between the output device and the determined system network controller. 
     Accordingly, the present invention has been described with some degree of particularity directed to the exemplary embodiments of the present invention. It should however be appreciated that modifications or changes may be made to the exemplary embodiments of the present invention without departing from the inventive concepts contained herein.