ES2702782T3 - Envío de comandos de dispositivos de entrada humanos a través de Protocolo de Internet - Google Patents

Envío de comandos de dispositivos de entrada humanos a través de Protocolo de Internet Download PDF

Info

Publication number
ES2702782T3
ES2702782T3 ES12768981T ES12768981T ES2702782T3 ES 2702782 T3 ES2702782 T3 ES 2702782T3 ES 12768981 T ES12768981 T ES 12768981T ES 12768981 T ES12768981 T ES 12768981T ES 2702782 T3 ES2702782 T3 ES 2702782T3
Authority
ES
Spain
Prior art keywords
input
report
uibc
hidc
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12768981T
Other languages
English (en)
Inventor
Jeff S Froehlicher
Xialong Huang
Vijayalakshmi R Raveendran
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2702782T3 publication Critical patent/ES2702782T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4108Peripherals receiving signals from specially adapted client devices characterised by an identification number or address, e.g. local network address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Abstract

Un procedimiento (200) que comprende: almacenar (202), en un dispositivo de origen (20), una pluralidad de formatos de informe preconfigurados (28), en el que cada uno de los formatos de informe preconfigurados (28) está asociado con un tipo diferente de dispositivo de entrada humana (70), HID; recibir (204), en el dispositivo de origen (20), uno o más paquetes de Protocolo de Internet, IP, de un dispositivo colector (60), con el uno o más paquetes de IP que comprenden un informe de entrada de comando HID, HIDC; identificar (206), basándose en los datos en los uno o más paquetes IP, uno de los formatos de informe preconfigurados (28); analizar (208) el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado (28) para determinar una entrada de usuario; generar (210) datos multimedia en respuesta a la entrada de usuario; y enviar (212) los datos multimedia desde el dispositivo de origen (20) al dispositivo colector (60); en el que almacenar (202) la pluralidad de formatos de informe preconfigurados (28) comprende almacenar la pluralidad de formatos de informe preconfigurados antes de establecer un canal de retorno de entrada de usuario, UIBC, y en el que los uno o más paquetes IP comprenden un mensaje de UIBC enviado a través de UIBC, con el mensaje de UIBC que comprende el informe de entrada HIDC.

Description

DESCRIPCIÓN
Envío de comandos de dispositivos de entrada humanos a través de Protocolo de Internet.
[0001] Esta solicitud reivindica el beneficio de la solicitud de patente provisional de Estados Unidos 61/536,393, presentada el 19 de septiembre de 2011 y de la solicitud de patente provisional de Estados Unidos 61/583,254, presentada el 5 de enero de 2012.
CAMPO TÉCNICO
[0002] La descripción se refiere al transporte y la reproducción de datos multimedia.
ANTECEDENTES
[0003] Los sistemas de pantalla inalámbrica (WD) incluyen un dispositivo de origen y uno o más dispositivos colectores. El dispositivo de origen también puede denominarse "servidor de aplicaciones". El dispositivo de origen puede ser un dispositivo que sea capaz de transmitir contenido multimedia dentro de una red de área local inalámbrica. Un dispositivo colector puede ser un dispositivo capaz de recibir y renderizar contenido multimedia. Un dispositivo colector también puede denominarse "cliente de pantalla". El dispositivo de origen y el dispositivo colector pueden ser dispositivos móviles o dispositivos cableados. Como dispositivos móviles, por ejemplo, el dispositivo de origen y los dispositivos colectores pueden comprender teléfonos móviles, tablets, ordenadores portátiles u otros ordenadores de mano, ordenadores de mano con tarjetas de comunicación inalámbricas, asistentes digitales personales (PDA), reproductores multimedia portátiles, dispositivos de captura de imágenes digitales, como cámaras o videocámaras u otros dispositivos con capacidades de comunicación inalámbrica, incluidos los llamados teléfonos "inteligentes" y pantallas o tablets "inteligentes", u otros tipos de dispositivos de comunicación inalámbrica. Como dispositivos cableados, por ejemplo, el dispositivo de origen y el dispositivo colector pueden comprender televisores, ordenadores de escritorio, monitores, proyectores, impresoras, amplificadores de audio, descodificadores, consolas de juegos, routers, reproductores de discos de vídeo digital (DVD) y servidores multimedia.
[0004] Un dispositivo de origen puede enviar datos multimedia, tales como datos de audio y vídeo (AV), a uno o más dispositivos colectores participantes en una sesión compartida de multimedia particular. Los datos multimedia se pueden reproducir tanto en una pantalla local del dispositivo de origen como en las pantallas de cada uno de los dispositivos colectores. Más específicamente, cada uno de los dispositivos colectores participantes puede renderizar los datos multimedia recibidos para su presentación en su pantalla y equipo de audio. En algunos casos, un usuario de un dispositivo colector puede aplicar las entradas del usuario al dispositivo colector, como las entradas táctiles y las entradas de control remoto.
[0005] El documento de Estados Unidos 6,263,392 B1 divulga un procedimiento y un aparato para interconectar múltiples dispositivos periféricos a un ordenador principal. Un módulo de control de interfaz ubicado en un sistema arcade de juegos de ordenador multiusuario interconecta un ordenador principal a través de un bus serie universal (USB) a uno o más joysticks, volantes, bolas de control, contadores op/bill de monedas, lectores de tarjetas de crédito y/o armas de fuego ópticas. Un conjunto de conectores permite que el creador o jugador del juego conecte una variedad de periféricos de entrada al módulo de control de la interfaz. El módulo de control de interfaz reconoce el tipo HID del periférico de entrada mediante el tipo del conector seleccionado y luego proporciona informes de MD que describen cada dispositivo de entrada al sistema de software compatible con HID del ordenador principal. El módulo de control de interfaz puede soportar 127 periféricos HID. Una función de vigilancia del módulo de control de interfaz detecta fallos y paradas del ordenador principal, y arranca el ordenador principal al tiempo que retiene los datos de entrada de crédito de monedas recibidos cerca y durante el fallo y la recuperación.
SUMARIO
[0006] La invención se define mediante las reivindicaciones. De acuerdo con la presente invención, se proporciona un procedimiento como el expuesto en la reivindicación 1, y un dispositivo informático como el expuesto en la reivindicación 11. Los modos de realización de la invención se reivindican en las reivindicaciones dependientes.
En un ejemplo, un dispositivo de origen en un sistema de pantalla inalámbrica (WD) almacena una pluralidad de formatos de informe preconfigurados. Cada uno de los formatos de informe preconfigurados puede asociarse con un tipo diferente de dispositivo de entrada humana (HID). El dispositivo de origen puede recibir uno o más paquetes de Protocolo de Internet (IP) de un dispositivo colector en el sistema WD. El uno o más paquetes IP pueden incluir un informe de entrada de comando HID (HIDC). El dispositivo de origen puede identificar, basándose en los datos en uno o más paquetes IP, uno de los formatos de informe preconfigurados y puede analizar el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. El dispositivo de origen a continuación puede generar datos multimedia en respuesta a la entrada de usuario y puede enviar los datos multimedia al dispositivo colector.
En un ejemplo, esta divulgación describe un procedimiento que comprende almacenar, en un dispositivo de origen, una pluralidad de formatos de informes preconfigurados. Cada uno de los formatos de informe preconfigurados está asociado con un tipo diferente de HID. Además, el procedimiento comprende recibir, en el dispositivo de origen, uno o más paquetes IP de un dispositivo colector. El uno o más paquetes IP comprenden un informe de entrada HIDC. El procedimiento también comprende recibir, en el dispositivo de origen, uno o más paquetes IP de un dispositivo colector. El uno o más paquetes IP comprenden un informe de entrada HIDC. El procedimiento también comprende la identificación, basándose en datos en uno o más paquetes IP, uno de los formatos de informe preconfigurados. Además, el procedimiento comprende analizar el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. Además, el procedimiento comprende generar datos multimedia en respuesta a la entrada de usuario. El procedimiento también comprende enviar los datos multimedia desde el dispositivo de origen al dispositivo colector.
[0007] En otro ejemplo, esta divulgación describe un procedimiento que comprende recibir una indicación de una entrada de usuario desde un HID. El procedimiento también comprende generar, basándose en la entrada de usuario, un informe de entrada HIDC que se ajusta a un formato de informe. Además, el procedimiento comprende enviar uno o más paquetes IP a un dispositivo de origen. Los paquetes IP comprenden el informe de entrada HIDC y un indicador de tipo HID que identifica el formato del informe. Además, el procedimiento comprende recibir datos multimedia del dispositivo de origen, basándose los datos multimedia en la entrada de usuario.
[0008] En otro ejemplo, esta divulgación describe un dispositivo informático que comprende uno o más procesadores configurados para almacenar una pluralidad de formatos de informes preconfigurados. Cada uno de los formatos de informe preconfigurados está asociado con un tipo diferente de HID. El uno o más procesadores también están configurados para recibir uno o más paquetes IP desde un dispositivo colector. El uno o más paquetes IP comprenden un informe de entrada HIDC. Además, el uno o más procesadores están configurados para identificar, basándose en los datos de uno o más paquetes IP, uno de los formatos de informe preconfigurados. El uno o más procesadores también están configurados para analizar el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. Además, el uno o más procesadores están configurados para generar datos multimedia en respuesta a la entrada de usuario. El uno o más procesadores también están configurados para enviar los datos multimedia desde el dispositivo informático al dispositivo colector.
[0009] En otro ejemplo, esta divulgación describe un dispositivo informático que comprende uno o más procesadores configurados para recibir una indicación de entrada de usuario a partir de un HID. Los uno o más procesadores también están configurados para generar, basándose en la entrada de usuario, un informe de entrada HIDC que se ajusta a un formato de informe. Además, el uno o más procesadores están configurados para enviar uno o más paquetes IP a un dispositivo de origen. Los paquetes IP comprenden el informe de entrada HIDC y un indicador de tipo HID que identifica el formato del informe. Además, el uno o más procesadores están configurados para recibir datos multimedia desde el dispositivo de origen, basándose los datos multimedia en la entrada de usuario.
[0010] En otro ejemplo, esta divulgación describe un dispositivo informático que comprende multimedia para almacenar una pluralidad de formatos de informes preconfigurados. Cada uno de los formatos de informe preconfigurados está asociado con un tipo diferente de HID. Además, el dispositivo informático comprende medios para recibir uno o más paquetes IP desde un dispositivo colector. El uno o más paquetes IP comprenden un informe de entrada HIDC. Además, el dispositivo informático comprende medios para identificar, basándose en datos en uno o más paquetes IP, uno de los formatos de informe preconfigurados. El dispositivo informático también comprende medios para analizar el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. Además, el dispositivo informático comprende medios para generar datos multimedia en respuesta a la entrada de usuario. El dispositivo informático también comprende medios para enviar los datos multimedia desde el dispositivo informático al dispositivo colector.
[0011] En otro ejemplo, esta divulgación describe un dispositivo informático que comprende medios para recibir una indicación de entrada de usuario a partir de un HID. El dispositivo informático también comprende medios para generar, basándose en la entrada de usuario, un informe de entrada HIDC que se ajusta a un formato de informe. Además, el dispositivo informático comprende medios para enviar uno o más paquetes IP a un dispositivo de origen. Los paquetes IP comprenden el informe de entrada HIDC y un indicador de tipo HID que identifica el formato del informe. Además, el dispositivo informático comprende medios para recibir datos multimedia desde el dispositivo de origen, basándose los datos multimedia en la entrada de usuario.
[0012] En otro ejemplo, esta divulgación describe un producto de programa informático que comprende uno o más medios de almacenamiento legibles por ordenador que almacenan instrucciones que, cuando se ejecutan, configuran uno o más procesadores de un dispositivo informático para almacenar, en el dispositivo de computación, una pluralidad de formatos de informes preconfigurados. Cada uno de los formatos de informe preconfigurados está asociado con un tipo diferente de HID. Las instrucciones también configuran el uno o más procesadores para recibir uno o más paquetes IP de un dispositivo colector. El uno o más paquetes IP comprenden un informe de entrada HIDC. Además, las instrucciones configuran uno o más procesadores para identificar, basándose en los datos en uno o más paquetes IP, uno de los formatos de informe preconfigurados. Además, las instrucciones configuran el uno o más procesadores para analizar el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. Las instrucciones también configuran uno o más procesadores para generar datos multimedia en respuesta a la entrada de usuario. Además, las instrucciones configuran uno o más procesadores para enviar los datos multimedia desde el dispositivo de origen al dispositivo colector.
[0013] En otro ejemplo, esta divulgación describe un producto de programa informático que comprende uno o más medios de almacenamiento legibles por ordenador que almacenan instrucciones que, cuando se ejecutan, configuran uno o más procesadores de un dispositivo informático para recibir una indicación de entrada de usuario a partir de un HID. Además, las instrucciones configuran el uno o más procesadores para generar, basándose en la entrada de usuario, un informe de entrada HIDC que se ajusta a un formato de informe. Además, las instrucciones configuran uno o más procesadores para enviar uno o más paquetes IP a un dispositivo de origen. Los paquetes IP comprenden el informe de entrada HIDC y un indicador de tipo HID que identifica el formato del informe. Las instrucciones también configuran el uno o más procesadores para recibir datos multimedia del dispositivo de origen, basándose los datos multimedia en la entrada de usuario.
[0014] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y la descripción siguiente. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción, de los dibujos y de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0015]
La FIG. 1 es un diagrama de bloques que ilustra un sistema de comunicación inalámbrica que incluye un dispositivo de origen y un dispositivo colector.
La FIG. 2 es un diagrama de flujo que ilustra un ejemplo de funcionamiento realizado por un dispositivo de origen, de acuerdo con una o más técnicas de esta divulgación.
La FIG. 3 es un diagrama de flujo que ilustra un ejemplo de funcionamiento realizado por el dispositivo colector, de acuerdo con una o más técnicas de esta divulgación.
La FIG. 4 es un diagrama de flujo que ilustra otro ejemplo de funcionamiento realizado por el dispositivo colector, de acuerdo con una o más técnicas de esta divulgación.
La FIG. 5 es un diagrama de flujo que ilustra otro ejemplo de funcionamiento realizado por el dispositivo de origen, de acuerdo con una o más técnicas de esta divulgación.
La FIG. 6 es un diagrama conceptual que ilustra un ejemplo de formato de un mensaje de UIBC.
La FIG. 7 es un diagrama de comunicación que ilustra una interacción de ejemplo entre un dispositivo de origen y un dispositivo colector para negociar un canal posterior de entrada de usuario (UIBC) para mensajes de entrada genéricos.
La FIG. 8 es un diagrama de comunicación que ilustra una interacción de ejemplo entre un dispositivo de origen y un dispositivo colector para negociar un UIBC para los informes de entrada del Comando de Dispositivo de Entrada Humana (HIDC).
DESCRIPCIÓN DETALLADA
[0016] En general, esta divulgación describe las técnicas para el manejo de la entrada de usuario en un sistema de visualización inalámbrica (WD). Un sistema WD incluye al menos dos dispositivos informáticos. Uno de los dispositivos informáticos actúa como una fuente multimedia y otro de los dispositivos informáticos actúa como un colector multimedia. El dispositivo informático que actúa como una fuente multimedia (es decir, el dispositivo de origen) puede transmitir datos multimedia codificados a través de un canal inalámbrico al dispositivo informático que actúa como colector multimedia (es decir, el dispositivo colector). El dispositivo colector puede descodificar los datos de vídeo codificados y mostrar los datos de vídeo descodificados en una pantalla de visualización.
[0017] Además, en un sistema de WD, el dispositivo colector puede recibir entradas de usuario de los dispositivos humanos de entrada (HIDS), tales como ratones, bolígrafos o estiletes digitales, teclados y pantallas táctiles. El dispositivo colector puede transmitir mensajes de entrada al dispositivo de origen. Los mensajes de entrada describen la entrada de usuario recibida por el dispositivo colector. Al recibir un mensaje de entrada, el dispositivo de origen puede procesar la entrada de usuario descrita por el mensaje de entrada y generar datos multimedia en respuesta a la entrada de usuario. A continuación, el dispositivo de origen puede enviar estos datos multimedia al dispositivo colector.
[0018] El dispositivo colector puede generar y transmitir varios tipos de mensajes de entrada. Por ejemplo, durante la configuración de una sesión entre el dispositivo de origen y el dispositivo colector, el dispositivo colector puede indicar al dispositivo de origen uno o más HID conectados al dispositivo colector. Después de la configuración de la sesión, el dispositivo colector puede generar y transmitir mensajes de entrada genéricos que describen la entrada de usuario de varias clases de HID. Cuando el dispositivo colector recibe una indicación de la entrada de usuario de un HID particular, el dispositivo colector puede determinar que el HID particular pertenece a una clase particular de HID. Diferentes clases de HID pueden estar asociadas con diferentes formatos de informe. Las clases de HID pueden definirse mediante un estándar, como un estándar de pantalla Wi-Fi (WFD). El formato de informe asociado con una clase de HID puede especificar un formato para mensajes de entrada genéricos que describan entradas de usuario recibidas por HID en la clase de HID. Una vez que el dispositivo colector determina que el HID particular pertenece a la clase particular de HID, el dispositivo colector puede generar un mensaje de entrada genérico que se ajuste al formato de informe asociado con la clase particular de HID. De esta manera, los formatos de informe de los mensajes de entrada genéricos pueden ser genéricos para cualquier HID que pertenezca a la clase particular de HID. El dispositivo de origen puede estar preconfigurado para interpretar mensajes de entrada genéricos.
[0019] Además de generar y transmitir mensajes de entrada genéricos, el dispositivo colector puede generar y transmitir informes de entrada de comando de dispositivo de entrada humana (HIDC). Cuando el dispositivo colector recibe una indicación de una entrada de usuario detectada por un HID particular, un controlador que se ejecuta en el dispositivo colector puede generar un informe de entrada HIDC que describe la entrada de usuario. El formato de informe del informe de entrada HIDC puede ser específico para el HID particular y no necesariamente genérico para la clase de HID a la que pertenece el HID particular. Por ejemplo, puede haber diferentes formatos de informe para los informes de entrada HIDC que describen la entrada de usuario detectada por dos tipos diferentes de ratones. Los formatos de informes de los informes de entrada HIDC pueden ajustarse a varios estándares HIDC, como el estándar de bus serie universal (USB) o el estándar Bluetooth.
[0020] La generación y transmisión de informes de entrada HIDC puede tener ciertas ventajas sobre la generación y transmisión de mensajes de entrada genéricos. Por ejemplo, un HID particular dentro de una clase particular de HID puede recibir información del usuario que no se puede describir usando el formato de informe genérico asociado con la clase particular de HID. En este ejemplo, un informe de entrada HIDC puede describir dicha entrada de usuario. Además, puede ser más complejo para el dispositivo colector generar y el dispositivo de origen analizar mensajes de entrada genéricos que informes de entrada HIDC. De esta manera, el uso de informes de entrada HIDC puede ayudar al dispositivo de origen y al dispositivo colector a invertir los recursos de procesamiento y la energía eléctrica.
[0021] De acuerdo con las técnicas de esta divulgación, el dispositivo de origen puede almacenar una pluralidad de formatos de informes preconfigurados. Cada uno de los formatos preconfigurados está asociado con un tipo diferente de dispositivo de entrada humana (HID). El dispositivo de origen puede recibir uno o más paquetes de Protocolo de Internet (IP) de un dispositivo colector. El uno o más paquetes IP pueden comprender un informe de entrada HIDC, como un informe de entrada compatible con USB o Bluetooth. Además, en algunos ejemplos, el dispositivo de origen puede recibir uno o más paquetes de IP a través de una red de comunicación inalámbrica. El dispositivo de origen puede identificar, basándose en los datos en uno o más paquetes de IP, uno de los formatos de informe preconfigurados. El dispositivo de origen puede analizar el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. A continuación, el dispositivo de origen puede generar datos multimedia en respuesta a la entrada de usuario y enviar los datos multimedia desde el dispositivo de origen al dispositivo colector.
[0022] La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de un sistema de pantalla inalámbrica (WD) 10 en el que se pueden implementar una o más técnicas de esta divulgación. La FIG. 1 y las figuras siguientes se proporcionan con fines explicativos y no deberían considerarse limitadoras de las técnicas tales como las ampliamente ejemplificadas y descritas en esta divulgación.
[0023] En el ejemplo de la FIG. 1, el sistema WD 10 puede incluir un dispositivo de origen 20 y un dispositivo colector 60. El dispositivo de origen 20 puede comunicarse con el dispositivo colector 60 a través de un canal inalámbrico 50. En el ejemplo de la FIG. 1, el dispositivo de origen 20 incluye al menos una aplicación 22, un sistema operativo (SO) 24, una unidad transmisora / receptora (TX/RX) 26, una pluralidad de formatos de informe 28, un administrador de sesiones WD 30 y un módulo de canal posterior de entrada de usuario (UIBC) 32. El SO 24 del dispositivo de origen 20 puede incluir una pila IP 34. El dispositivo colector 60 puede incluir una unidad transmisora/receptora (TX/RX) 62, un descodificador multimedia 64, al menos un dispositivo de salida 66, un administrador de sesiones WD 68, al menos un dispositivo de entrada humana (HID) 70, al menos un controlador de HID 72, un módulo UIBC 74 y un sistema operativo (SO) 76. El SO 76 puede incluir una pila de IP 78. Los componentes ilustrados constituyen simplemente una configuración de ejemplo del sistema WD 10. Otras configuraciones pueden incluir menos componentes que los ilustrados o pueden incluir componentes además de los ilustrados. Por ejemplo, el dispositivo de origen 20 puede incluir uno o más dispositivos de salida, tales como pantallas y altavoces.
[0024] Los componentes del dispositivo de origen 20 y el dispositivo colector 60 pueden implementarse de diversas maneras. Por ejemplo, uno o más componentes del dispositivo de origen 20 y el dispositivo colector 60 puede implementarse como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables in situ (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de estos. En ejemplos donde uno o más aspectos se implementan en el software, el hardware subyacente (por ejemplo, en la forma de un procesador programable) puede ejecutar el software. Por lo tanto, cada dispositivo de origen 20 y dispositivo colector 60 puede comprender máquinas especializadas configuradas para ejecutar una o más de las técnicas de esta divulgación.
[0025] El sistema operativo 24 puede administrar el hardware del ordenador del dispositivo de origen 20 y puede proporcionar servicios comunes para los programas informáticos que se ejecutan en el dispositivo de origen 20. De manera similar, el sistema operativo 76 puede administrar el hardware del ordenador del dispositivo colector 60 y puede proporcionar servicios comunes para los programas informáticos que se ejecutan en el dispositivo colector 60. En algunos ejemplos, el SO 24 y/o el SO 76 pueden comprender sistemas operativos ANDROID™, sistemas operativos WINDOWS™, sistemas operativos iOS™ u otras marcas de sistemas operativos.
[0026] El administrador de sesiones WD 30 y el administrador de sesiones WD 68 pueden comprender uno o más programas informáticos que se ejecutan en el dispositivo de origen 20 y el dispositivo colector 60, respectivamente. El administrador de sesiones WD 30 y el administrador de sesiones WD 68 pueden usar los servicios proporcionados por SO 24 y SO 76, respectivamente, para establecer una sesión WD a través del canal inalámbrico 50. Cuando el administrador de sesiones WD 30 y el administrador de sesiones WD 68 establecen una sesión WD, el administrador de sesiones WD 30 y el administrador de sesiones WD 68 pueden realizar una negociación de capacidad usando, por ejemplo, mensajes de control del protocolo de transmisión en tiempo real (RTSP). En un ejemplo, una solicitud para establecer una sesión de WD puede ser enviada por el administrador de sesiones de WD 30 al dispositivo colector 60. Una vez que se establece la sesión de WD, el dispositivo de origen 20 puede transmitir datos multimedia, por ejemplo, datos de audio/vídeo (AV), al dispositivo colector 60. El dispositivo de origen 20 puede transmitir datos multimedia al dispositivo colector 60, por ejemplo, utilizando el protocolo de transporte en tiempo real (RTP). El dispositivo colector 60 puede renderizar los datos multimedia recibidos en su pantalla y equipo de audio.
[0027] El módulo UIBC 32 y el módulo UIBC 74 pueden comprender programas informáticos que se ejecutan en el dispositivo de origen 20 y el dispositivo colector 60, respectivamente. El módulo UIBC 32 y el módulo UIBC 74 pueden usar los servicios proporcionados por el SO 24 y el SO 76, respectivamente, para enviar mensajes UIBC desde el dispositivo colector 60 al dispositivo de origen 20. Los mensajes UIBC pueden incluir mensajes de entrada genéricos y/o informes de entrada HIDC.
[0028] La aplicación 22 puede comprender uno o más programas informáticos que se ejecutan en el dispositivo de origen 20. La aplicación 22 puede generar datos multimedia codificados. Los datos multimedia pueden incluir datos de audio y/o datos de vídeo. En algunos ejemplos, el dispositivo de origen 20 puede capturar los datos multimedia en tiempo real a través de una cámara y/o micrófono del dispositivo de origen 20. En otros ejemplos, los datos multimedia pueden ser datos multimedia pregrabados, como películas, programas de televisión o música. En algunos casos, los datos multimedia pueden incluir imágenes que son una combinación de diferentes tipos de contenido, como una imagen de una película o programa de TV que tiene opciones de entrada de usuario superpuestas en la imagen. En algunos ejemplos, la aplicación 22 puede recodificar datos multimedia ya codificados. En otras palabras, la aplicación 22 puede transcodificar datos multimedia.
[0029] La aplicación 22 puede indicar al SO 24 que transmita los datos multimedia codificados al dispositivo colector 60. El SO 24 puede usar la unidad TX/RX 26 para transmitir los datos multimedia codificados a través del canal inalámbrico 50 al dispositivo colector 60. La unidad TX/RX 62 del dispositivo colector 60 puede recibir los datos multimedia codificados. El descodificador multimedia 64 puede descodificar los datos multimedia codificados y generar los datos multimedia descodificados para su presentación en el dispositivo de salida 66.
[0030] La aplicación 22 y el descodificador multimedia 64 pueden incluir unidades de codificador/descodificador (CÓDEC) que implementan varios estándares de compresión de audio y vídeo, como el estándar ITU-T H.264, denominado de forma alternativa MPEG-4, Parte 10, codificación de vídeo avanzada (AVC), o el nuevo estándar emergente de codificación de vídeo de alta eficiencia (HEVC). También se pueden usar muchos otros tipos de técnicas de compresión patentadas o estandarizadas. En términos generales, el descodificador multimedia 64 puede configurarse para realizar las operaciones de codificación recíproca de un codificador multimedia utilizado en la aplicación 22. Aunque no se muestra en la FIG. 1, en algunos aspectos, la aplicación 22 y el descodificador de medios 64 pueden estar integrados con un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para ocuparse de la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos independientes. Si procede, las unidades MUX-DEMUX pueden cumplir el protocolo de multiplexador ITU H.223 u otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0031] El dispositivo de salida 66 puede comprender cualquiera entre una variedad de dispositivos de salida de vídeo, tales como una pantalla de tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos emisores de luz (LED), una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización. En estos u otros ejemplos, el dispositivo de salida 66 puede ser una pantalla emisiva o una pantalla transmisiva. El dispositivo de salida 66 también puede incluir una pantalla táctil de modo que el dispositivo de salida 66 sea simultáneamente un dispositivo de entrada y un dispositivo de visualización. Dichas pantallas táctiles pueden ser capacitivas, resistivas u otros tipos de paneles táctiles que permiten a los usuarios proporcionar entrada de usuario. De forma alternativa, el dispositivo de salida 66 puede comprender cualquiera de una variedad de dispositivos de salida de audio tales como auriculares, sistemas de un solo altavoz, sistemas de múltiples altavoces o sistemas de sonido envolvente.
[0032] Aunque el dispositivo de salida 66 se muestra como parte del dispositivo colector 60, el dispositivo colector 60 puede ser un sistema de dispositivos. Como ejemplo, el dispositivo de salida 66 puede ser un dispositivo de televisión y el dispositivo colector 60 puede ser una caja externa conectada, ya sea por cable o de forma inalámbrica, al dispositivo de salida 66. En otros ejemplos, el dispositivo colector 60 puede ser un dispositivo único, tal como un teléfono inteligente o una tablet. En otros casos, el dispositivo de origen 20 y el dispositivo colector 60 son dispositivos similares, por ejemplo, ambos son teléfonos inteligentes, tablets o similares. En este caso, un dispositivo puede funcionar como origen y el otro puede funcionar como colector. Estos roles pueden revertirse en sesiones de comunicación posteriores. En otros casos, el dispositivo de origen 20 puede comprender un dispositivo móvil, como un teléfono inteligente, ordenador portátil o tablet, y el dispositivo colector 60 puede comprender un dispositivo más estacionario (por ejemplo, con un cable de alimentación de CA), en cuyo caso el dispositivo de origen 20 puede entregar datos de audio y vídeo para presentación a uno o más espectadores a través del dispositivo colector 60.
[0033] La unidad de TX/RX 32 y la unidad de TX/RX 62 pueden incluir varios mezcladores, filtros, amplificadores y otros componentes diseñados para la modulación de señal, así como una o más antenas y otros componentes diseñados para transmitir y recibir datos. El canal inalámbrico 50 puede representar cualquier medio de comunicación adecuado, o un conjunto de diferentes medios de comunicación, para transmitir datos de audio/vídeo, datos de control y retroalimentación entre el dispositivo de origen 20 y el dispositivo colector 60. El canal inalámbrico 50 puede comprender una red de comunicación inalámbrica. El canal inalámbrico 50 puede ser un canal de comunicación de alcance relativamente corto, y puede implementar una estructura de canal físico similar a Wi-Fi, Bluetooth o similar, que se implementa utilizando estructuras de banda de frecuencias de 2,4, GHz, 3,6 GHz, 5 GHz, 60 GHz o banda ultra-ancha (UWB). Sin embargo, el canal inalámbrico 50 no está necesariamente limitado en este aspecto, y puede comprender cualquier medio de comunicación inalámbrica, tal como cualquier espectro de radiofrecuencia (RF) o cualquier combinación de medios inalámbricos y cableados. En otros ejemplos, el canal inalámbrico 50 puede formar parte de una red basada en paquetes, tal como una red de área local cabelada o inalámbrica, una red de área extensa o una red global tal como Internet. Además, el dispositivo de origen 20 y el dispositivo colector 60 pueden usar el canal inalámbrico 50 para crear un enlace punto a punto.
[0034] El dispositivo de origen 20 y el dispositivo colector 60 pueden comunicarse a través del canal inalámbrico 50 utilizando un protocolo de comunicaciones tal como un estándar de la familia de estándares IEEE 802.11. En un ejemplo, el canal inalámbrico 50 puede ser un canal de comunicación de red. En este ejemplo, un proveedor de servicios de comunicación puede operar y administrar centralmente la red utilizando una estación base como un centro de red. El dispositivo de origen 20 y el dispositivo colector 60 pueden, por ejemplo, comunicarse de acuerdo con los estándares Wi-Fi Direct o Wi-Fi Display (WFD), de modo que el dispositivo de origen 20 y el dispositivo colector 60 se comuniquen directamente entre sí sin el uso de un intermediario tal como un punto de acceso inalámbrico o un llamado punto de conexión. Una distancia relativamente corta en este contexto puede referirse, por ejemplo, a menos de aproximadamente setenta metros, aunque en un entorno ruidoso u obstruido, la distancia entre dispositivos puede ser incluso menor, tal como menos de aproximadamente treinta y cinco metros o menos de aproximadamente veinte metros.
[0035] Las técnicas de esta divulgación pueden a veces describirse con respecto a la WFD, pero se contempla que los aspectos de estas técnicas también pueden ser compatibles con otros protocolos de comunicación. A modo de ejemplo y no de limitación, la comunicación inalámbrica entre el dispositivo de origen 20 y el dispositivo colector 60 puede utilizar técnicas de multiplexación por división de frecuencia ortogonal (OFDM). También se puede usar una amplia variedad de otras técnicas de comunicación inalámbrica, que incluyen, entre otras, acceso múltiple por división de tiempo (TDMA), acceso múltiple por división de frecuencia (FDMA), acceso múltiple por división de código (CDMA) o cualquier combinación de Of Dm , FDMA, TDMA y/o CDMA.
[0036] Como se ilustra en el ejemplo de la FIG. 1, el dispositivo colector 60 puede estar acoplado operativamente a al menos un HID 70. Los tipos de ejemplo de HID pueden incluir, entre otros, teclados, ratones, joystick, pantallas táctiles, bolas de seguimiento, superficies sensibles al tacto, teclados, botones, controladores de videojuegos, controles remotos, bolígrafos o estiletes digitales, cámaras o dispositivos de entrada sensibles al gesto y otros tipos de dispositivos que un ser humano puede usar para proporcionar información del usuario a un ordenador. HID 70 puede estar asociado con el controlador de HID 72. Cuando un ser humano utiliza HID 70 para proporcionar la entrada de usuario, el controlador de HID 72 puede recibir señales de HID 70 y puede generar un informe de entrada. El informe de entrada puede describir la entrada recibida por HID 70. Por ejemplo, si HID 70 es un ratón, el informe de entrada puede indicar que el ratón se movió cinco posiciones hacia la izquierda y diez posiciones hacia arriba. En algunos ejemplos, el informe de entrada generado por el controlador de HID 72 cumple con un estándar USB o Bluetooth.
[0037] Cuando el controlador de HID 72 genera un informe de entrada, el controlador de HID 72 puede proporcionar el informe de entrada a SO 76 del dispositivo colector 60. En respuesta a la recepción del informe de entrada, SO 76 puede identificar un programa informático que se ha registrado con SO 76 para recibir eventos de entrada asociados con HID 70. El SO 76 puede entonces proporcionar un evento de entrada al programa informático identificado. El evento de entrada puede ser un objeto de datos (por ejemplo, un objeto de lenguaje de programación orientado a objetos) que incluye datos que describen la entrada de usuario recibida por HID 70. En algunos ejemplos, el evento de entrada puede incluir un mensaje de entrada genérico que SO 76 genera basándose en el informe de entrada generado por el controlador de HID 72. En otros ejemplos, el evento de entrada puede incluir un informe de entrada HIDC que coincida con el informe de entrada generado por el controlador de HID 72.
[0038] En un sistema no-WD, el programa informático identificado puede procesar el evento de entrada y, basándose en la entrada de usuario descrita por el evento de entrada, generar datos en el dispositivo de salida 66. Sin embargo, en el sistema WD 10, el dispositivo colector 60 puede no ser responsable de procesar los informes de entrada. En lugar de eso, el dispositivo de origen 20 puede ser responsable de procesar los informes de entrada.
[0039] En consecuencia, el módulo UIBC 74 puede registrarse con SO 76 para recibir eventos de entrada asociados con HID 70. Cuando el módulo UIBC 74 recibe un evento de entrada del SO 76, el módulo UIBC 74 puede generar un mensaje de UIBC que contiene un mensaje de entrada que se basa en el evento de entrada. El módulo UIBC 74 puede entonces usar uno o más servicios proporcionados por SO 76 para enviar el mensaje de UIBC desde el dispositivo colector 60 al dispositivo de origen 20 a través del canal inalámbrico 50. En algunos ejemplos, la pila de IP 78 del SO 76 puede empaquetar el mensaje de UIBC en uno o más paquetes IP para su transmisión al dispositivo de origen 20 a través del canal inalámbrico 50. De esta manera, el dispositivo colector 60 puede recibir una indicación de la entrada de usuario de HID 70. En respuesta a la recepción de la indicación de la entrada de usuario, el controlador de HID 72 puede generar, basándose en la entrada de usuario, un informe de entrada que se ajuste a un formato de informe. El dispositivo colector 60 puede enviar paquetes IP al dispositivo de origen 20 a través del canal inalámbrico 50. Los paquetes IP pueden contener un mensaje de entrada basándose en el informe de entrada.
[0040] Cuando la unidad de TX/RX 26 de dispositivo de origen 20 recibe los uno o más paquetes IP que contienen el mensaje de UIBC, la unidad de TX/RX 26 puede proporcionar los paquetes de uno o más IP para SO 24 de dispositivo de origen 20. A continuación, la pila de IP 34 del SO 24 puede extraer el mensaje de UIBC de uno o más paquetes de IP. A continuación, el SO 24 puede identificar (por ejemplo, basándose en un número de puerto especificado por uno o más paquetes de IP) un proceso que se ejecuta en el dispositivo de origen 20 que se ha registrado para recibir mensajes UIBC. En el ejemplo de la FIG. 1, el módulo UIBC 32 se ha registrado para recibir mensajes UIBC. En consecuencia, SO 24 puede proporcionar el mensaje de UIBC al módulo 32 de UIBC.
[0041] Tras recibir el mensaje de UIBC, el módulo UIBC 32 puede analizar el mensaje de UIBC para determinar el contenido del mensaje de UIBC. Si el mensaje de UIBC incluye un mensaje de entrada, el módulo UIBC 32 puede analizar el mensaje de entrada y generar un evento de entrada basándose en el mensaje de entrada. El evento de entrada puede comprender un objeto de datos (por ejemplo, un objeto de lenguaje de programación orientado a objetos) que especifica datos que se basan en el mensaje de entrada. Cuando el módulo UIBC 32 genera el evento de entrada, el SO 24 puede identificar uno o más procesos que se ejecutan en el dispositivo de origen 20 que se han registrado para recibir el evento de entrada. El SO 24 puede entonces proporcionar el evento de entrada a los procesos identificados. El ejemplo de la FIG. 1, se supone que la aplicación 22 se ha registrado para recibir el evento de entrada.
[0042] En respuesta a la recepción del evento de entrada, la aplicación 22 puede generar datos multimedia basándose al menos en parte, en la entrada de usuario descrita por el mensaje de entrada especificado por el evento de entrada. Por ejemplo, si la entrada de usuario indica que ocurrió un evento de clic en la ubicación en pantalla de un control en pantalla particular, la aplicación 22 puede realizar una función asociada con el control en pantalla y generar los datos multimedia correspondientes. La aplicación 22 puede codificar los datos multimedia y luego ordenar al SO 24 que envíe los datos multimedia codificados al dispositivo colector 60. En algunos ejemplos, la pila de IP 34 del SO 24 puede encapsular los datos multimedia codificados en una serie de uno o más paquetes de IP para transmitirlos al dispositivo colector 60. De esta manera, el dispositivo colector 60 puede recibir datos multimedia desde el dispositivo de origen 20, donde los datos multimedia se basan en la entrada de usuario. A continuación, el dispositivo colector 60 puede renderizar los datos multimedia para su presentación (por ejemplo, visualización y/o reproducción de audio) en el dispositivo de salida 66.
[0043] El dispositivo colector 60 puede enviar mensajes de entrada genéricos e informes de entrada del comando HID (HIDC) a través del UIBC al dispositivo de origen 20. Algunos controladores de HID en el dispositivo colector 60 pueden proporcionar informes de entrada al SO 76 cuando los controladores de HID reciben indicaciones de la entrada de usuario de los HID. Los informes de entrada pueden describir la entrada de usuario recibida por los HID. En algunos ejemplos, los informes de entrada pueden cumplir con los estándares USB o Bluetooth HID. El SO 76 del dispositivo colector 60 puede generar mensajes de entrada genéricos en respuesta a algunos informes de entrada recibidos por el SO 76 de los controladores de HID. El SO 76 puede entonces proporcionar al módulo UIBC 74 eventos de entrada que especifican los mensajes de entrada genéricos. Cuando el módulo UIBC 74 recibe un mensaje de entrada genérico, el módulo UIBC 74 puede generar un mensaje de UIBC que contiene el mensaje de entrada genérico y puede poner en cola el mensaje de UIBC para su transmisión al dispositivo de origen 20.
[0044] El SO 76 puede generar mensajes de entrada genéricos de modo que los mensajes de entrada genéricos que describen la entrada de usuario recibida por HID en diferentes clases de HID tienen diferentes formatos de informe, pero los mensajes de entrada genéricos que describen la entrada de usuario recibida de diferentes HID dentro de una clase de HID tienen el mismo formato de informe. Por ejemplo, SO 76 puede usar un primer formato de informe para generar mensajes de entrada genéricos que describan la entrada de usuario recibida por varios tipos de ratones. En este ejemplo, SO 76 puede usar un segundo formato de informe para generar mensajes de entrada genéricos que describen la entrada de usuario recibida por varios tipos de controladores de juego.
[0045] Al generar mensajes de entrada genéricos, el SO 76 puede ser capaz de armonizar los informes de entrada asociados con diferentes HID que pertenecen a la misma clase de HID. Por ejemplo, SO 76 puede convertir varios tipos de informes de entrada de ratón en un formato que es genérico para la mayoría de los tipos de ratón. Por ejemplo, un controlador para una primera marca de ratón puede usar un 4.° byte de un informe de entrada para indicar si una rueda de desplazamiento se movió hacia adelante o hacia atrás y un controlador para una segunda marca de ratón puede no usar un 4.° byte de un informe de entrada en absoluto. En este ejemplo, SO 76 puede convertir los informes de entrada de los controladores para la primera y segunda marcas de ratones en mensajes de entrada genéricos en los que el 4.° byte indica si se movió una rueda de desplazamiento, lo cual sería siempre cero para el ratón sin una rueda de desplazamiento. En este ejemplo, puede ser suficiente que el dispositivo colector 60 indique al dispositivo de origen 20 que un informe de entrada proviene de un ratón para que el dispositivo de origen 20 pueda interpretar tales mensajes de entrada genéricos.
[0046] Sin embargo, puede no deseable limitar sistema WD 10 a solo el uso de tipos comunes de dispositivos HID. En lugar de eso, puede ser deseable permitir que el dispositivo de origen 20 y el dispositivo colector 60 puedan soportar una amplia variedad de HID, incluso los HID que pertenecen a la misma clase general de HID. Por ejemplo, dos controladores de videojuegos diferentes pueden tener diferentes números de botones. En consecuencia, en este ejemplo, puede que no sea posible que los informes de entrada de estos dos controladores de videojuegos tengan el mismo formato. También pueden surgir nuevos HID, y puede ser deseable tener flexibilidad para que el dispositivo de origen 20 y el dispositivo colector 60 soporten HID nuevos o emergentes.
[0047] En consecuencia, algunos controladores de HID en el dispositivo colector 60 pueden proporcionar informes de entrada directamente al módulo UIBC 74 o el SO 76 puede proporcionar informes de entrada desde controladores de HID directamente al módulo UIBC 74. Los informes de entrada pueden cumplir con un estándar USB o Bluetooth. En respuesta a la recepción de un informe de entrada de un controlador de HID, el módulo UIBC 74 puede generar un mensaje de UIBC que contiene un mensaje de entrada basado en el informe de entrada. El módulo UIBC 74 puede entonces poner en cola el mensaje de UIBC para su transmisión al dispositivo de origen 20. Cuando el módulo UIBC 74 genera un mensaje de UIBC de esta manera, se dice que el mensaje de UIBC en esta divulgación contiene un informe de entrada HIDC. De esta manera, el dispositivo colector 60 puede enviar informes de entrada como informes de entrada USB o Bluetooth HID sobre paquetes IP al dispositivo de origen 20.
[0048] Por ejemplo, diferentes tipos de HID pueden proporcionar diferentes tipos de entradas. En consecuencia, los controladores para diferentes tipos de HID pueden generar diferentes tipos de informes de entrada. Además, los diferentes controladores para los HID que pertenecen a la misma clase de HID pueden generar informes de entrada con diferentes formatos. Por ejemplo, un controlador para una primera marca de joystick puede usar un bit 32.° de un informe de entrada para indicar si se pulsó un botón principal de joystick y un controlador para una segunda marca de joystick podría usar un bit 16.° de un informe de entrada para indicar si se pulsó un botón de joystick principal.
[0049] El dispositivo colector 60 puede generar informes de entrada HIDC para la entrada de usuario recibida a través de varias rutas de entrada. En algunos ejemplos, dichas rutas de entrada pueden incluir infrarrojos, USB, Bluetooth, Zigbee, Wi-Fi y rutas de entrada específicas del proveedor. En algunos ejemplos, los informes de entrada HIDC pueden estar limitados a las entradas del ratón y del teclado. En otros ejemplos, los informes de entrada HIDC se pueden generar para otros tipos de HID, como pantallas táctiles de un único toque, pantallas táctiles de múltiples toques, joysticks, cámaras, sistemas de detección de gestos, controles remotos, dispositivos de infrarrojos y/o tipos de HID específicos del proveedor. En algunos ejemplos, los informes de entrada HIDC pueden no estar especificados en RTSP. Las entradas de usuario de una categoría específica del proveedor pueden estar en un formato HID específico del proveedor. El dispositivo colector 60 y el dispositivo de origen 20 pueden tener una interfaz de entrada de usuario específica del proveedor común que no está especificada por ninguna plataforma de dispositivo, ni está estandarizada en una categoría de entrada de usuario interpretada. En ese caso, el dispositivo colector 60 puede enviar informes de entrada HIDC en un formato especificado por una biblioteca de proveedores. Cuando el dispositivo de origen 20 recibe tales entradas de usuario específicas del proveedor, el dispositivo de origen 20 puede invocar la biblioteca de entradas de usuario HID específica del proveedor para analizar dichas entradas de usuario.
[0050] Como se mencionó anteriormente, el módulo UIBC 32 puede recibir mensajes de UIBC que incluyen mensajes de entrada, analizar los mensajes de entrada para determinar la entrada de usuario descrita por los mensajes de entrada, y generar eventos de entrada basándose en la entrada de usuario descrita por los mensajes de entrada. Para analizar un informe de entrada HIDC, el módulo UIBC 32 puede necesitar determinar el formato del informe al que se ajusta el informe de entrada HIDC. Por lo tanto, de acuerdo con las técnicas de esta divulgación, el módulo UIBC 32 puede determinar el formato de informe de un informe de entrada HIDC en un mensaje de UIBC basándose en datos en uno o más paquetes IP que contienen el informe de entrada HIDC.
[0051] En algunos ejemplos, el dispositivo de origen 20 puede almacenar formatos de informe 28. En algunos ejemplos, el dispositivo de origen 20 puede almacenar formatos de informe 28 antes de establecer un UIBC con un dispositivo colector 60. Los formatos de informe 28 pueden incluir datos que describen formatos de informe asociados con HID particulares. Por ejemplo, los formatos de informe 28 pueden incluir esquemas (por ejemplo, esquemas de lenguaje de marcado extensible (XML), etc.) que describen formatos de informe asociados con HID particulares. En tales ejemplos, los descriptores de informe especificados en los paquetes IP pueden ser identificadores que el dispositivo de origen 20 asocia con los formatos de informe 28 en particular. Para analizar un informe de entrada HIDC, el módulo UIBC 32 puede usar dichos identificadores para seleccionar uno de los formatos de informe 28. A continuación, el dispositivo de origen 20 puede usar el formato de informe descrito por el esquema identificado para analizar el informe de entrada HIDC. De esta manera, el dispositivo colector 60 y el dispositivo de origen 20 pueden intercambiar un subconjunto simplificado de los datos que pueden intercambiarse utilizando un procedimiento de negociación convencional por USB o Bluetooth. Por lo tanto, es posible que el dispositivo colector 60 y el dispositivo de origen 20 no necesiten intercambiar esquemas que indiquen formatos para informes de entrada HIDC con respecto a la entrada de HID particulares.
[0052] El módulo UIBC 32 puede identificar a uno de los formatos de informe 28 basándose en diversos identificadores. Por ejemplo, un mensaje de UIBC puede incluir al menos un primer campo y un segundo campo. El primer campo puede incluir un informe de entrada HIDC. El segundo campo puede incluir un indicador de tipo HID. El indicador de tipo HID puede comprender un identificador numérico que identifica uno de los formatos de informe 28. En otro ejemplo, el uno o más paquetes IP pueden especificar una dirección IP del dispositivo colector 60. En este ejemplo, el módulo UIBC 32 puede identificar uno de los formatos de informe 28 basándose al menos en parte en la dirección IP del dispositivo colector 60. Además, el uno o más paquetes IP pueden especificar un puerto de origen. En este ejemplo, el módulo UIBC 32 puede identificar uno de los formatos de informe 28 basándose al menos en parte en la dirección IP del dispositivo colector 60 y el puerto de origen.
[0053] En otros ejemplos, el módulo UIBC 74 puede generar informes de entrada HIDC que contienen descriptores de informe o datos de informe. El descriptor de informe de un informe de entrada HIDC puede describir los formatos de informe de los datos del informe. En algunos ejemplos, el descriptor del informe puede incluir un esquema. Por ejemplo, el descriptor del informe puede indicar que el bit 32 de los datos del informe indica si se pulsó un botón particular de un HID. Los datos del informe de un informe de entrada HIDC pueden describir la entrada de usuario recibida por un HID.
[0054] En estos ejemplos, el módulo UIBC 32 puede, en respuesta a recibir un mensaje de UIBC que contiene un informe de entrada HIDC, determinar si el informe de entrada HIDC contiene un descriptor de informe o un informe de datos. Si el informe de entrada HIDC contiene un descriptor de informe, el módulo 32 UIBC puede almacenar el descriptor de informe para su uso posterior en el análisis de los informes de entrada HIDC. Si el informe de entrada HIDC contiene datos del informe, el módulo UIBC 32 puede analizar los datos del informe basándose en un descriptor de informe recibido previamente.
[0055] Además, los informes de entrada HIDC pueden contener indicadores de uso y valores de HIDC. El indicador de uso de un informe de entrada HIDC indica si el valor HIDC del informe de entrada HIDC contiene datos de formato o datos de informe. En algunos de estos ejemplos, el informe de entrada HIDC puede ajustarse al formato indicado a continuación en la Tabla 1.
TABLA 1 - Ejemplo de formato de informe de entrada HIDC
Figure imgf000010_0001
[0056] En el ejemplo de formato de informe de entrada HIDC de la Tabla 1, el indicador de "uso" de un informe de entrada HIDC puede indicar si el campo "valor HIDC" del informe de entrada HIDC incluye datos de informe o un descriptor de informe. Los datos del informe pueden describir la entrada de usuario recibida por un HID, como HID 70. El descriptor de informe puede describir un formato de informe. Por lo tanto, el dispositivo colector 60 puede enviar, y el dispositivo de origen 20 puede recibir, un primer y un segundo informe de entrada HIDC. El indicador de "uso" del primer informe de entrada HIDC puede indicar que el valor HIDC del primer informe de entrada HIDC comprende un descriptor de informe y el indicador "uso" del segundo informe de entrada HIDC puede indicar que el valor HIDC del segundo informe de entrada HIDC comprende datos del informe.
[0057] En los ejemplos en los que los informes de entrada HIDC se ajustan al formato de la Tabla 1, el dispositivo colector 60 puede enviar un informe de entrada HIDC que comprende un descriptor de informe al dispositivo de origen 20 antes dispositivo colector 60 envíe un informe de entrada HIDC que comprende datos de informe al dispositivo de origen 20. El dispositivo colector 60 puede enviar descriptores de informe al dispositivo de origen 20 en múltiples ocasiones para garantizar que el dispositivo de origen 20 tenga los formatos correctos. El módulo UIBC 32 puede guardar los descriptores de informe durante la duración de una sesión WD y utilizar los descriptores de informe para analizar los datos del informe.
[0058] En otros ejemplos, el módulo UIBC 32 puede asumir que un primer informe de entrada HIDC recibido desde el dispositivo colector 60 siempre especifica un formato de informe y que los informes de entrada HIDC posteriores recibidos del dispositivo colector 60 se formatean de acuerdo con el formato de informe descrito por el primer informe de entrada HIDC. Además, en algunos ejemplos, el módulo UIBC 32 puede suponer que un primer informe de entrada HIDC recibido desde un puerto particular del dispositivo colector 60 siempre especifica un formato de informe y que los informes de entrada HIDC posteriores recibidos desde el puerto particular del dispositivo colector 60 están formateados de acuerdo con el formato del informe descrito por el primer informe de entrada HIDC.
[0059] En otros ejemplos, cada informe de entrada HIDC puede incluir dos valores HIDC. El primer valor HIDC de un informe de entrada HIDC puede especificar un descriptor de informe. El segundo valor HIDC del informe de entrada HIDC puede especificar datos de informe que se ajusten a un formato especificado por el descriptor de informe.
[0060] En algunos ejemplos, el dispositivo colector 60 y el dispositivo de origen 20 pueden soportar informes de entrada HIDC, pero pueden no soportar informes de salida HIDC. Los informes de salida HIDC pueden transmitir información desde el dispositivo de origen 20 a un dispositivo de entrada humana, como un teclado. Además, en algunos de estos ejemplos, el dispositivo colector 60 puede enviar los informes de entrada HIDC al dispositivo de origen 20 en forma de interrupción. Por lo tanto, puede que no sea necesario que el dispositivo de origen 20 sondee el dispositivo colector 60 sobre los informes de entrada HIDC.
[0061] La FIG. 2 es un diagrama de flujo que ilustra un ejemplo de operación 200 realizada por el dispositivo de origen 20, de acuerdo con una o más técnicas de esta divulgación. Aunque la FIG. 2 y otras figuras se describen con referencia a la FIG. 1, la FIG. 2 y otras figuras descritas en el presente documento pueden ser aplicables en ejemplos distintos del ejemplo de la FIG. 1.
[0062] En el ejemplo de la FIG. 2, el dispositivo de origen 20 puede almacenar una pluralidad de formatos de informe preconfigurados 28 (202). Cada uno de los formatos de informe preconfigurados 28 puede asociarse con un tipo diferente de HID. Además, el dispositivo de origen 20 puede recibir uno o más paquetes IP desde el dispositivo colector 60 (204). El uno o más paquetes IP pueden contener un informe de entrada HIDC. El módulo UIBC 32 del dispositivo de origen 20 puede identificar, basándose en los datos en uno o más paquetes IP, un formato de informe preconfigurado a partir de la pluralidad de formatos de informe preconfigurados 28 (206). A continuación, el módulo UIBC 32 puede analizar el informe de entrada HIDC basándose en el formato preconfigurado identificado para determinar una entrada de usuario descrita por el informe de entrada HIDC (208). El dispositivo de origen 20 puede generar datos multimedia en respuesta a la entrada de usuario (210). A continuación, el dispositivo de origen 20 puede enviar los datos multimedia desde el dispositivo de origen 20 al dispositivo colector 60 (212). Al recibir los datos multimedia, el dispositivo colector 60 puede descodificar y presentar los datos multimedia.
[0063] La FIG. 3 es un diagrama de flujo que ilustra un ejemplo de operación 250 realizada por un dispositivo colector, de acuerdo con una o más técnicas de esta divulgación. En el ejemplo de la FIG. 3, el dispositivo colector 60 puede recibir de un HID (por ejemplo, HID 70) una indicación de una entrada de usuario (252). El módulo UIBC 74 en el dispositivo colector 60 puede generar un informe de entrada HIDC basado en la entrada de usuario (254). En algunos ejemplos, el informe de entrada HIDC puede ajustarse a un estándar USB o Bluetooth. A continuación, el dispositivo colector 60 puede enviar uno o más paquetes IP al dispositivo de origen 20 (256). Los paquetes IP pueden contener el informe de entrada HIDC y un indicador de tipo HID que identifica un formato de informe para analizar el informe de entrada HIDC. Posteriormente, el dispositivo colector 60 puede recibir datos multimedia del dispositivo de origen 20 (258). Los datos multimedia pueden basarse en la entrada de usuario descrita por el informe de entrada HIDC.
[0064] La FIG. 4 es un diagrama de flujo que ilustra otro ejemplo de operación 350 realizada por un dispositivo colector 60, de acuerdo con una o más técnicas de esta divulgación. La operación 350 puede ser un caso más específico de la operación 250 ilustrada en el ejemplo de la FIG. 3.
[0065] En el ejemplo de la FIG. 4, el administrador de sesiones WD 68 del dispositivo colector 60 se comunica con el administrador de sesiones WD 30 del dispositivo de origen 20 para establecer un UIBC (351). En algunos ejemplos, el administrador de sesiones WD 30 del dispositivo de origen 20 inicia la comunicación para establecer el UIBC. En otros ejemplos, el administrador de sesiones WD 68 del dispositivo colector 60 inicia la comunicación para establecer el UIBC. En algunos ejemplos, administrador de sesiones WD 68 y administrador de sesiones WD 30 pueden negociar capacidades UIBC durante el establecimiento de la sesión. La FIG. 7, que se describe a continuación, es un diagrama de comunicación que ilustra una interacción de ejemplo entre el dispositivo de origen 20 y el dispositivo colector 60 para negociar el UIBC para mensajes de entrada genéricos. La FIG. 8, que se describe con mayor detalle a continuación, es un diagrama de comunicación que ilustra una interacción de ejemplo entre el dispositivo de origen 20 y el dispositivo colector 60 para negociar el UIBC para los informes de entrada HIDc .
[0066] Antes de que se establezca el UIBC, el dispositivo colector 60 puede ser consciente de y administrar los dispositivos de entrada conectados al mismo. Los dispositivos de pantalla táctil y de control remoto siempre pueden estar conectados al dispositivo colector 60. Otros dispositivos de entrada (como ratones y teclados) se conectan y desconectan, lo cual posiblemente requiera administradores y controladores de dispositivos Plug and Play (PnP) adecuados. Antes de iniciar el UIBC, el administrador de sesiones WD 68 puede tener una lista de dispositivos conectados y sus estados actuales. El administrador de sesiones WD 68 puede identificar los HID en esta lista al dispositivo de origen 20 durante el establecimiento del UIBC.
[0067] En algunos ejemplos, el establecimiento del UIBC supone los siguientes requisitos previos: El dispositivo de origen 20 ha descubierto el dispositivo colector 60. El dispositivo colector 60 se ha emparejado con el dispositivo de origen 20. Se ha establecido una conexión de Protocolo de Control de Transmisión (TCP) entre el dispositivo de origen 20 y el dispositivo colector 60 con un puerto de control RTSP. Todas las capacidades de WD no UIBC se han negociado a través de RTSP entre el dispositivo de origen 20 y el dispositivo colector 60.
[0068] Después de que se estableció el UIBC, el SO 76 del dispositivo colector 60 puede recibir un informe de entrada del controlador de HID 72 (352). En respuesta a la recepción del informe de entrada, SO 76 puede enviar un evento de entrada al módulo UIBC 74 del dispositivo colector 60 (354). El evento de entrada puede incluir el informe de entrada recibido por SO 76. Cuando el módulo UIBC 74 recibe eventos de entrada, el módulo UIBC 74 puede almacenar los eventos de entrada en una cola. El módulo UIBC 74 puede procesar los eventos de entrada en el orden en que el módulo UIBC 74 agrega los eventos de entrada a la cola.
[0069] Cuando el módulo UIBC 74 procesa un evento de entrada, el módulo UIBC 74 puede determinar si capturar el evento de entrada (356). El módulo UIBC 74 puede determinar si se debe capturar el evento de entrada de varias maneras. Por ejemplo, el módulo UIBC 74 puede tomar la decisión de no capturar eventos de entrada cuando se pulsa la tecla Mayús o la tecla Control. Si el módulo UIBC 74 toma la decisión de no capturar el evento de entrada ("NO" de 356), la operación 350 puede finalizar.
[0070] Si el módulo UIBC 74 toma la determinación de capturar el evento de entrada ("SÍ" de 356), el módulo UIBC 74 puede registrar el evento de entrada (358). El módulo UIBC 74 puede registrar el evento de entrada de varias maneras. Por ejemplo, el módulo UIBC 74 puede registrar el evento de entrada en una interfaz de línea de comandos (CLI) de prueba UIBC para la depuración.
[0071] Además, el módulo UIBC 74 puede generar un mensaje de UIBC (360). El mensaje de UIBC puede tener varios formatos de mensaje. La FIG. 6, que se describe en detalle a continuación, ilustra un formato de mensaje de ejemplo para un mensaje de UIBC. En otros ejemplos, el formato de mensaje de un mensaje de UIBC puede ser más simple que el formato de mensaje de ejemplo de la FIG. 6. Por ejemplo, en tales otros ejemplos, un mensaje de UIBC solo puede incluir el cuerpo de entrada. El mensaje de UIBC puede incluir un cuerpo de entrada genérico o un cuerpo de entrada HIDC. En algunos ejemplos, el mensaje de UIBC incluye un descriptor de informe que identifica un formato de informe al que corresponde el cuerpo de entrada HIDC del mensaje de UIBC. Cuando el módulo UIBC 74 procesa un informe de entrada, el módulo UIBC 74 puede generar un mensaje de UIBC que incluye un cuerpo de entrada genérico (es decir, un mensaje de entrada genérico) o un cuerpo de entrada HIDC (es decir, un informe de entrada HIDC).
[0072] El módulo UIBC 74 puede generar mensajes UIBC que incluyen cuerpos de entrada genéricos para las entradas de usuario que dependen de la plataforma de dispositivo. Por ejemplo, diferentes plataformas de dispositivos, como WINDOWS MOBiLe™ y ANDROID™, pueden tener diferentes formatos de entradas de usuario. Las entradas de usuario pueden detectarse y enviarse como entradas de usuario a nivel de sistema operativo, no como entradas de usuario a nivel de controlador.
[0073] Cuando el módulo UIBC 32 de dispositivo de origen 20 recibe un mensaje de entrada genérico, el módulo UIBC 32 puede procesar el mensaje de entrada genérico de acuerdo con una plataforma de dispositivo de dispositivo de origen 20. Por lo tanto, los mensajes de entrada genéricos pueden ser útiles cuando el dispositivo de origen 20 es capaz de procesar los informes de entrada originales recibidos por el módulo 74 de UIBC. Por ejemplo, el dispositivo de origen 20 puede procesar una cierta secuencia de toques con los dedos en una pantalla táctil, ya que una aplicación que se ejecuta en el dispositivo de origen 20 (por ejemplo, la aplicación 22) puede manejar interacciones complejas de los usuarios. El dispositivo de origen 20 puede soportar eventos de movimiento de múltiples toques para entradas genéricas con el uso de un identificador de puntero que identifica qué punteros se están utilizando a la vez. Por lo tanto, el dispositivo colector 60 puede enviar estos eventos de movimiento de múltiples toques como múltiples punteros, y el dispositivo de origen 20 puede interpretarlos como múltiples eventos de puntero.
[0074] En algunos ejemplos, el módulo UIBC 74 puede detectar eventos de movimiento generados por el SO 76. En tales ejemplos, el módulo UIBC 74 puede generar un mensaje de UIBC que incluye un cuerpo de entrada genérico en respuesta a la recepción de un evento de movimiento. El evento de movimiento puede ser un objeto de datos (por ejemplo, un objeto de lenguaje de programación orientado a objetos) que pertenece a una clase de evento de entrada. Los objetos que pertenecen a la clase de evento de entrada pueden comprender objetos de evento de movimiento u objetos de evento de tecla. Los objetos de evento de movimiento pueden incluir datos que registran movimientos de varios tipos de HID, como ratones, bolígrafos, dedos y bolas de seguimiento. Los objetos de eventos de tecla pueden incluir datos que registran las pulsaciones de teclas. En tales ejemplos, el módulo UIBC 74 puede procesar los objetos de Evento de movimiento de acuerdo con el siguiente pseudo código:
Si KeyEvent
Si KeyDown
Guarde el código de tecla 1 (si es Mayús, espere 1 segundo y guarde el código de tecla 2)
Traducir a ASCII
Generar mensaje de entrada genérico de KeyDown
Colocar en la cola de InputTx
Si keyUp
Guarde el código de tecla 1 (si es Mayús, espere 1 segundo y guarde el código de tecla
2)
Traducir a ASCII
Generar mensaje de entrada genérico de KeyUp
Colocar en la cola de InputTx
Si no es MotionEvent
Si ActionDown
Guardar X, Y e ID para cada puntero hacia abajo
Escalar X, Y a resolución de vídeo
Generar mensaje de entrada genérico de TouchDown
Colocar en la cola de InputTx
Si ActionUp
Guardar X, Y e ID para cada puntero arriba
Escalar X, Y a resolución de vídeo
Generar mensaje de entrada genérico de TouchUp
Colocar en la cola de InputTx
Si ActionMove && Absolute InputDevice
Guardar X, Y e ID principales para cada puntero
Escalar X, Y a resolución de vídeo
Generar mensaje de entrada genérico de TouchMove
Colocar en la cola de InputTx
Si ActionMove && Relative InputDevice
Guardar Delta X, Y y obtener X, Y absolutos
Escalar X, Y a resolución de vídeo
Generar mensaje de entrada genérico de TouchMove
Colocar en la cola de InputTx
Si ActionScroll
Si vertical
Generar informe de desplazamiento vertical
Colocar en la cola de InputTx
Si horizontal
Generar informe de desplazamiento horizontal
Colocar en la cola de InputTx
En caso contrario, imprimir "InputEvent no puede procesarse: " Comando
[0075] De acuerdo con el pseudo código proporcionado anteriormente, el módulo UIBC 74 puede determinar si el objeto evento de movimiento es un objeto de evento de tecla. Si el objeto de Evento de movimiento es un objeto de evento de tecla y el objeto de evento de tecla indica un evento de desactivación de tecla, el módulo UIBC 74 puede traducir un código para la tecla pulsada a un código UTF-8 o ASCII, generar un mensaje de entrada genérico para el evento de tecla pulsada, y poner en cola un mensaje de UIBC que contiene el mensaje de entrada genérico para la transmisión. Si el objeto de evento de movimiento es un objeto de evento de tecla y el objeto de evento de tecla indica un evento de activación de tecla, el módulo UIBC 74 puede traducir un código para la tecla liberada a un código UTF-8 o ASCII, generar un mensaje de entrada genérico para el evento de tecla Arriba, y poner en cola un mensaje de UIBC que contiene el mensaje de entrada genérico para la transmisión. En el pseudo código proporcionado anteriormente, el módulo UIBC 74 puede generar y poner en cola para transmitir mensajes de entrada genéricos para varios tipos de objetos de evento de movimiento, tales como eventos de puntero hacia abajo, eventos de puntero hacia arriba, eventos de movimiento de puntero y eventos de desplazamiento.
[0076] Además de procesar objetos de evento de movimiento y objetos de evento de tecla como se analizó anteriormente, el módulo UIBC 74 puede procesar otros tipos de eventos de entrada. Por ejemplo, si el dispositivo colector 60 incluye detectores de orientación, el módulo UIBC 74 puede generar mensajes de entrada genéricos que indiquen cambios en la orientación del dispositivo colector 60, como se indica en el siguiente pseudo código.
Si se detecta cambio de orientación
Sobre el cambio de orientación
Guardar grados de orientación
Generar mensaje de entrada de rotación
Colocar en la cola de InputTx
[0077] En algunos ejemplos, el módulo UIBC 74 puede generar mensajes de entrada genéricos para la entrada de múltiples toques. Si tanto el dispositivo de origen 20 como el dispositivo colector 60 soportan múltiples toques, el módulo UIBC 74 puede generar elementos de información adicionales (IE) para las entradas del usuario para el puntero hacia abajo, el puntero mover y el puntero hacia arriba con coordenadas X e Y precedidas por el número de punteros y un parámetro de índice para identificar cuál de los múltiples punteros es (por ejemplo, [2, 1, X1, Y1, 2, X2, Y2]). Para un solo toque, estos valores anteriores pueden ser 1 y 1 (por ejemplo, [1,1, X, Y]).
[0078] En esta divulgación, HIDC puede hacer referencia al envío de mensajes a través de una variedad de estándares HID existentes, ambos basados en el USB HID y de otra manera. El dispositivo colector 60 puede enviar las entradas de usuario de la categoría HIDC y no puede procesar las entradas de usuario. Es posible que un tercer dispositivo conectado al dispositivo colector 60 tenga conocimiento del dispositivo de origen 20. En este caso, un dispositivo HID puede enviar mensajes desde el tercer dispositivo al dispositivo colector 60 y el dispositivo colector 60 puede enviar los mensajes directamente al dispositivo de origen 20. De esta manera, el dispositivo de origen 20 puede responder a esos mensajes en el contexto correcto.
[0079] En algunos ejemplos, el módulo UIBC 74 puede generar mensajes UIBC que incluyen cuerpos de entrada HIDC para dispositivos de tipo tecla USB. En algunos de estos ejemplos, el módulo UIBC 74 puede capturar entradas del usuario como objetos de evento de movimiento desde el SO 76 en lugar de hacerlo desde el controlador de HID 72. El módulo UIBC 74 puede generar informes de entrada HIDC basados en objetos de evento de entrada. El módulo UIBC 74 puede procesar objetos de evento de movimiento de acuerdo con el siguiente pseudo código:
Si MotionEvent
Si ActionDown
Guardar X, Y
Generar informe de entrada de botón de ratón 1 abajo de HID
Colocar en la cola de InputTx
Si ActionUp
Guardar X, Y
Generar informe de botón de ratón 1 arriba de HID
Colocar en la cola de InputTx
Si ActionMove && Absolute InputDevice
Guardar X, Y
Generar informe de movimiento de ratón de HID
Colocar en la cola de InputTx
Si ActionMove && Relative InputDevice
Guardar deltas de X, Y de ActionMove anterior
Generar informe de movimiento de ratón de HID
Colocar en la cola de InputTx
Si ActionScroll
Si vertical
Generar informe del botón de ratón 3
Colocar en la cola de InputTx
En caso contrario, imprimir "MotionEvent no puede procesarse: " Comando
[0080] De acuerdo con el pseudo código anterior, el módulo UIBC 74 puede generar informes de entrada HIDC que indican varios tipos de entradas de movimiento. Además, en el ejemplo de pseudo código anterior, el objeto de Evento de entrada se puede generar desde un HID que no sea una pantalla táctil. En consecuencia, el objeto de evento de entrada puede indicar deltas relativas de X e Y en lugar de X e Y absolutos, como se indica típicamente en los objetos de evento de entrada para la entrada de usuario desde pantallas táctiles.
[0081] Después de que el módulo UIBC 74 genera un mensaje de UIBC, el módulo UIBC 74 puede enviar el mensaje de UIBC a una cola de transmisión UIBC (362). El SO 76 del dispositivo colector 60 puede enviar mensajes UIBC desde la cola de transmisión UIBC (364). El SO 76 puede enviar mensajes UIBC desde la cola de transmisión UIBC en el orden en que los mensajes UIBC se agregaron a la cola de transmisión UIBC. Cuando SO 76 envía un mensaje de UIBC, la pila IP 78 puede encapsular el mensaje de UIBC en uno o más paquetes TCP/IP que especifican como dirección de destino una dirección IP del dispositivo de origen 20. El paquete TCP/IP puede especificar como puerto de destino un identificador de puerto que el dispositivo de origen 20 y el dispositivo colector 60 negociaron cuando el dispositivo de origen 20 y el dispositivo colector 60 establecieron la sesión de pantalla inalámbrica.
[0082] Como se indicó anteriormente, la Fig. 4 es simplemente un ejemplo coherente con esta divulgación. En otros ejemplos, el módulo UIBC 74 puede recibir el informe de entrada HIDC directamente del controlador de HID 72. A continuación, el módulo UIBC 74 puede agregar un envoltorio UIBC (por ejemplo, generar un mensaje de UIBC que incluya el informe de entrada HIDC) y a continuación enviar el mensaje de UIBC a la cola de transmisión UIBC.
[0083] La FIG. 5 es un diagrama de flujo que ilustra otra operación de ejemplo 400 realizada por el dispositivo de origen 20. La operación 400 puede ser un caso más específico de la operación 200 ilustrada en el ejemplo de la FIG.
2.
[0084] En el ejemplo de la FIG. 5, el módulo UIBC 32 puede recibir un mensaje de UIBC en un UIBC establecido (402). El módulo UIBC 32 puede enviar el mensaje de UIBC a una cola de recepción de UIBC (404). El módulo UIBC 32 puede analizar un mensaje de UIBC en la cola de recepción de UIBC (406). El módulo UIBC 32 puede analizar los mensajes de UIBC en la cola de recepción de UIBC de acuerdo con un orden en el que los mensajes de UIBC se agregan a la cola de recepción de UIBC.
[0085] Si el mensaje de UIBC contiene un cuerpo de entrada genérico, el módulo UIBC 32 puede analizar el mensaje de UIBC de acuerdo con la Tabla 2, a continuación.
TABLA 2
Figure imgf000015_0001
Figure imgf000016_0002
[0086] Aunque no se muestra en la Tabla 2, el cuerpo de un mensaje de entrada genérico puede incluir el número de punteros activamente hacia abajo (#), con un ID de puntero (N) que describe cada puntero que es seguido por las coordenadas X e Y.
[0087] Si el mensaje de UIBC contiene un informe de entrada HIDC, el módulo UIBC 32 puede identificar, basándose en datos (por ejemplo, un indicador de tipo HID) en uno o más paquetes IP que contienen el mensaje de UIBC, un formato de informe preconfigurado. A continuación, el módulo UIBC 32 puede analizar un informe de entrada HIDC basándose en el formato de informe preconfigurado identificado para determinar una entrada de usuario. Por ejemplo, si el mensaje de UIBC contiene un informe de entrada HIDC, el módulo 32 UIBC puede analizar el informe de entrada HIDC de acuerdo con la Tabla 3, que se muestra a continuación. La Tabla 3 indica un formato de ejemplo para un informe de entrada HIDC para las acciones del ratón. En algunos ejemplos, el dispositivo colector 60 puede enviar informes de entrada HIDC para acciones del ratón cada 10 ms durante las acciones del ratón.
TABLA 3
Figure imgf000016_0001
Los dispositivos Bluetooth pueden tener un informe de entrada similar al ejemplo de informe de entrada de la Tabla 3, excepto que los informes de entrada para dichos dispositivos Bluetooth pueden incluir una cabecera de DATOS adicional que tiene un valor igual a 10100001.
[0088] Después de analizar el mensaje de UIBC, el módulo UIBC 32 puede determinar si el mensaje de UIBC incluye un mensaje de entrada genérica (408). En respuesta a la determinación de que el mensaje de UIBC incluye un mensaje de entrada genérico ("SÍ" de 408), el módulo 32 UIBC puede inyectar un evento de entrada basándose en el mensaje de entrada genérico (410). Cuando el módulo UIBC 32 inyecta el evento de entrada, el SO 24 del dispositivo de origen 20 puede notificar a los procesos que se han registrado para recibir el evento de entrada.
[0089] En algunos ejemplos, el módulo UIBC 32 puede llevar a cabo un procesamiento adicional sobre los valores en un evento de entrada genérico para generar el evento de entrada. Sin dicho procesamiento adicional, los valores representados en el evento de entrada pueden no correlacionarse con los valores apropiados en el dispositivo de origen 20. Por ejemplo, el mensaje de UIBC puede incluir un mensaje de entrada genérico que indica una entrada de movimiento. En este ejemplo, el módulo UIBC 32 puede realizar un procesamiento adicional para normalizar los valores X e Y enviados en el mensaje de entrada genérico. Debido a que la resolución de vídeo negociada puede no coincidir con la resolución de vídeo de una pantalla del dispositivo colector 60 y una pantalla del dispositivo de origen 20, los valores X e Y de un evento de movimiento detectado en el dispositivo colector 60 pueden no correlacionarse con la resolución de vídeo negociada. Por lo tanto, el módulo UIBC 32 puede normalizar los valores X e Y de un evento de movimiento detectado en el dispositivo colector 60 a los valores X e Y apropiados de la resolución de vídeo negociada. El módulo UIBC 32 puede normalizar los valores de X e Y usando la siguiente fórmula:
Entrada genérica X = Colector X * (Máx. X de resolución de vídeo/máx. X de pantalla de colector)
Entrada genérica Y = Colector Y * (Máx. Y de resolución de vídeo/máx. Y de pantalla de colector)
La resolución negociada se puede especificar en el parámetro "wfd_video_formats" durante la negociación de capacidad basada en la transacción RTSP. El módulo UIBC 32 no puede realizar la asignación si la resolución negociada coincide con la resolución de la pantalla del dispositivo de origen 20.
[0090] Además, en el ejemplo del párrafo anterior, una vez que el módulo UIBC 32 recibe los valores X e Y de un mensaje de entrada de movimiento genérico, el módulo UIBC 32 puede o puede no asignar los valores X e Y del mensaje de entrada de movimiento genérico para la resolución de una pantalla del dispositivo de origen 20 para su procesamiento. Si el dispositivo de origen 20 procesa los valores X e Y del mensaje de entrada de movimiento genérico en la resolución del vídeo negociado, el módulo UIBC 32 no necesita realizar ninguna asignación. Sin embargo, si el dispositivo de origen 20 procesa los valores X e Y del mensaje de entrada de movimiento genérico en la referencia de la resolución de una pantalla del dispositivo de origen 20, el módulo UIBC 32 puede realizar la siguiente asignación:
X a procesar = Entrada genérica X *
(Máx. X de pantalla de colector/máx. X de resolución de vídeo)
Y para procesar = Entrada genérica Y *
(Máx. Y de pantalla de colector/máx Y de resolución de vídeo)
[0091] Por otra parte, las coordenadas X e Y especificadas en los eventos de entrada genéricos puede ser coordenadas absolutas (es decir, coordenadas de la pantalla) o coordenadas relativas (es decir, deltas que reflejan un cambio en X y/o Y). En algunos ejemplos, si las coordenadas especificadas en un evento de entrada genérico son coordenadas absolutas, el módulo UIBC 32 puede convertir las coordenadas en coordenadas relativas, o viceversa, según sea apropiado para el dispositivo de origen 20.
[0092] Además, si el mensaje de entrada genérico indica un evento de tecla, una orden y el número de teclas pulsadas puede ser importante. Debido a que los diferentes sistemas operativos pueden usar valores diferentes para las teclas, el módulo UIBC 74 y el módulo UIBC 32 pueden usar caracteres genéricos UTF-8 o ASCII en los mensajes de entrada genéricos para seguir siendo independientes del sistema operativo. Por ejemplo, para enviar una letra mayúscula, el dispositivo colector 60 puede esperar otra tecla después de pulsar la tecla Mayús y enviar la letra mayúscula correspondiente. En algunos ejemplos, se pueden enviar múltiples códigos de tecla en un solo mensaje de entrada genérico.
[0093] Si el mensaje de UIBC no incluye un mensaje de entrada genérico ("NO" de 408), el módulo UIBC 32 puede determinar si el mensaje de UIBC incluye un informe de entrada HIDC (412). Si el mensaje de UIBC incluye un informe de entrada HIDC ("SÍ" de 412), el módulo UIBC 32 puede generar e inyectar un evento de entrada basado en el informe de entrada HIDC (414). Como se describe en otra parte de esta divulgación, el dispositivo colector 60 puede no procesar informes de entrada HIDC. En lugar de eso, el dispositivo colector 60 puede pasar informes de entrada HIDC de controladores de HID que generaron los informes de entrada HIDC.
[0094] En algunos ejemplos, el módulo UIBC 32 puede no necesitar normalizar las coordenadas X e Y enviadas en los informes de entrada HIDC porque los movimientos son cambios relativos en X e Y y solo pueden dar como resultado aumentos pequeños en la velocidad de movimiento del ratón. En otros ejemplos, el módulo UIBC 32 puede normalizar las coordenadas X e Y para reflejar las diferencias en la resolución de la pantalla entre una pantalla del dispositivo de origen 20 y una pantalla del dispositivo colector 60, entre una resolución de pantalla negociada y una resolución de pantalla del dispositivo colector 60, o una resolución de pantalla negociada y una resolución de pantalla del dispositivo de origen 20.
[0095] Además de la normalización, las coordenadas X e Y enviadas en los informes de entrada de ratón HIDC pueden ser coordenadas X e Y relativas, mientras que las coordenadas de evento de movimiento pueden ser absolutas (coordenadas de pantalla) o relativas (deltas que reflejan un cambio en X o Y). En algunos sistemas operativos, la mayoría de las entradas, excepto las entradas de la pantalla táctil, son relativas, por lo que si se puede encontrar un dispositivo de entrada adicional, no se necesitan cambios. Los dispositivos de entrada de la pantalla táctil pueden ser absolutos, por lo que si el dispositivo de entrada es una pantalla táctil, las coordenadas absolutas X e Y previas pueden registrarse y solo los cambios relativos pueden enviarse en el informe de entrada del ratón de HIDC.
[0096] El módulo UIBC 32 puede inyectar eventos de entrada de diversas maneras. Por ejemplo, el módulo UIBC 32 puede inyectar eventos de entrada a través de los controladores existentes. En este ejemplo, el módulo UIBC 32 puede pasar valores HID (por ejemplo, valores basados en la entrada de usuario descrita por mensajes de entrada genéricos o informes de entrada HIDC) directamente al controlador respectivo en SO 24 y puede procesarse en consecuencia. El SO 24 puede llevar el evento de entrada desde el controlador a una aplicación (por ejemplo, la aplicación 22) registrada para recibir el evento de entrada.
[0097] En otro ejemplo, el módulo UIBC 32 puede inyectar eventos de entrada a través de un controlador de HID. En este ejemplo, el módulo UIBC 32 puede pasar valores HID directamente a un controlador de HID en SO 24. El controlador de HID puede procesar los valores HID en consecuencia. Las solicitudes de controladores de HID al SO 24 también pueden enviarse a través del UIBC.
[0098] En otro ejemplo, el módulo UIBC 32 puede inicializar un controlador virtual. La inicialización de un controlador virtual puede permitir que el módulo UIBC 32 tenga la flexibilidad de insertar una amplia variedad de eventos de entrada al SO 24. En este ejemplo, el módulo UIBC 32 puede pasar eventos de entrada al controlador virtual. A continuación, el controlador virtual puede enviar los eventos de entrada al SO 24 porque el controlador virtual puede estar estrechamente integrado con el SO 24 y puede representar uno o varios dispositivos de entrada. El controlador virtual puede inicializarse cuando la pantalla inalámbrica está activa, pero es posible que deba instalarse.
[0099] En otro ejemplo, el módulo UIBC 32 puede inyectar eventos de entrada a través de los comandos de SO al SO 24. En este ejemplo, el módulo UIBC 32 puede enviar KeyEvents y MotionEvents directamente al SO 24. Sin embargo, en algunos ejemplos, el SO 24 puede evitar la inyección de eventos de entrada a través de los comentarios del SO, ya que puede no ser seguro que una aplicación envíe comandos a otras aplicaciones y cada aplicación tiene su propia instancia del núcleo subyacente. Este enfoque puede ser más fácil que implementar un controlador virtual y el rendimiento de latencia puede ser mejor. El siguiente pseudo código muestra una forma de ejemplo de inyectar eventos de entrada de acuerdo con este ejemplo:
InputConnection ic = getCurrentInputConnection();
long eventTime = SystemClock.uptimeMillis();
ic.sendKeyEvent(new KeyEvent(eventTime, eventTime,
KeyEvent.ACTION_DOWN, keyEventCode, 0, 0, 0, 0, KeyEvent.FLAG_SOFT_KEYBOARD |KeyEvent.FLAG_KEEP_TOUCH_MODE)); ic.sendKeyEvent(new KeyEvent (SystemClock.uptimeMillis(), eventTime, KeyEvent.ACTION_UP, keyEventCode, 0, 0, 0, 0, KeyEvent.FLAG_SOFT_KEYBOARD |KeyEvent.FLAG_KEEP_TOUCH_MODE));
[0100] Si el mensaje de UIBC no incluye un informe de entrada HIDC ("NO" de 412), el módulo 32 UIBC puede determinar si el mensaje de UIBC corresponde a una solicitud de descriptor (416). En respuesta a la determinación de que el mensaje de UIBC corresponde a una solicitud de descriptor ("SÍ" de 416), el módulo UIBC 32 puede enviar un descriptor a un ordenador principal de HID en el dispositivo de origen 20 (418). El ordenador principal de HID puede ser una unidad en el dispositivo de origen 20 que procesa los informes de entrada de un HID particular. En el ejemplo de la FIG. 5, el módulo UIBC 32 puede procesar otro mensaje de UIBC desde la cola de recepción de UIBC si el mensaje de UIBC no corresponde a una solicitud de descriptor ("NO" de 416).
[0101] Durante la inicialización de un HID, un ordenador principal de HID puede requerir información adicional sobre el HID. En consecuencia, el dispositivo de origen 20 puede enviar un comando Get_Descriptor al dispositivo colector 60. Cuando el dispositivo colector 60 recibe un comando Get_Descriptor, el módulo UIBC 74 puede reenviar el comando Get_Descriptor a un controlador de HID (por ejemplo, controlador de HID 72) asociado con el HID. Cuando el controlador de HID recibe el comando Get_Descriptor, el controlador de HID puede enviar información sobre el HID al módulo 74 de UIBC. A continuación, el módulo UIBC 74 puede generar y enviar un mensaje de UIBC que incluya la información sobre el HID. En algunos ejemplos en los que el dispositivo de origen 20 puede identificar un formato de informe preconfigurado basado en los datos de uno o más paquetes de IP que contienen un informe de entrada HIDC, puede ser innecesario que el dispositivo de origen 20 solicite dicha información adicional.
[0102] Tras la inicialización, el dispositivo colector 60 puede recibir un comando Get_Descriptor del dispositivo de origen 20 con un tipo de informe de descriptor. El controlador de HID puede enviar el descriptor de informe como se muestra a continuación en las Tablas 4 y 5 como el valor HID del informe de entrada. Después del descriptor de informe inicial, el dispositivo colector 60 puede continuar enviando informes de entrada como se muestra en el cuerpo de entrada HIDC con la frecuencia con que se reciben del controlador de HID (o inicialmente a través de MotionEvents).
TABLA 4 - Obtener descriptor
Figure imgf000019_0001
TABLA 5 - Descriptor de informe de la interfaz 0 para un ratón
Figure imgf000019_0002
Figure imgf000020_0002
[0103] En algunos casos, el dispositivo de origen 20 puede enviar comandos Get_Descriptor adicionales con tipos de descriptores que no sean "Informe". Si el dispositivo colector 60 recibe un comando Get_Descriptor con un tipo de descriptor "HID" (wValue = 21h), el controlador de HID puede enviar el descriptor HID como se muestra en la Tabla 6 a continuación.
TABLA 6
Figure imgf000020_0003
[0104] Si el dispositivo colector 60 recibe un comando Get_Descriptor (Configuración), el controlador de HID puede enviar el descriptor de configuración, el descriptor de interfaz, el descriptor de HID y el descriptor de punto final como mensajes separados en ese orden. Los ejemplos de estos descriptores se describen en las Tablas 7-12, a continuación:
TABLA 7
Figure imgf000020_0001
TABLA 8
Figure imgf000021_0001
TABLA 9 - Descriptor de HID
Figure imgf000021_0002
TABLA 10 - Descriptor de punto final
Figure imgf000021_0003
[0105] Si no se usa un controlador de HID estándar, estas solicitudes pueden reconocerse y el módulo UIBC 74 puede almacenar y enviar los valores de datos anteriores.
TABLA 11 - Obtener descriptor
Figure imgf000022_0001
TABLA 12 - Descriptor de dispositivo
Figure imgf000022_0002
[0106] La FIG. 6 es un diagrama conceptual que ilustra un formato de ejemplo de un mensaje de UIBC 450. Para facilitar la explicación, el siguiente análisis de la FIG. 6 supone que el dispositivo colector 60 envía el mensaje de UIBC 450 y el dispositivo de origen 20 recibe el mensaje de UIBC 450.
[0107] En el ejemplo de la FIG. 6, el mensaje de UIBC 450 puede incluir un campo de versión, un indicador de marca de tiempo ("T"), un campo reservado, un campo de categoría de entrada, un campo de marca de tiempo, un campo de longitud y un campo de cuerpo de entrada. El tamaño del campo reservado puede ser igual a ocho bits y puede ser ignorado por el dispositivo de origen 20 (FIG. 1).
[0108] El campo de versión puede indicar una versión de formato del mensaje 450 de UIBC. El tamaño del campo de versión puede ser igual a tres bits. En algunos ejemplos, el valor esperado del campo de versión puede ser igual a 1.
[0109] El campo de categoría de entrada puede indicar si el campo del cuerpo de entrada de mensaje de UIBC 450 contiene un cuerpo de entrada genérico o un cuerpo de entrada HIDC. El tamaño del campo de categoría de entrada puede ser igual a cuatro bits. En algunos ejemplos, si un valor del campo de categoría de entrada es igual a 0, el campo del cuerpo de entrada del mensaje de UIBC 450 puede contener un cuerpo de entrada genérico (es decir, un mensaje de entrada genérico). En tales ejemplos, si el valor del campo de categoría de entrada es igual a 1, el campo del cuerpo de entrada del mensaje de UIBC 450 puede contener un cuerpo de entrada HIDC (es decir, un informe de entrada HIDC).
[0110] El campo de longitud puede indicar una longitud en bytes (es decir, octetos) del mensaje de UIBC 450, incluyendo el campo del cuerpo de entrada de mensaje de UIBC 450. El tamaño del campo de longitud puede ser igual a dieciséis bits. El dispositivo de origen 20 puede usar el campo de longitud para verificar que el mensaje de UIBC 450 tiene una longitud adecuada.
[0111] El indicador de marca de tiempo puede indicar si el dispositivo de origen 20 tiene que leer el campo de marca de tiempo del mensaje de UIBC 450. El tamaño del indicador de marca de tiempo puede ser igual a un bit. En algunos ejemplos, el indicador de marca de tiempo puede indicar que el dispositivo de origen 20 debe leer el campo de marca de tiempo del mensaje de UIBC 450 si el indicador de marca de tiempo es igual a 1. En tales ejemplos, el indicador de marca de tiempo puede indicar que el dispositivo de origen 20 no debe leer el campo de marca de tiempo del mensaje de UIBC 450 si el indicador de marca de tiempo es igual a 0. En algunos ejemplos, el valor esperado del indicador de marca de tiempo es 1.
[0112] El campo de marca de tiempo puede indicar un momento en el que el dispositivo colector 60 recibe una entrada de usuario asociada con el mensaje de UIBC 450. El tamaño del campo de marca de tiempo puede ser igual a dieciséis bits. El dispositivo de origen 20 puede guardar la marca de tiempo para su procesamiento posterior cuando el dispositivo de origen 20 recibe el mensaje de UIBC 450.
[0113] Cuando el canal inalámbrico 50 del dispositivo de origen 20 al dispositivo colector 60 está congestionado, las entradas de usuario recibidas en el dispositivo colector 60 pueden haber sido aplicadas a las tramas de visualización obsoletas mostradas por el dispositivo colector 60. Dichas entradas de usuario no pueden procesarse cuando se reciben en el dispositivo de origen 20. Por otro lado, cuando el UIBC del dispositivo colector 60 al dispositivo de origen 20 está congestionado, las entradas del usuario aplicadas al dispositivo colector 60 pueden recibirse demasiado tarde en el dispositivo de origen 20. Estas entradas de usuario tampoco pueden ser procesadas por el dispositivo de origen 20.
[0114] El campo de marca de tiempo puede informar al dispositivo de origen 20 acerca de los problemas de sincronización anteriores. El campo de marca de tiempo puede especificar una marca de tiempo asociada con los datos multimedia que se muestran cuando se reciben las entradas del usuario. Enviar dicha información de marca de tiempo puede ser suficiente para resolver los problemas de sincronización anteriores.
[0115] La FIG. 7 es un diagrama de comunicación que ilustra una interacción de ejemplo entre el dispositivo de origen 20 y el dispositivo colector 60 para negociar un UIBC para mensajes de entrada genéricos. En el ejemplo de la FIG.
7, el dispositivo de origen 20 envía un mensaje 500 al dispositivo colector 60. El mensaje 500 puede ser una solicitud para obtener los parámetros de capacidad UIBC del dispositivo colector 60. El dispositivo colector 60 responde al mensaje 500 enviando un mensaje 502 nuevamente al dispositivo 20 de origen. El mensaje 502 indica las capacidades del dispositivo colector 60 para proporcionar mensajes de entrada genéricos e informes de entrada HIDC. En el ejemplo de la FIG. 7, el mensaje 502 indica que el dispositivo colector 60 puede proporcionar mensajes de entrada genéricos para un ratón y una pantalla táctil de un único toque (es decir, generic_cap_list = ratón, SingleTouch). El mensaje 502 también indica que el dispositivo colector 60 no proporciona ningún informe de entrada HIDC (es decir, hidc_cap_list = ninguno). Entradas genéricas de ejemplo que el dispositivo colector 60 puede indicar en una respuesta a una solicitud del dispositivo de origen 20 para capacidades de mensajes de entrada genéricos pueden incluir toque/ratón abajo, toque/ratón arriba, toque/movimiento de ratón, tecla abajo, tecla arriba, zoom, desplazamiento vertical, desplazamiento horizontal y girar.
[0116] Después de que el dispositivo de origen 20 recibe el mensaje 502, el dispositivo de origen 20 puede enviar un mensaje 504 al dispositivo colector 60. El mensaje 504 puede indicar al dispositivo colector 60 que establezca uno o más parámetros UIBC. Por ejemplo, en el ejemplo de la FIG. 7, el mensaje 504 indica al dispositivo colector 60 que establezca un número de puerto en 1000. Después de que el dispositivo colector 60 reciba el mensaje 504, el dispositivo colector 60 puede configurar el parámetro como se indica en el mensaje 504 y enviar un mensaje 506 de vuelta al dispositivo de origen 20. El mensaje 506 confirma al dispositivo de origen 20 que el dispositivo colector 60 establece uno o más parámetros UIBC como se indica en el mensaje 504.
[0117] Posteriormente, el dispositivo de origen 20 puede enviar un mensaje 508 al dispositivo colector 60. El mensaje 508 puede indicar al dispositivo colector 60 que establezca un parámetro UIBC (por ejemplo, wfd_uibc_setting) para indicar que un UIBC está habilitado. El dispositivo colector 60 puede responder al mensaje 508 configurando el parámetro UIBC para indicar que el UIBC está habilitado y enviando un mensaje 510 para confirmar que el dispositivo colector 60 establece el parámetro UIBC como se indica en el mensaje 508.
[0118] La FIG. 8 es un diagrama de comunicación que ilustra una interacción de ejemplo entre el dispositivo de origen 20 y el dispositivo colector 60 para negociar un UIBC para los informes de entrada del Comando de Dispositivo de Entrada Humana (HIDC). En el ejemplo de la FIG. 8, el dispositivo de origen 20 envía un mensaje 550 al dispositivo colector 60. El mensaje 550 puede ser una solicitud para obtener un parámetro de capacidad UIBC (wfd_uibc_capability) del dispositivo colector 60. El dispositivo colector 60 responde al mensaje 550 enviando un mensaje 552 nuevamente al dispositivo 20 de origen. El mensaje 552 indica las capacidades del dispositivo colector 60 para proporcionar mensajes de entrada genéricos e informes de entrada HIDC. En el ejemplo de la FIG. 8, el mensaje 552 indica que el dispositivo colector 60 puede proporcionar informes de entrada HIDC para un ratón Bluetooth y un control remoto por infrarrojos (es decir, hidc_cap_list = Mouse/BT, RemoteControl/Infrared). El mensaje 552 también indica que el dispositivo colector 60 no proporciona ningún mensaje de entrada genérico (es decir, generic_cap_list = none).
[0119] Después de que el dispositivo de origen 20 recibe el mensaje 552, el dispositivo de origen 20 puede enviar un mensaje 554 al dispositivo colector 60. El mensaje 554 puede indicar al dispositivo colector 60 que establezca uno o más parámetros UIBC. Por ejemplo, en el ejemplo de la FIG. 8, el mensaje 554 indica al dispositivo colector 60 que establezca un número de puerto en 1000. Después de que el dispositivo colector 60 reciba el mensaje 554, el dispositivo colector 60 puede configurar el parámetro como se indica en el mensaje 554 y enviar un mensaje 556 de vuelta al dispositivo de origen 20. El mensaje 556 confirma al dispositivo de origen 20 que el dispositivo colector 60 establece uno o más parámetros UIBC como se indica en el mensaje 554.
[0120] Posteriormente, el dispositivo de origen 20 puede enviar un mensaje 558 al dispositivo colector 60. El mensaje 558 puede indicar al dispositivo colector 60 que establezca un parámetro UIBC (por ejemplo, wfd_uibc_setting) para indicar que un UIBC está habilitado. El dispositivo colector 60 puede responder al mensaje 558 configurando el parámetro UIBC para indicar que el UIBC está habilitado y enviando un mensaje 560 para confirmar que el dispositivo colector 60 establece el parámetro UIBC como se indica en el mensaje 558. Una vez que se han negociado las capacidades genéricas o de HIDC adecuadas sobre RTSP, se habilita la capacidad UIBC y el dispositivo colector 60 puede enviar entradas de usuario a través de UIBC como subelementos. En el ejemplo de la FIG. 8, el UIBC ya está establecido.
[0121] En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de estos. Si se implementan en software, las funciones, como una o más instrucciones o código, se pueden almacenar en, o transmitir por, un medio legible por ordenador. Los medios legibles por ordenador pueden incluir medios de almacenamiento de datos informáticos o medios de comunicación, incluido cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro. En algunos ejemplos, los medios legibles por ordenador pueden comprender medios legibles por ordenador no transitorios. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación.
[0122] A modo de ejemplo, y no de limitación, dichos medios legibles por ordenador pueden comprender medios no transitorios como RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para transportar o almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe debidamente la denominación de medio legible por ordenador. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray, de los cuales el disco flexible habitualmente reproduce los datos magnéticamente, mientras que los demás discos reproducen los datos ópticamente con láseres. Las combinaciones de lo anterior también deberían incluirse dentro del alcance de los medios legibles por ordenador.
[0123] El código puede ser ejecutado por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la de aplicación (ASIC), matrices lógicas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término «procesador», como se usa en el presente documento, puede referirse a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de módulos de hardware y/o software dedicados, configurados para la codificación y la descodificación, o incorporados en un códec combinado. Asimismo, las técnicas podrían implementarse por completo en uno o más circuitos o elementos lógicos.
[0124] Las técnicas de esta divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, que incluyen un teléfono inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse por medio de un grupo de unidades de hardware interoperativas, incluyendo uno o más procesadores, como se ha descrito anteriormente, conjuntamente con software y/o firmware adecuados.
[0125] Se han descrito diversos modos de realización de la invención. Estos y otros modos de realización están dentro del alcance de las siguientes reivindicaciones.

Claims (10)

REIVINDICACIONES
1. Un procedimiento (200) que comprende:
almacenar (202), en un dispositivo de origen (20), una pluralidad de formatos de informe preconfigurados (28), en el que cada uno de los formatos de informe preconfigurados (28) está asociado con un tipo diferente de dispositivo de entrada humana (70), HID;
recibir (204), en el dispositivo de origen (20), uno o más paquetes de Protocolo de Internet, IP, de un dispositivo colector (60), con el uno o más paquetes de IP que comprenden un informe de entrada de comando HID, HIDC;
identificar (206), basándose en los datos en los uno o más paquetes IP, uno de los formatos de informe preconfigurados (28);
analizar (208) el informe de entrada HIDC basándose en el formato de informe preconfigurado identificado (28) para determinar una entrada de usuario;
generar (210) datos multimedia en respuesta a la entrada de usuario; y
enviar (212) los datos multimedia desde el dispositivo de origen (20) al dispositivo colector (60);
en el que almacenar (202) la pluralidad de formatos de informe preconfigurados (28) comprende almacenar la pluralidad de formatos de informe preconfigurados antes de establecer un canal de retorno de entrada de usuario, UIBC, y
en el que los uno o más paquetes IP comprenden un mensaje de UIBC enviado a través de UIBC, con el mensaje de UIBC que comprende el informe de entrada HIDC.
2. El procedimiento (200) según la reivindicación 1, en el que los formatos de informe preconfigurados (28) incluyen esquemas.
3. El procedimiento (200) según la reivindicación 1, en el que recibir (204) los uno o más paquetes de IP comprende recibir los uno o más paquetes de IP a través de una red de comunicación inalámbrica.
4. El procedimiento (200) según la reivindicación 1, en el que el informe de entrada HIDC se ajusta a un estándar de bus serie universal, USB, o un estándar de Bluetooth.
5. El procedimiento (200) según la reivindicación 1, en el que los datos comprenden un identificador numérico que identifica uno de los formatos de informe preconfigurados (28).
6. El procedimiento (200) según la reivindicación 5, en el que los uno o más paquetes de IP comprenden un mensaje que incluye un campo que especifica el identificador numérico y un campo que contiene el informe de entrada HIDC.
7. El procedimiento (200) según la reivindicación 1,
en el que los datos comprenden una dirección IP del dispositivo colector (60), y
en el que la identificación (206) de uno de los formatos de informe preconfigurados (28) comprende la identificación, basándose al menos en parte en la dirección IP del dispositivo colector (60), de uno de los formatos de informe preconfigurados (28).
8. El procedimiento (200) según la reivindicación 7,
en el que los datos comprenden la dirección IP y un puerto de origen, y
en el que la identificación (206) de uno de los formatos de informe preconfigurados (28) comprende la identificación, basándose al menos en parte en la dirección IP del dispositivo colector (60) y el puerto de origen, de uno de los formatos de informe preconfigurados (28).
9. El procedimiento (200), según la reivindicación 1, que comprende además:
en respuesta a la recepción (204) de uno o más paquetes de IP del dispositivo colector (60), determinar si el uno o más paquetes de IP comprenden un mensaje de entrada genérico o el informe de entrada HIDC, en el que el mensaje de entrada genérico es genérico para HID (70) perteneciente a una clase de HIDs.
10. El procedimiento (200) según la reivindicación 1, en el que el dispositivo colector (60) es un colector de pantalla inalámbrica, WD, y el dispositivo de origen es una fuente de pantalla inalámbrica, WD.
Un dispositivo informático (20) que comprende:
medios para almacenar una pluralidad de formatos de informes preconfigurados (28), en el que cada uno de los formatos de informes preconfigurados (28) está asociado con un tipo diferente de dispositivo de entrada humana (70), HID;
medios para recibir uno o más protocolos de Internet, IP, paquetes de un dispositivo colector (60), con el uno o más paquetes de IP que comprenden un informe de entrada de comando HID, HIDC;
medios para identificar, basándose en los datos en los uno o más paquetes IP, uno de los formatos de informe preconfigurados (28);
medios para analizar el informe de entrada HIDC basado en el formato de informe preconfigurado identificado (28) para determinar una entrada de usuario;
medios para generar datos multimedia en respuesta a la entrada de usuario; y
medios para enviar los datos multimedia desde el dispositivo informático (20) al dispositivo colector (60); en el que almacenar la pluralidad de formatos de informe preconfigurados (28) comprende almacenar la pluralidad de formatos de informe preconfigurados antes de establecer un canal de retorno de entrada de usuario, UIBC, y
en el que el uno o más paquetes IP comprenden un mensaje de UIBC enviado a través de UIBC, el mensaje de UIBC que comprende el informe de entrada HIDC.
Un producto de programa informático que comprende uno o más medios de almacenamiento legibles por ordenador que almacenan instrucciones que, cuando se ejecutan, configuran uno o más procesadores de un dispositivo informático para realizar un procedimiento de acuerdo con una de las reivindicaciones 1 a 10.
ES12768981T 2011-09-19 2012-09-19 Envío de comandos de dispositivos de entrada humanos a través de Protocolo de Internet Active ES2702782T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161536393P 2011-09-19 2011-09-19
US201261583254P 2012-01-05 2012-01-05
US13/612,210 US9106651B2 (en) 2011-09-19 2012-09-12 Sending human input device commands over internet protocol
PCT/US2012/056087 WO2013043702A1 (en) 2011-09-19 2012-09-19 Sending human input device commands over internet protocol

Publications (1)

Publication Number Publication Date
ES2702782T3 true ES2702782T3 (es) 2019-03-05

Family

ID=46970438

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12768981T Active ES2702782T3 (es) 2011-09-19 2012-09-19 Envío de comandos de dispositivos de entrada humanos a través de Protocolo de Internet

Country Status (8)

Country Link
US (1) US9106651B2 (es)
EP (1) EP2759112B1 (es)
JP (1) JP5908592B2 (es)
KR (1) KR101541851B1 (es)
CN (1) CN103814561B (es)
ES (1) ES2702782T3 (es)
HU (1) HUE041390T2 (es)
WO (1) WO2013043702A1 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621473B2 (en) 2004-08-18 2017-04-11 Open Text Sa Ulc Method and system for sending data
GB2417391B (en) 2004-08-18 2007-04-18 Wecomm Ltd Transmitting data over a network
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US9264248B2 (en) 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
US9413803B2 (en) * 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US20130013318A1 (en) 2011-01-21 2013-01-10 Qualcomm Incorporated User input back channel for wireless displays
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9386127B2 (en) 2011-09-28 2016-07-05 Open Text S.A. System and method for data transfer, including protocols for use in data transfer
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
US8966131B2 (en) * 2012-01-06 2015-02-24 Qualcomm Incorporated System method for bi-directional tunneling via user input back channel (UIBC) for wireless displays
US9270692B2 (en) * 2012-11-06 2016-02-23 Mediatek Inc. Method and apparatus for setting secure connection in wireless communications system
US9197680B2 (en) * 2013-05-23 2015-11-24 Qualcomm Incorporated Establishing and controlling audio and voice back channels of a Wi-Fi display connection
US9602191B2 (en) * 2014-06-27 2017-03-21 X Development Llc Streaming display data from a mobile device using backscatter communications
WO2016005989A1 (en) * 2014-07-10 2016-01-14 Leonid Remennik Method and apparatus for wireless operation of mobile computing device
KR102244824B1 (ko) 2014-08-28 2021-04-27 삼성전자주식회사 전자 장치 및 전자 장치에서 ip 네트워크 서비스 방법
WO2016048065A1 (ko) * 2014-09-24 2016-03-31 엘지전자 주식회사 무선 통신 시스템에서 wfd 소스가 듀얼 스크린에 관한 신호를 송수신 방법 및 장치
KR102332752B1 (ko) * 2014-11-24 2021-11-30 삼성전자주식회사 지도 서비스를 제공하는 전자 장치 및 방법
JP2016110470A (ja) * 2014-12-09 2016-06-20 株式会社Will Smart 電子機器の連携システム
US20160308917A1 (en) * 2015-04-20 2016-10-20 Intel Corporation Sensor input transmission and associated processes
WO2017123215A1 (en) 2016-01-13 2017-07-20 Hewlett-Packard Development Company, L.P. Executing multiple pen inputs
CN108984265B (zh) * 2018-05-24 2020-12-15 深圳市腾讯网络信息技术有限公司 检测虚拟机环境的方法及装置
CN109086088A (zh) * 2018-08-15 2018-12-25 南昌华勤电子科技有限公司 一种实现多输入设备协同工作的设置方法及装置
GB2582927A (en) * 2019-04-08 2020-10-14 Sony Corp A device, computer program and method
CN110704340B (zh) * 2019-09-26 2022-02-11 支付宝(杭州)信息技术有限公司 数据传输设备、系统和方法
CN111569417A (zh) * 2020-04-30 2020-08-25 北京视博云信息技术有限公司 一种云游戏的外设数据传输方法及系统
CN115396520A (zh) * 2021-05-19 2022-11-25 华为技术有限公司 控制方法、装置、电子设备及可读存储介质
US11703991B2 (en) * 2021-12-06 2023-07-18 Lg Electronics Inc. Display device with mouse control and operating method thereof
TWI796059B (zh) * 2021-12-23 2023-03-11 致伸科技股份有限公司 一種動態調整資料傳輸格式之方法與運用該方法之無線周邊裝置

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311228B1 (en) * 1997-08-06 2001-10-30 Microsoft Corporation Method and architecture for simplified communications with HID devices
US6225984B1 (en) * 1998-05-01 2001-05-01 Hitachi Micro Systems, Inc. Remote computer interface
US7831930B2 (en) * 2001-11-20 2010-11-09 Universal Electronics Inc. System and method for displaying a user interface for a remote control application
US6263392B1 (en) * 1999-01-04 2001-07-17 Mccauley Jack J. Method and apparatus for interfacing multiple peripheral devices to a host computer
US20030174125A1 (en) * 1999-11-04 2003-09-18 Ilhami Torunoglu Multiple input modes in overlapping physical space
US6615299B1 (en) * 2000-01-31 2003-09-02 Intel Corporation Dynamically translating commands from an input device into commands understandable by an application
US6993575B2 (en) * 2000-02-22 2006-01-31 Oracle International Corporation Using one device to configure and emulate web site content to be displayed on another device
US6687774B2 (en) * 2000-12-19 2004-02-03 Semtech New York Corporation Wireless host with improved roustness and boot capabilities
US7127524B1 (en) * 2000-12-29 2006-10-24 Vernier Networks, Inc. System and method for providing access to a network with selective network address translation
US20020111999A1 (en) * 2001-02-13 2002-08-15 Andersson Anders Jorgen Mikael System and method for remote control of software and an attached device
US6836796B2 (en) * 2001-03-16 2004-12-28 Digi International, Inc. System and method to manage network-enabled embedded devices operating under various protocols
US7299304B2 (en) * 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
DE10229068B3 (de) * 2002-06-28 2004-02-05 Fujitsu Siemens Computers Gmbh PDA (Personal Digital Assistant) mit Touch-Screen Display
JP2004213430A (ja) * 2003-01-06 2004-07-29 Sankyo Seiki Mfg Co Ltd Hid仕様のusb通信方法およびhid仕様のusb通信回線を有するコンピュータ・システム
US20050013103A1 (en) * 2003-07-17 2005-01-20 Adrian Chandley Multipurpose docking apparatus for a mobile computer
US7417626B2 (en) * 2003-09-16 2008-08-26 Microsoft Corporation Method for processing data quantifying force applied to one or more keys of a computer keyboard
US7671758B1 (en) * 2003-10-02 2010-03-02 Tivo Inc. Remote control programming system
US8073931B2 (en) * 2005-03-16 2011-12-06 Icontrol Networks, Inc. Networked touchscreen with integrated interfaces
JP4326383B2 (ja) 2004-03-25 2009-09-02 富士通コンポーネント株式会社 キーボード
US20050246470A1 (en) * 2004-04-28 2005-11-03 Brenner David G Wireless docking station
US20060021021A1 (en) * 2004-06-08 2006-01-26 Rajesh Patel Security event data normalization
US20060129700A1 (en) * 2004-12-09 2006-06-15 Bopardikar Rajendra A Bridging a local bus with a data network
US20060131415A1 (en) * 2004-12-20 2006-06-22 Irons Darren S Device controller for an emulator
KR101257964B1 (ko) * 2005-03-04 2013-04-30 애플 인크. 다기능 휴대용 장치
US20060290326A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Protocols for reporting power status over multiple buses
US20070283389A1 (en) * 2006-06-01 2007-12-06 Sharp Laboratories Of America, Inc. Method and system for helping operate a media-playing set
CN100382065C (zh) * 2006-03-31 2008-04-16 北京飞天诚信科技有限公司 基于usb接口的智能卡读写器及其控制方法
US20100064005A1 (en) * 2006-06-16 2010-03-11 Toshiyuki Amaya Content acquisition processing device, content distribution system, content acquisition processing method, and its program
US8656431B2 (en) * 2006-07-10 2014-02-18 Mark A. Cavicchia Global interactive program guide application and device
US20080120448A1 (en) * 2006-11-21 2008-05-22 Microsoft Corporation Remote mouse and keyboard using bluetooth
WO2008091869A2 (en) * 2007-01-22 2008-07-31 Bell Helicopter Textron, Inc. System and method for the interactive display of data in a motion capture environment
US20080183839A1 (en) * 2007-01-26 2008-07-31 Shuqair Michel A D System For Computer To Mobile Device Place Shifting
US7872637B2 (en) * 2007-04-25 2011-01-18 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. System and method for tracking a laser spot on a projected computer screen image
US20080274695A1 (en) * 2007-05-02 2008-11-06 Broadcom Corporation Bluetooth-enabled system and related method
US20080278446A1 (en) * 2007-05-07 2008-11-13 Schifter Ilan Multi-sensor user input device for interactive programs on a machine
JP4987586B2 (ja) * 2007-06-22 2012-07-25 株式会社東芝 情報処理装置および制御方法
US8238958B2 (en) * 2008-04-11 2012-08-07 Wi-Lan Inc. Method, apparatus, and system for uplink modulation and coding scheme selection
CA2721174C (en) * 2008-04-17 2017-03-14 Microsystemes Dog Inc. Method and system for virtually delivering software applications to remote clients
US8150387B2 (en) * 2008-06-02 2012-04-03 At&T Intellectual Property I, L.P. Smart phone as remote control device
US8200795B2 (en) * 2008-06-05 2012-06-12 Sony Computer Entertainment Inc. Mobile phone game interface
US20100070925A1 (en) * 2008-09-08 2010-03-18 Sling Media Inc. Systems and methods for selecting media content obtained from multple sources
US20100083338A1 (en) * 2008-10-01 2010-04-01 I-Jen Chiang Remote control device and remote control system
US9800837B2 (en) * 2008-12-31 2017-10-24 Echostar Technologies L.L.C. Virtual control device
US7870496B1 (en) * 2009-01-29 2011-01-11 Jahanzeb Ahmed Sherwani System using touchscreen user interface of a mobile device to remotely control a host computer
US8742885B2 (en) * 2009-05-01 2014-06-03 Apple Inc. Directional touch remote
US8451862B2 (en) * 2009-07-15 2013-05-28 Qualcomm Incorporated Systems and methods for resource allocation serving communication requirements and fairness
US8225212B2 (en) * 2009-08-20 2012-07-17 Sling Media Pvt. Ltd. Method for providing remote control device descriptions from a communication node
US8644354B2 (en) * 2009-10-14 2014-02-04 Verizon Patent And Licensing Inc. Methods and systems for automatically registering a mobile phone device with one or more media content access devices
US8634390B2 (en) * 2009-10-14 2014-01-21 Verizon Patent And Licensing Inc. Systems and methods for wireless local area network based control of a set-top box device
KR101732057B1 (ko) * 2009-11-02 2017-05-02 삼성전자주식회사 Av 시스템에서 사용자 입력 백 채널을 제공하는 방법 및 기기
KR101767262B1 (ko) * 2009-11-09 2017-08-11 삼성전자주식회사 UPnP를 이용한 입력 시스템에서 입력 방식을 변경하기 위한 방법 및 장치
US8285814B2 (en) * 2009-12-04 2012-10-09 Sling Media, Inc. Generation of data concerning reception of media content at a communication device
US8621369B2 (en) * 2009-12-24 2013-12-31 Verizon Patent And Licensing Inc. Intercom and chat for home media network
US9332582B2 (en) * 2010-04-30 2016-05-03 Qualcomm Incorporated System, apparatus and method for coordinating peer communication in wireless systems
US9686673B2 (en) * 2010-05-18 2017-06-20 Electric Mirror, Llc Apparatuses and methods for streaming audio and video
US8612518B2 (en) * 2010-11-16 2013-12-17 Maples Corporate Services Limited Dual screen PC
US9075523B2 (en) * 2010-12-17 2015-07-07 Verizon Patent And Licensing Inc. Remote control emulation methods and systems
BR112013017931A2 (pt) * 2011-01-14 2018-09-18 Samsung Electronics Co Ltd método de realizar comunicação entre um dispositivo coletor e um dispositivo de origem, em uma rede direta de wi-fi, método de realizar comunicação entre um dispositivo de origem e um dispositivo coletor em uma rede direta de wi-fi, dispositivo de comunicação para realizar comunicação em uma rede direta de wi-fi, e mídia de gravação legível por computador
KR101742578B1 (ko) * 2011-01-14 2017-06-01 삼성전자주식회사 컨텐츠 관리 방법 및 이를 적용한 디스플레이 장치
US8964783B2 (en) * 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) * 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US10135900B2 (en) * 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) * 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9413803B2 (en) * 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US20130003624A1 (en) * 2011-01-21 2013-01-03 Qualcomm Incorporated User input back channel for wireless displays
US8677029B2 (en) * 2011-01-21 2014-03-18 Qualcomm Incorporated User input back channel for wireless displays
US20130013318A1 (en) * 2011-01-21 2013-01-10 Qualcomm Incorporated User input back channel for wireless displays
US8674957B2 (en) * 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
US10108386B2 (en) * 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US8887222B2 (en) * 2011-09-14 2014-11-11 Qualcomm Incorporated Multicasting in a wireless display system
US20130089006A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Minimal cognitive mode for wireless display devices
US20130195119A1 (en) * 2011-10-14 2013-08-01 Qualcomm Incorporated Feedback channel for wireless display devices
US9942379B2 (en) * 2011-12-06 2018-04-10 Qualcomm Incorporated Wireless docking
US8914187B2 (en) * 2012-01-06 2014-12-16 Qualcomm Incorporated Vehicle dashboard wireless display system
US8966131B2 (en) * 2012-01-06 2015-02-24 Qualcomm Incorporated System method for bi-directional tunneling via user input back channel (UIBC) for wireless displays
US8832328B2 (en) * 2012-03-13 2014-09-09 Qualcomm Incorporated Data redirection for universal serial bus devices
US9749038B2 (en) * 2012-05-21 2017-08-29 Qualcomm Incorporated System and method for wireless docking utilizing a wireless docking profile
US20130311694A1 (en) * 2012-05-21 2013-11-21 Qualcomm Incorporated Devices and methods for facilitating direct pairing in a wireless docking system
US9094807B2 (en) * 2012-05-23 2015-07-28 Qualcomm Incorporated Methods and apparatus for providing an incentivized cooperative system for accessing radio access networks
US9538313B2 (en) * 2012-08-23 2017-01-03 Intel Corporation Apparatus, system and method of docking a mobile device with wireless connector

Also Published As

Publication number Publication date
CN103814561B (zh) 2017-03-01
CN103814561A (zh) 2014-05-21
EP2759112B1 (en) 2018-10-24
HUE041390T2 (hu) 2019-05-28
JP5908592B2 (ja) 2016-04-26
EP2759112A1 (en) 2014-07-30
US20130246565A1 (en) 2013-09-19
KR101541851B1 (ko) 2015-08-04
US9106651B2 (en) 2015-08-11
JP2014532218A (ja) 2014-12-04
WO2013043702A1 (en) 2013-03-28
KR20140063865A (ko) 2014-05-27

Similar Documents

Publication Publication Date Title
ES2702782T3 (es) Envío de comandos de dispositivos de entrada humanos a través de Protocolo de Internet
ES2822588T3 (es) Canal posterior de entrada de usuario para pantallas inalámbricas
KR101495464B1 (ko) 무선 백 채널을 위한 사용자 입력 디바이스
US9413803B2 (en) User input back channel for wireless displays
ES2727625T3 (es) Canal posterior de entrada de usuario para pantallas inalámbricas
US9065876B2 (en) User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
CN111459433B (zh) 一种传屏方法、设备及存储介质
JP5815741B2 (ja) ワイヤレスシンクとワイヤレスソースデバイスとの間で機能をネゴシエートすること
US10135900B2 (en) User input back channel for wireless displays
KR20180075442A (ko) 와이파이 다이렉트 통신 방식에서의 싱크 디바이스에서 소스 디바이스로 사용자의 입력을 송신하기 위한 방법 및 장치
US20130003624A1 (en) User input back channel for wireless displays
EP2949101A1 (en) Connectionless transport for user input control for wireless display devices
SG191763A1 (en) User input back channel for wireless displays