CN103814561A - 通过互联网协议发送人工输入设备命令 - Google Patents

通过互联网协议发送人工输入设备命令 Download PDF

Info

Publication number
CN103814561A
CN103814561A CN201280045535.XA CN201280045535A CN103814561A CN 103814561 A CN103814561 A CN 103814561A CN 201280045535 A CN201280045535 A CN 201280045535A CN 103814561 A CN103814561 A CN 103814561A
Authority
CN
China
Prior art keywords
input
hid
hidc
message
report
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.)
Granted
Application number
CN201280045535.XA
Other languages
English (en)
Other versions
CN103814561B (zh
Inventor
J·S·弗勒利歇尔
X·黄
V·R·拉韦恩德朗
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
Publication of CN103814561A publication Critical patent/CN103814561A/zh
Application granted granted Critical
Publication of CN103814561B publication Critical patent/CN103814561B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

无线显示(WD)系统中的源设备存储多个预先配置的格式。预先配置的格式中的每一个是与不同类型的人工输入设备(HID)相关联的。源设备从WD系统中的宿设备接收一个或多个互联网协议(IP)分组。所述一个或多个IP分组包括HID命令(HIDC)输入报告。源设备基于在所述一个或多个IP分组中的数据来识别预先配置的格式中的一个,并且基于所识别的预先配置的格式来解析HIDC输入报告以便确定用户输入。源设备随后响应于用户输入,生成媒体数据,并且向宿设备发送媒体数据。

Description

通过互联网协议发送人工输入设备命令
本申请要求享有于2011年9月19日递交的美国临时专利申请No.61/536,393和于2012年1月5日递交的美国临时专利申请No.61/583,254的权益,故以引用方式将这两个美国临时专利申请的全部内容并入本文。
技术领域
本申请涉及媒体数据的传输和回放。
背景技术
无线显示(WD)系统包括源设备和一个或多个宿设备。源设备也可以被称为“应用服务器”。源设备可以是能够在无线局域网内发送媒体内容的设备。宿设备可以是能够接收并且呈现媒体内容的设备。宿设备也可以被称为“显示客户端”。源设备和宿设备可以是移动设备或有线设备。作为无线设备,例如,源设备和宿设备可以包括:移动电话、平板计算机、膝上型或其它便携式计算机、具有无线通信卡的便携式计算机、个人数字助理(PDA)、便携式媒体播放器、数字图像捕获设备(例如照相机或摄像机)、或具有无线通信能力的其它设备(包括所谓的“智能”电话和智能板或平板电脑、或者其它类型的无线通信设备)。作为有线设备,例如,源设备和宿设备可以包括:电视机、台式计算机、监视器、投影仪、打印机、音频放大器、机顶盒、游戏控制台、路由器、数字视频光盘(DVD)播放器和媒体服务器。
源设备可以向参与特定媒体共享会话的一个或多个宿设备发送诸如音频视频(AV)数据之类的媒体数据。既可在源设备的本地显示器处也可在每个宿设备的显示器处回放该媒体内容。更具体地说,每个参与的宿设备可以呈现所接收的媒体数据以便展示在其屏幕和音频装置上。在某些情况下,宿设备的用户可以向宿设备施加用户输入,例如触摸式输入和远程控制输入。
发明内容
在一个例子中,无线显示(WD)系统中的源设备存储了多个预先配置的报告格式。所述预先配置的报告格式中的每一个是与不同类型的人工输入设备(HID)相关联的。所述源设备可以从WD系统中的宿设备接收一个或多个互联网协议(IP)分组。所述一个或多个IP分组可以包括HID命令(HIDC)输入报告。所述源设备可以基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个,并且可以基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入。所述源设备可以随后响应于所述用户输入,生成媒体数据,并且可以向所述宿设备发送所述媒体数据。
在一个例子中,本申请描述了一种方法,所述方法包括:在源设备处存储多个预先配置的报告格式。所述预先配置的报告格式中的每一个是与不同类型的HID相关联的。此外,所述方法包括:在所述源设备处从宿设备接收一个或多个IP分组。所述一个或多个IP分组包括HIDC输入报告。所述方法还包括:基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个。此外,所述方法包括:基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入。此外,所述方法包括:响应于所述用户输入,生成媒体数据。所述方法还包括:从所述源设备向所述宿设备发送所述媒体数据。
在另一个例子中,本申请描述了一种方法,所述方法包括:从HID接收用户输入的指示。所述方法还包括:基于所述用户输入来生成符合报告格式的HIDC输入报告。此外,所述方法包括:向源设备发送一个或多个IP分组。所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式。此外,所述方法包括:从所述源设备接收媒体数据,所述媒体数据是基于所述用户输入。
在另一个例子中,本申请描述了一种计算设备,所述计算设备包括一个或多个处理器,所述一个或多个处理器被配置为存储多个预先配置的报告格式。所述预先配置的报告格式中的每一个是与不同类型的HID相关联的。所述一个或多个处理器还被配置为从宿设备接收一个或多个IP分组。所述一个或多个IP分组包括HIDC输入报告。此外,所述一个或多个处理器被配置为基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个。所述一个或多个处理器还被配置为基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入。此外,所述一个或多个处理器被配置为响应于所述用户输入,生成媒体数据。所述一个或多个处理器还被配置为从所述计算设备向所述宿设备发送所述媒体数据。
在另一个例子中,本申请描述一种计算设备,所述计算设备包括一个或多个处理器,所述一个或多个处理器被配置为从HID接收用户输入的指示。所述一个或多个处理器还被配置为基于所述用户输入来生成符合报告格式的HIDC输入报告。此外,所述一个或多个处理器被配置为向源设备发送一个或多个IP分组。所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式。此外,所述一个或多个处理器被配置为从所述源设备接收媒体数据,所述媒体数据是基于所述用户输入。
在另一个例子中,本申请描述了一种计算设备,所述计算设备包括用于存储多个预先配置的报告格式的模块。所述预先配置的报告格式中的每一个是与不同类型的HID相关联的。此外,所述计算设备包括用于从宿设备接收一个或多个IP分组的模块。所述一个或多个IP分组包括HIDC输入报告。此外,所述计算设备包括用于基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个的模块。所述计算设备还包括用于基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入的模块。此外,所述计算设备包括用于响应于所述用户输入,生成媒体数据的模块。所述计算设备还包括用于从所述计算设备向所述宿设备发送所述媒体数据的模块。
在另一个例子中,本申请描述了一种计算设备,所述计算设备包括用于从HID接收用户输入的指示的模块。所述计算设备还包括用于基于所述用户输入来生成符合报告格式的HIDC输入报告的模块。此外,所述计算设备包括用于向源设备发送一个或多个IP分组的模块。所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式。此外,所述计算设备包括用于从所述源设备接收媒体数据的模块,所述媒体数据是基于所述用户输入。
在另一个例子中,本申请了描述了一种计算机程序产品,所述计算机程序产品包括存储指令的一个或多个计算机可读存储介质,所述指令在被执行时将计算设备的一个或多个处理器配置为:在所述计算设备处存储多个预先配置的报告格式。所述预先配置的报告格式中的每一个是与不同类型的HID相关联的。所述指令还将所述一个或多个处理器配置为从宿设备接收一个或多个IP分组。所述一个或多个IP分组包括HIDC输入报告。此外,所述指令将所述一个或多个处理器配置为基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个。此外,所述指令将所述一个或多个处理器配置为基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入。所述指令还将所述一个或多个处理器配置为响应于所述用户输入来生成媒体数据。此外,所述指令将所述一个或多个处理器配置为从所述源设备向所述宿设备发送所述媒体数据。
在另一个例子中,本申请了描述了一种计算机程序产品,所述计算机程序产品包括存储指令的一个或多个计算机可读存储介质,所述指令在被执行时将计算设备的一个或多个处理器配置为从HID接收用户输入的指示。此外,所述指令将所述一个或多个处理器配置为基于所述用户输入来生成符合报告格式的HIDC输入报告。此外,所述指令将所述一个或多个处理器配置为向源设备发送一个或多个IP分组。所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式。所述指令还将所述一个或多个处理器配置为从所述源设备接收媒体数据,所述媒体数据是基于所述用户输入。
在附图和下面的描述中阐述本申请的一个或多个例子的细节。通过说明书、附图和权利要求书,其它的特征、目的和优点将变得显而易见。
附图说明
图1是示出了包括源设备和宿设备的无线通信系统的框图。
图2是示出了根据本申请的一个或多个技术的、由源设备执行的示例性操作的流程图。
图3是示出了根据本申请的一个或多个技术的、由宿设备执行的示例性操作的流程图。
图4是示出了根据本申请的一个或多个技术的、由宿设备执行的另一个示例性操作的流程图。
图5是示出了根据本申请的一个或多个技术的、由源设备执行的另一个示例性操作的流程图。
图6是示出了UIBC消息的示例性格式的概念图。
图7是示出了在源设备与宿设备之间为协商用于通用输入消息的用户输入反向信道(UIBC)而进行的示例性交互的通信图。
图8是示出了在源设备与宿设备之间为协商用于人工输入设备命令(HIDC)输入报告的UIBC而进行的示例性交互的通信图。
具体实施方式
概括地说,本申请描述了用于处理无线显示(WD)系统中的用户输入的技术。WD系统包括至少两个计算设备。计算设备中的一个充当媒体源,而计算设备中的另一个充当媒体宿。充当媒体源的计算设备(即,源设备)可以在无线信道上向充当媒体宿的计算设备(即,宿设备)发送编码的媒体数据。宿设备可以对编码的视频数据进行解码并且在显示屏上显示已解码的视频数据。
此外,在WD系统中,宿设备可以从诸如鼠标、数码笔或手写笔、键盘和触摸屏之类的人工输入设备(HID)接收用户输入。宿设备可以向源设备发送输入消息。输入消息描述了由宿设备接收的用户输入。一旦接收到输入消息,源设备就可以响应于用户输入,处理输入消息所描述的用户输入并且生成媒体数据。源设备可以随后向宿设备发送该媒体数据。
宿设备可以生成并且发送各种类型的输入消息。例如,在源设备与宿设备之间的会话的建立期间,宿设备可以向源设备指示连接到宿设备的一个或多个HID。在会话的建立之后,宿设备可以生成并且发送通用输入消息,所述通用输入消息描述了来自各种类别的HID的用户输入。当宿设备从特定的HID接收用户输入的指示,宿设备可以确定该特定的HID属于特定类别的HID。不同类别的HID可以与不同的报告格式相关联。HID的类别可以由标准(例如Wi-Fi显示(WFD)标准)定义。与一类别的HID相关联的报告格式可以规定针对通用输入消息的格式,该格式描述了由在该类别的HID中的HID接收的用户输入。在宿设备确定了该特定的HID属于特定类别的HID之后,宿设备可以生成符合与该特定类别的HID相关联的报告格式的通用输入消息。以这一方式,通用输入消息的报告格式可以对于属于该特定类别的HID的任何HID而言是通用的。可以对源设备进行预先配置以解读通用输入消息。
除了生成并且发送通用输入消息之外,宿设备可以生成并且发送人工输入设备命令(HIDC)输入报告。当宿设备接收由特定HID检测到的用户输入的指示时,在宿设备上运行的驱动可以生成HIDC输入报告,所述HIDC输入报告描述了该用户输入。HIDC输入报告的报告格式可以是专用于特定HID的,而不必通用于该特定HID所属的类别的HID。例如,针对描述了由两种不同类型的鼠标检测到的用户输入的HIDC输入报告,可以存在不同的报告格式。HIDC输入报告的报告格式可以符合各种HIDC标准,例如通用串行总线(USB)或蓝牙标准。
生成并且发送HIDC输入报告可以在生成并且发送通用输入消息上具有某些优点。例如,在特定类别的HID内的特定HID也许能够接收无法使用与该特定类别的HID相关联的通用报告格式来描述的用户输入。在该例子中,HIDC输入报告也许能够描述这种用户输入。此外,与HIDC输入报告相比,宿设备生成通用输入消息以及源设备解析通用输入消息会更为复杂。以这一方式,HIDC输入报告的使用可以有助于源设备和宿设备交流处理资源和电能。
根据本申请的技术,源设备可以存储多个预先配置的报告格式。预先配置的报告格式中的每一个是与不同类型的人工输入设备(HID)相关联的。源设备可以从宿设备接收一个或多个互联网协议(IP)分组。所述一个或多个IP分组可以包括HIDC输入报告,例如符合USB或符合蓝牙的输入报告。此外,在一些例子中,源设备可以通过无线通信网络接收一个或多个IP分组。源设备可以基于在一个或多个IP分组中的数据来标识预先配置的报告格式中的一个。源设备可以基于所标识的预先配置的报告格式来解析HIDC输入报告以便确定用户输入。源设备可以随后响应于用户输入而生成媒体数据,并且从源设备向宿设备发送媒体数据。
图1是示出了在其中可以实现本申请的一个或多个技术的无线显示(WD)系统10的例子的框图。提供了图1和后续的图是为了说明的目的,并且这些附图不应当被认为是对如在本申请中广泛示例和描述的技术的限制。
在图1的例子中,WD系统10可以包括源设备20和宿设备60。源设备20可以经由无线信道50与宿设备60进行通信。在图1的例子中,源设备20包括至少一个应用22、操作系统(OS)24、发射机/接收机(TX/RX)单元26、多个报告格式28、WD会话管理器30和用户输入反向信道(UIBC)模块32。源设备20的OS24可以包括IP栈34。宿设备60可以包括发射机/接收机(TX/RX)单元62、媒体解码器64、至少一个输出设备66、WD会话管理器68、至少一个人工输入设备(HID)70、至少一个HID驱动72、UIBC模块74和操作系统(OS)76。OS76可以包括IP栈78。所示出的组件仅构成WD系统10的一个示例性配置。其它的配置可以包括比那些示出的组件更少的组件,或者除了那些示出的组件,还可以包括其它组件。例如,源设备20可以包括一个或多个输出设备,例如显示器和扬声器。
源设备20和宿设备60的组件可以以各种方式来实现。例如,源设备20和宿设备60中的一个或多个组件可以实现为一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任意组合。在软件中实现一个或多个方面的例子中,底层硬件(例如,具有可编程处理器的形式)可以执行软件。因此,源设备20和宿设备60中的每一个可以包括被配置为执行本申请的一个或多个技术的专用机器。
操作系统24可以管理源设备20的计算机硬件以及可以向运行在源设备20上的计算机程序提供公共服务。类似地,操作系统76可以管理宿设备60的计算机硬件以及可以向运行在宿设备60上的计算机程序提供公共服务。在一些例子中,OS24和/或OS76可以包括ANDROIDTM操作系统、WINDOWSTM操作系统、iOSTM操作系统或其它品牌的操作系统。
WD会话管理器30和WD会话管理器68可以包括分别运行在源设备20和宿设备60上的一个或多个计算机程序。WD会话管理器30和WD会话管理器68可以使用分别由OS24和OS76提供的服务,以便通过无线信道50建立WD会话。当WD会话管理器30和WD会话管理器68建立WD会话时,WD会话管理器30和WD会话管理器68可以使用例如实时流式传输协议(RTSP)控制消息来执行能力协商。在一个例子中,可以由WD会话管理器30向宿设备60发送针对建立WD会话的请求。一旦建立WD会话,源设备20就可以向宿设备60发送媒体数据(例如音频/视频(AV)数据)。源设备20可以例如使用实时传输协议(RTP)来向宿设备60发送媒体数据。宿设备60可以在其显示器和音频装备上呈现所接收的媒体数据。
UIBC模块32和UIBC模块74可以包括分别运行在源设备20和宿设备60上的计算机程序。UIBC模块32和UIBC模块74可以使用分别由OS24和OS76提供的服务,以从宿设备60向源设备20发送UIBC消息。UIBC消息可以包括通用输入消息和/或HIDC输入报告。
应用22可以包括运行在源设备20上的一个或多个计算机程序。应用22可以输出编码的媒体数据。该媒体数据可以包括音频数据和/或视频数据。在一些例子中,源设备20可以经由源设备20的相机和/或麦克风来实时捕获媒体数据。在其它的例子中,媒体数据可以是预先录制的媒体数据,例如电影、电视节目或音乐。在一些实例中,媒体数据可以包括图片,其可以是不同类型的内容的组合,例如具有覆盖在图片上的用户输入选项的电影或电视节目的图片。在一些例子中,应用22可以对已编码的媒体数据进行重新编码。换句话说,应用22可以对媒体数据进行转码。
应用22可以指示OS24向宿设备60发送编码的媒体数据。OS24可以使用TX/RX单元26以在无线信道50上向宿设备60发送编码的媒体数据。宿设备60的TX/RX单元62可以接收编码的媒体数据。媒体解码器64可以对编码的媒体数据进行解码,并且输出已解码的媒体数据以便呈现在输出设备66上。
应用22和媒体解码器64可以包括编码器/解码器(CODEC)单元,该CODEC单元实施各种音频和视频压缩标准,例如ITU-T H.264标准(或者被称为MPEG4第10部分)、高级视频编码(AVC)或新兴的高效视频编码(HEVC)标准。也可以使用许多其它类型的专用的或标准化的压缩技术。一般而言,媒体解码器64可以被配置为执行对应用22中所使用的媒体编码器的反向编码操作。虽然在图1中未示出,但在一些方面中,应用22和媒体解码器64可以各自与音频编码器和解码器相结合,并且可以包括适当的MUX-DEMUX单元或其它的硬件和软件,以便负责对公共数据流或单独数据流中的音频和视频两者进行编码。如果可以的话,则这些MUX-DEMUX单元可以符合ITU H.223复用器协议或诸如用户数据报协议(UDP)之类的其它协议。
输出设备66可以包括各种视频输出设备(例如阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器或其它类型的显示设备)中的任意一种。在这些或其它的例子中,输出设备66可以是发射式显示器或透射式显示器。输出设备66还可以包括触摸式显示器,使得输出设备66可以同时既是输入设备也是显示设备。这种触摸式显示器可以是电容型的、电阻型的或允许用户提供用户输入的其它类型的触摸式面板。或者,输出设备66可以包括各种音频输出设备中的任一种,例如头戴式耳机、单扬声器系统、多扬声器系统或环绕声系统。
虽然输出设备66被示出为宿设备60的一部分,但宿设备60可以是多个设备的系统。举一个例子,输出设备66可以是电视机,而宿设备60可以是有线地或无线地连接到输出设备66的外置盒。在其它的例子中,宿设备60可以是单个设备,例如平板计算机或智能电话。在其它的情况下,源设备20和宿设备60是类似的设备,例如,两者都是智能电话、平板计算机等等。在这种情况下,一个设备可以作为源进行操作,而另一个设备可以作为宿进行操作。在后续的通信会话中这些角色可以交换。在其它的情况下,源设备20可以包括移动设备(例如智能电话、膝上型或平板计算机),而宿设备60可以包括更稳定的设备(例如具有AC电源线),在该情况下源设备20可以经由宿设备60传送音频和视频数据,以呈现给一个或多个观众。
TX/RX单元32和TX/RX单元62可以各自包括各种混频器、滤波器、放大器和被设计为用于信号调制的其它组件、以及被设计用于发送并接收数据的一个或多个天线和其它组件。无线信道50可以表示用于在源设备20和宿设备60之间传输音频/视频数据、控制数据和反馈的任何适当的通信介质、或不同通信媒体的集合。无线信道50可以包括无线通信网络。无线信道50可以是相对短距离通信信道,并且可以实现与使用2.4GHz、3.6GHz、5GHz、60GHz或超宽带(UWB)频段结构来实现的Wi-Fi、蓝牙等物理信道结构。然而,无线信道50不一定限于该方面,而可以包括任何无线通信介质,例如任何射频(RF)频谱、或无线和有线介质的任意组合。在其它的例子中,无线信道50可以形成基于分组的网络(例如,有线或无线局域网、广域网或诸如互联网的全球网络)的一部分。此外,无线信道50可以由源设备20和宿设备60用来创建对等链路。
源设备20和宿设备60可以在无线信道50上使用通信协议(例如来自IEEE802.11标准族的标准)进行通信。在一个例子中,无线信道50可以是网络通信信道。在该例子中,通信服务供应商可以使用基站作为网络集线器来集中地操作和管理网络。源设备20和宿设备60可以例如根据Wi-Fi直接或Wi-Fi显示(WFD)标准来进行通信,使得源设备20和宿设备60在不使用诸如网络接入点或所谓的热点之类的中介的情况下直接地互相通信。在该上下文中的相对较短距离可以是指例如小于约70米,然而在吵闹或受遮挡的环境中,设备之间的距离可能甚至更短,例如,小于约35米或小于约20米。
虽然本申请的技术有时候可能是针对WFD来进行描述的,但可预期的是这些技术的方面还可以其它通信协议相兼容。通过举例而非限制性的方式,在源设备20与宿设备60之间的无线通信可以采用正交频分复用(ODFM)技术。还可以使用各种各样的其它无线通信技术,包括但不限于时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)、或者OFDM、FDMA、TDMA和/或CDMA的任意组合。
如在图1的例子中所示出的,宿设备60可以操作地耦合到至少一个HID70。示例性类型的HID可以包括但不限于键盘、鼠标、操纵杆、触摸屏、轨迹球、触摸敏感的表面、小键盘、按钮、视频游戏控制器、远程控制、数码笔或手写笔、手势响应输入设备或相机、以及用户可以用来向计算机提供用户输入的其它类型的设备。HID70可以与HID驱动72相关联。当人们使用HID70来提供用户输入时,HID驱动72可以从HID70接收信号并且可以生成输入报告。输入报告可以描述由HID70接收的输入。例如,如果HID70是鼠标,则输入报告可以指示鼠标向左移动了五个位置并且向上移动了十个位置。在一些例子中,由HID驱动72生成的输入报告符合USB或蓝牙标准。
当HID驱动72生成输入报告时,HID驱动72可以向宿设备60的OS76提供输入报告。响应于接收输入报告,OS76可以识别已与OS76注册的计算机程序以接收与HID70相关联的输入事件。OS76可以随后向所识别的计算机程序提供输入事件。输入事件可以是包括数据的数据对象(例如,面向对象的编程语言对象),所述数据描述了由HID70接收的用户输入。在一些例子中,输入事件可以包括OS76基于由HID驱动72产生的输入报告而产生的通用输入消息。在其它例子中,输入事件可以包括与由HID驱动72产生的输入报告相匹配的HIDC输入报告。
在非WD系统中,所识别的计算机程序可以处理输入事件,并且基于输入事件所描述的用户输入而在输出设备66处输出数据。然而,在WD系统10中,宿设备60可以不负责处理输入报告。更确切地说,源设备20可以负责处理输入报告。
因此,UIBC模块74可以向OS76注册以接收与HID70相关联的输入事件。当UIBC模块74从OS76接收输入事件时,UIBC模块74可以生成UIBC消息,该UIBC消息包含了基于输入事件的输入消息。UIBC模块74可以随后使用由OS76提供的一个或多个服务,以便通过无线信道50从宿设备60向源设备20发送UIBC消息。在一些例子中,OS76的IP栈78可以将UIBC消息打包成一个或多个IP分组以便经由无线信道50传输给源设备20。以这一方式,宿设备60可以从HID70接收用户输入的指示。响应于接收到用户输入的指示,HID驱动72可以基于用户输入来生成符合报告格式的输入报告。宿设备60可以通过无线信道50向源设备20发送IP分组。所述IP分组可以包含基于输入报告的输入消息。
当源设备20的TX/RX单元26接收了包含UIBC消息的一个或多个IP分组时,TX/RX单元26可以向源设备20的OS24提供所述一个或多个IP分组。OS24的IP栈34可以随后从所述一个或多个IP分组中提取UIBC消息。OS24可以随后识别(例如基于由所述一个或多个IP分组规定的端口号)运行在源设备20上的进程,所述进程已经注册以便接收UIBC消息。在图1的例子中,UIBC模块32已经注册以便接收UIBC消息。因此,OS24可以向UIBC模块32提供UIBC消息。
在接收UIBC消息后,UIBC模块32可以解析UIBC消息以确定UIBC消息的内容。如果UIBC消息包括输入消息,则UIBC模块32可以解析输入消息并且基于输入消息来生成输入事件。输入事件可以包括数据对象(例如,面向对象的编程语言对象),所述数据对象规定了基于输入消息的数据。当UIBC模块32生成输入事件时,OS24可以识别在源设备20上运行的一个或多个进程,所述一个或多个进程已经注册以便接收输入事件。OS24可以随后向所识别的进程提供输入事件。图1的例子假定应用22已经注册以便接收输入事件。
响应于接收输入事件,应用22可以至少部分基于由输入事件规定的输入消息所描述的用户输入来生成媒体数据。例如,如果用户输入指示了在特定的屏幕上控制的屏幕上位置处发生的点击事件,则应用22可以执行与屏幕上控制相关联的功能并且生成相应的媒体数据。应用22可以对媒体数据进行编码,并且随后指示OS24向宿设备60发送编码的媒体数据。在一些例子中,OS24的IP栈34可以将编码的媒体数据封装在一连串的一个或多个IP分组中,以便传输给宿设备60。以这一方式,宿设备60可以从源设备20接收媒体数据,其中所述媒体数据是基于用户输入。宿设备60可以随后呈现媒体数据以便在输出设备66处展示(例如,显示和/或音频回放)。
宿设备60可以在UIBC上向源设备20发送通用输入消息和HIDC命令(HIDC)输入报告。当HID驱动从HID接收用户输入的指示时,在宿设备60处的某些HID驱动可以向OS76提供输入报告。输入报告可以描述由HID接收的用户输入。在一些例子中,输入报告可以符合USB或蓝牙HID标准。响应于由OS76从HID驱动接收的某些输入报告,宿设备60的OS76可以生成通用输入消息。OS76可以随后向UIBC模块74提供输入事件,所述输入事件规定了通用输入消息。当UIBC模块74接收通用输入消息时,UIBC模块74可以生成包含通用输入消息的UIBC消息,并且可以对UIBC消息进行排队,以便传输给源设备20。
OS76可以生成通用输入消息,使得用于描述由在不同类别的HID中的HID接收到的用户输入的通用输入消息具有不同的报告格式,而用于描述从一类别的不同HID内的HID接收的用户输入的通用输入消息具有相同的报告格式。例如,OS76可以使用第一报告格式来生成用于描述由各种类型的鼠标接收的用户输入的通用输入消息。在该例子中,OS76可以使用第二报告格式来生成用于描述由各种类型的游戏控制器接收的用户输入的通用输入消息。
通过生成通用输入消息,OS76可以能够使与属于同一类别的不同HID的HID相关联的输入报告相一致。例如,OS76也许能够将各种类型的鼠标输入报告转换成对于大多数类型的鼠标而言通用的格式。例如,第一品牌的鼠标的驱动可以使用输入报告的第4个字节来指示滚轮是否向前或向后移动,而第二品牌的鼠标的驱动可以根本不使用输入报告的第4个字节。在该例子中,OS76可以将来自第一和第二品牌的鼠标的驱动的输入报告转换成通用输入消息,其中第4个字节指示了滚轮是否移动,其对于无滚轮的鼠标将始终为0。在该例子中,这可以足以使宿设备60向源设备20指示输入报告是来自鼠标,以便使源设备20能够解读这些通用输入消息。
然而,可能并不希望将WD系统10限制为仅使用普通类型的HID。更确切地说,可能希望允许源设备20和宿设备60能够支持各种各样的HID,甚至是属于相同的常规类别的HID的HID。例如,两个不同的视频游戏控制器可以具有不同的按钮数量。因此,在该例子中,可能无法使来自这两个视频游戏控制器的输入报告具有相同的格式。新HID也可能出现,并且可能希望具有灵活性以使源设备20和宿设备60支持新的或新兴的HID。
因此,在宿设备60处的某些HID驱动可以直接向UIBC模块74提供输入报告,或者OS76可以直接向UIBC模块74提供来自HID驱动的输入报告。该输入报告可以符合USB或蓝牙标准。响应于接收来自HID驱动的输入报告,UIBC模块74可以生成UIBC消息,所述UIBC消息包含了基于输入报告的输入消息。UIBC模块74可以随后对UIBC消息进行排队以便传输给源设备20。当UIBC模块74以这一方式生成UIBC消息时,在本申请中所述的UIBC消息将包含HIDC输入报告。以这一方式,宿设备60可以在IP分组上向源设备20发送输入报告作为USB或蓝牙HID输入报告。
例如,不同类型的HID可以提供不同类型的输入。因此,不同类型的HID的驱动可以生成不同类型的输入报告。此外,属于同一类别的HID的HID的不同驱动可以有所区别地生成格式化的输入报告。例如,第一品牌的操纵杆的驱动可以使用输入报告的第32个比特来指示是否按下主操纵杆按钮,而第二品牌的操纵杆的驱动可以使用输入报告的第16个比特来指示是否按下主操纵杆按钮。
宿设备60可以生成针对在各种输入路径上接收的用户输入的HIDC输入报告。在一些例子中,这些输入路径可以包括红外线、USB、蓝牙、Zigbee、Wi-Fi和厂商专用输入路径。在一些例子中,可以将HIDC输入报告限于鼠标和键盘输入。在其它的例子中,可以针对其它类型的HID(例如单触摸式触摸屏、多触摸式触摸屏、操纵杆、相机、手势检测系统、远程控制、红外线设备和/或厂商专用类型的HID),生成HIDC输入报告。在一些例子中,RTSP中可能没有规定HIDC输入报告。厂商专用类别的用户输入可以具有厂商专用HID格式。宿设备60和源设备20可以具有公共的厂商专用用户输入接口,所述公共的厂商专用用户输入接口既没有由任何设备平台规定,也未被标准化在解读的用户输入类别中。在该情况下,宿设备60可以发送具有厂商库所规定的格式的HIDC输入报告。当源设备20接收这些厂商专用用户输入时,源设备20可以调用厂商专用HID用户输入库来解析这些用户输入。
如上文所提到的,UIBC模块32可以接收包括输入消息的UIBC消息、对输入消息进行解析以确定由输入消息所描述的用户输入,以及基于输入消息所描述的用户输入来生成输入事件。为了解析HIDC输入报告,UIBC模块32可能需要确定HIDC输入报告所符合的报告格式。因此,根据本申请的技术,UIBC模块32可以基于在包含HIDC输入报告的一个或多个IP分组中的数据,来确定UIBC消息中的HIDC输入报告的报告格式。
在一些例子中,源设备20可以存储报告格式28。在一些例子中,源设备20可以在与宿设备60建立UIBC之前存储报告格式28。报告格式28可以包括描述了与特定HID相关联的报告格式的数据。例如,报告格式28可以包括用于描述与特定HID相关联的报告格式的架构(schema)(例如,可扩展标记语言(XML)架构等)。在这些例子中,在IP分组中规定的报告描述符可以是源设备20与报告格式28中的一种特定格式进行关联的标识符。为了解析HIDC输入报告,UIBC模块32可以使用这样的标识符来选择报告格式28中的一种格式。源设备20可以随后使用由所标识的架构所描述的报告格式来解析HIDC输入报告。以这一方式,与可以使用常规的USB或蓝牙协商方法进行交换数据相比,宿设备60和源设备20可以交换所述数据的简化子集。因此,考虑来自特定HID的输入,宿设备60和源设备20可能不需要交换用于指示HIDC输入报告的格式的架构。
UIBC模块32可以基于各种标识符来标识报告格式28中的一个。例如,UIBC消息可以至少包括第一字段和第二字段。第一字段可以包括HIDC输入报告。第二字段可以包括HID类型指示符。HID类型指示符可以包括数字标识符,所述数字标识符标识了报告格式28中的一个。在另一个例子中,一个或多个IP分组可以规定宿设备60的IP地址。在该例子中,UIBC模块32可以至少部分地基于宿设备60的IP地址来标识报告格式28中的一个。此外,一个或多个IP分组可以规定源端口。在该例子中,UIBC模块32可以至少部分地基于宿设备60的IP地址以及源端口来标识报告格式28中的一个。
在其它的例子中,UIBC模块74可以生成HIDC输入报告,所述HIDC输入报告包含了报告描述符或报告数据。HIDC输入报告的报告描述符可以描述报告数据的报告格式。在一些例子中,报告标识符可以包括架构。例如,报告描述符可以指示:报告数据的第32个比特指示是否按下HID的特定按钮。HIDC输入报告的报告数据可以描述由HID接收的用户输入。
在这些例子中,响应于接收到包含HIDC输入报告的UIBC消息,UIBC模块32可以确定HIDC输入报告是否包含报告描述符或报告数据。如果HIDC输入报告包含报告描述符,则UIBC模块32可以存储稍后用于解析HIDC输入报告的报告描述符。如果HIDC输入报告包含报告数据,则UIBC模块32可以基于先前接收的报告描述符来解析报告数据。
此外,HIDC输入报告可以包含用途标志和HIDC值。HIDC输入报告的用途标志指示了HIDC输入报告的HIDC值是否包含格式数据或报告数据。在一些这样的例子中,HIDC输入报告可以符合下面在表1中指示的格式。
表1–HIDC输入报告的示例性格式
Figure BDA0000478900490000161
在表1的示例性HIDC输入报告格式中,HIDC输入报告的“使用”标志可以指示HIDC输入报告的“HIDC值”字段是否包括报告数据或报告描述符。报告数据可以描述由HID(例如HID70)接收的用户输入。报告描述符可以描述报告格式。因此,宿设备60可以发送第一和第二HIDC输入报告,而源设备20可以接收第一和第二HIDC输入报告。第一HIDC输入报告的“使用”标志可以指示:第一HIDC输入报告的HIDC值包括报告描述符,而第二HIDC输入报告的“使用”标志可以指示:第二HIDC输入报告的HIDC值包括报告数据。
在其中HIDC输入报告符合表1的格式的例子中,在宿设备60向源设备20发送包括报告数据的HIDC输入报告之前,宿设备60可以向源设备20发送包括报告描述符的HIDC输入报告。宿设备60可以向源设备20多次发送报告描述符以确保源设备20具有正确的格式。UIBC模块32可以在WD会话的持续期间保存报告描述符,并且使用报告描述符以用于解析报告数据。
在其它的例子中,UIBC模式32可以假定:从宿设备60接收的第一HIDC输入报告总是规定了报告格式,并且根据第一HIDC输入报告所描述的报告格式来对从宿设备60接收的后续HIDC输入报告进行格式化。此外,在一些例子中,UIBC模块32可以假定:从宿设备60的特定端口接收的第一HIDC输入报告总是规定了报告格式,并且根据第一HIDC输入报告所描述的报告格式来对从宿设备60的特定端口接收的后续HIDC输入报告进行格式化。
在其它的例子中,每个HIDC输入报告可以包括两个HIDC值。HIDC输入报告的第一HIDC值可以规定报告描述符。HIDC输入报告的第二HIDC值可以规定符合报告描述符所规定的格式的报告数据。
在一些例子中,宿设备60和源设备20可以支持HIDC输入报告,但可能不支持HIDC输出报告。HIDC输出报告可以将信息从源设备20传送到人工输入设备(例如键盘)。此外,在一些这样的例子中,宿设备60可以在中断的基础上向源设备20发送HIDC输入报告。因此,源设备20可以不必轮询宿设备60以获取HIDC输入报告。
图2示出了根据本申请的一个或多个技术,由源设备20执行的示例性操作200的流程图。虽然图2和其它附图是参照图1来进行描述的,但是图2和本文所描述的其它的附图可以适用于除图1的例子之外的例子。
在图2的例子中,源设备20可以存储多个预先配置的报告格式28(202)。预先配置的报告格式28中的每一个可以与不同类型的HID相关联。此外,源设备20可以从宿设备60接收一个或多个IP分组(204)。所述一个或多个IP分组可以包含HIDC输入报告。源设备20的UIBC模块32可以基于在一个或多个IP分组中的数据来从多个预先配置的报告格式28中标识预先配置的报告格式(206)。接下来,UIBC模块32可以基于所标识的预先配置的格式来解析HIDC输入报告,以便确定HIDC输入报告所描述的用户输入(208)。响应于用户输入,源设备20可以生成媒体数据(210)。源设备20可以随后从源设备20向宿设备60发送媒体数据(212)。一旦接收到媒体数据,宿设备60就可以解码并呈现媒体数据。
图3是示出了根据本申请的一个或多个技术,由宿设备执行的示例性操作250的流程图。在图3的例子中,宿设备60可以从HID(例如HID70)接收用户输入的指示(252)。在宿设备60处的UIBC模块74可以基于用户输入来生成HIDC输入报告(254)。在一些例子中,HIDC输入报告可以符合USB或蓝牙标准。接着,宿设备60可以向源设备20发送一个或多个IP分组(256)。所述IP分组可以包含HIDC输入报告和HID类型指示符,该HID类型指示符标识了用于解析HIDC输入报告的报告格式。然后,宿设备60可以从源设备20接收媒体数据(258)。该媒体数据可以基于HIDC输入报告所描述的用户输入。
图4是示出了根据本申请的一个或多个技术,由宿设备60执行的另一个示例性操作350的流程图。操作350可以是图3的例子中示出的操作250的更具体的情形。
在图4的例子中,宿设备60的WD会话管理器68与源设备20的WD会话管理器30进行通信以建立UIBC(351)。在一些例子中,源设备20的WD会话管理器30发起通信以建立UIBC。在其它的例子中,宿设备60的WD会话管理器68发起通信以建立UIBC。在一些例子中,WD会话管理器68和WD会话管理器30可以在会话建立期间协商UIBC能力。以下描述的图7是示出了在源设备20与宿设备60之间为协商用于通用输入消息的UIBC而进行的示例性交互的通信图。以下更详细描述的图8是示出了在源设备20与宿设备60之间为协商用于HIDC输入报告的UIBC而进行的示例性交互的通信图。
在建立UIBC之前,宿设备60可以察觉并管理与其连接的输入设备。触摸屏和远程控制设备可以总是连接到宿设备60。其它输入设备(例如鼠标和键盘)连接和断开,可能需要适当的即插即用(PnP)管理器和设备驱动。在发起UIBC之前,WD会话管理器68可以具有连接的设备及其当前状态的列表。WD会话管理器68可以在UIBC的建立期间,标识该列表中的、针对源设备20的HID。
在一些例子中,建立UIBC假定了以下前提:源设备20已发现了宿设备60。宿设备60已经与源设备20配对。在源设备20与宿设备60之间已经建立了具有RTSP控制端口的传输控制协议(TCP)连接。源设备20与宿设备60之间已经经由RTSP对所有WD非UIBC能力进行协商。
在建立UIBC之后,宿设备60的OS76可以从HID驱动72接收输入报告(352)。响应于接收到输入报告,OS76可以向宿设备60的UIBC模块74发送输入事件(354)。输入事件可以包括由OS76接收的输入报告。当UIBC模块74接收输入事件时,UIBC模块74可以将输入事件存储在队列中。UIBC模块74可以按UIBC向队列添加输入事件的顺序来处理输入事件。
当UIBC模块74处理输入事件时,UIBC模块74可以确定是否要捕获输入事件(356)。UIBC模块74可以确定:是否要以各种方式来捕获输入事件。例如,UIBC模块74可以确定:不要捕获与shift键或control键的按键对应的输入事件。如果UIBC模块74确定不要捕获输入事件(356的“否”),则操作350可以结束。
如果UIBC模块74确定要捕获输入事件(356的“是”),则UIBC模块74可以将输入事件记入日志(358)。UIBC模块74可以通过各种方式将输入事件记入日志。例如,UIBC模块74可以将用于调试的UIBC测试命令行界面(CLI)上的输入事件记入日志。
此外,UIBC模块74可以生成UIBC消息(360)。UIBC消息可以具有各种消息格式。以下详细描述的图6示出了UIBC消息的示例性消息格式。在其它的例子中,UIBC消息的消息格式可能比图6的示例性消息格式更简单。例如,在这样的其它例子中,UIBC消息可以仅包括输入主体。UIBC消息可以包括通用输入主体或HIDC输入主体。在一些例子中,UIBC消息包括报告描述符,所述报告描述符标识了UIBC消息的HIDC输入主体所符合的报告格式。当UIBC模块74处理输入报告时,UIBC模块74可以生成UIBC消息,所述UIBC消息包括通用输入主体(即,通用输入消息)或HIDC输入主体(即,HIDC输入报告)。
UIBC模块74可以生成UIBC消息,所述UIBC消息包括针对取决于设备平台的用户输入的通用输入主体。例如,不同的设备平台(例如,WINDOWS MOBILETM和ANDROIDTM)可以具有不同的用户输入格式。可以对用户输入进行检测并且作为操作系统级用户输入而不是驱动级用户输入进行发送。
当源设备20的UIBC模块32接收通用输入消息时,UIBC模块32可以根据源设备20的设备平台来处理通用输入消息。因此,当源设备20能够处理由UIBC模块74接收的原始输入报告时,通用输入消息可能是有用的。例如,由于在源设备20处运行的应用(例如应用22)可以处理复杂的用户交互,因此源设备20可以处理在触摸屏上的特定序列的手指触摸。源设备20可以使用指针标识符来支持针对通用输入的多触摸运动事件,所述指针标识符标识了马上使用哪些指针。因此,宿设备60可以将这些多触摸运动事件作为多个指针进行发送,而源设备20可以将这些指针解读为多个指针事件。
在一些例子中,UIBC模块74可以监听由OS76生成的运动事件。在这样的例子中,响应于接收到运动事件,UIBC模块74可以生成包括通用输入主体的UIBC消息。运动事件可以是属于输入事件类别的数据对象(例如面向对象的编程语言对象)。属于输入事件类别的对象可以包括运动事件对象或按键事件对象。运动事件对象可以包括记录来自各种类型的HID(例如,鼠标、笔、手指和轨迹球)的移动的数据。按键事件对象可以包括记录按键的数据。在这样的例子中,UIBC模块74可以根据以下伪代码来处理运动事件对象:
如果是按键事件
如果是键按下
保存键代码1(如果是Shift,等待1秒并保存键代码2)
转换为ASCII
生成键按下通用输入消息
放置在InputTx队列中
如果是键松开
保存键代码1(如果是Shift,等待1秒并保存键代码2)
转换为ASCII
生成键松开通用输入消息
放置在InputTx队列中
否则如果是运动事件
如果是按下动作
保存每个按下指针的X、Y和ID
将X、Y缩放到视频分辨率
生成触摸按下通用输入消息
放置在InputTx队列中
如果是松开动作
保存每个松开指针的X、Y和ID
将X、Y缩放到视频分辨率
生成触摸松开通用输入消息
放置在InputTx队列中
如果是输入设备的绝对移动动作
保存每个指针的主要X、Y和ID
将X、Y缩放到视频分辨率
生成触摸移动通用输入消息
放置在InputTx队列中
如果是输入设备的相对移动动作
保存变化量(Delta)X、Y,并且获得绝对的X、Y
将X、Y缩放到视频分辨率
生成触摸移动通用输入消息
放置在InputTx队列中
如果是滚动动作
如果是垂直的
生成垂直滚动报告
放置在InputTx队列中
如果是水平的
生成水平滚动报告
放置在InputTx队列中
否则打印“输入事件不能被处理:”+命令
根据上文提供的伪代码,UIBC模块74可以确定运动事件对象是否是按键事件对象。如果运动事件对象是按键事件对象并且按键事件对象指示了键按下事件,则UIBC模块74可以将所按的键的键代码转换为UTF-8或ASCII码、生成针对键按下事件的通用输入消息以及对包含通用输入消息的UIBC消息进行排队以用于传输。如果运动事件对象是按键事件对象并且按键事件对象指示了键松开事件,则UIBC模块74可以将所松开的键的代码转换为UTF-8或ASCII码,生成针对键松开事件的通用输入消息,并且对包含通用输入消息的UIBC消息进行排队以用于传输。在上文提供的伪代码中,UIBC模块74可以生成针对各种类型的运动事件对象(例如指针按下事件、指针松开事件、指针移动事件和滚动事件)的通用输入消息并且对通用输入消息进行排队以用于传输。
除了处理上文所讨论的运动事件对象和按键事件对象之外,UIBC模块74还可以处理其它类型的输入事件。例如,如果宿设备60包括定向检测器,则UIBC模块74可以生成指示宿设备60的定向的变化的通用输入消息,如以下伪代码所指示的。
如果检测到定向变化
在定向变化时
保存定向角度
生成旋转输入消息
放置在InputTx队列中
在一些例子中,UIBC模块74可以生成用于多触摸输入的通用输入消息。如果源设备20和宿设备60两者都支持多触摸,则UIBC模块74可以生成用于指针按下、指针移动和指针松开的用户输入的附加信息元素(IE),所述附加信息元素(IE)具有X和Y坐标,在X和Y坐标前面是指针的数量和用于标识其是多个指针中的哪一个的索引参数(例如,[2,1,X1,Y1,2,X2,Y2])。对于单触摸来说,这些在前面的值可以是1和1(例如,[1,1,X,Y])。
在本申请中,HIDC可以是指基于USB HID和其它HID两者,使用各种现有的HID标准来发送消息。宿设备60可以转发HIDC类别的用户输入并且可以不处理用户输入。有可能的是连接到宿设备60的第三设备察觉到源设备20。在该情况下,HID设备可以从第三设备向宿设备60发送消息,而宿设备60可以直接向源设备20转发该消息。以这一方式,源设备20可以在正确的上下文中对这些消息进行响应。
在一些例子中,UIBC模块74可以生成UIBC消息,所述UIBC消息包括针对USB键类型设备的HIDC输入主体。在一些这样的例子中,UIBC模块74可以将用户输入捕获为来自OS76而不是来自HID驱动72的运动事件对象。UIBC模块74可以基于输入事件对象来生成HIDC输入报告。UIBC模块74可以根据以下伪代码来处理运动事件对象:
如果是运动事件
如果是按下动作
保存X、Y
生成HID鼠标按钮1按下输入报告
放置在InputTx队列中
如果是松开动作
保存X、Y
生成HID鼠标按钮1松开报告
放置在InputTx队列中
如果是输入设备的绝对移动动作
保存X、Y
生成HID鼠标移动报告
放置在InputTx队列中
如果是输入设备的相对移动动作
保存相对于先前移动动作的X、Y的变化量(Delta)
生成HID鼠标移动报告
放置在InputTx队列中
如果是滚动动作
如果是垂直的
生成鼠标按钮3报告
放置在InputTx队列中
否则打印“运动事件不能被处理:”+命令
根据上文的伪代码,UIBC模块74可以生成指示各种类型的移动输入的HIDC输入报告。此外,在上文的示例性伪代码中,输入事件对象可以产生自HID而不是触摸屏。因此,输入事件对象可以指示X和Y的相对变化量(delta)而不是绝对的X和Y,如在针对来自触摸屏的用户输入的输入事件对象中通常指示的。
在UIBC模块74生成UIBC消息之后,UIBC模块74可以向UIBC传输队列发送该UIBC消息(362)。宿设备60的OS76可以发送来自UIBC传输队列的UIBC消息(364)。OS76可以按照将UIBC消息添加到UIBC传输队列的顺序来发送来自UIBC传输队列的UIBC消息。当OS76发送UIBC消息时,IP栈78可以将UIBC消息封装在一个或多个TCP/IP分组中,所述一个或多个TCP/IP分组将源设备20的IP地址规定作为目的地址。TCP/IP分组可以将在源设备20和宿设备60建立无线显示会话时源设备20和宿设备60协商的端口标识符规定作为目标端口。
如上所示,图4仅是与本申请相一致的一个例子。在其它例子中,UIBC模块74可以直接从HID驱动72接收HIDC输入报告。UIBC模块74可以随后添加UIBC封装(例如,生成包括HIDC输入报告的UIBC消息),并且随后向UIBC传输队列发送UIBC消息。
图5是示出了由源设备20执行的另一个示例性操作400的流程图。操作400可以是对图2的例子中示出的操作200的更具体的情形。
在图5的例子中,UIBC模块32可以在已建立的UIBC上接收UIBC消息(402)。UIBC模块32可以随后向UIBC接收队列发送UIBC消息(404)。UIBC模块32可以解析UIBC接收队列中的UIBC消息(406)。UIBC模块32可以根据将UIBC添加到UIBC接收队列的顺序,来解析UIBC接收队列中的UIBC消息。
如果UIBC消息包含通用输入主体,则UIBC消息可以根据以下的表2来解析UIBC消息。
表2
Figure BDA0000478900490000251
Figure BDA0000478900490000261
虽然在表2中未示出,但通用输入消息的主体可以包括有效按下的指针(#)的编号,连同描述了每个按下的指针的指针ID(N),指针ID(N)后面跟着X和Y坐标。
如果UIBC消息包含HIDC输入报告,则UIBC模块32可以基于在包含UIBC消息的一个或多个IP分组中的数据(例如,HID类型指示符)来识别预先配置的报告格式。UIBC模块32可以随后基于所标识的预先配置的报告格式来解析HIDC输入报告以确定用户输入。例如,如果UIBC消息包含HIDC输入报告,则UIBC模块32可以根据下面所示的表3来解析HIDC输入报告。表3指示了针对鼠标动作的HIDC输入报告的示例性格式。在一些例子中,宿设备60可以在鼠标动作期间每10ms发送针对鼠标动作的HIDC输入报告。
表3
Figure BDA0000478900490000271
蓝牙设备可以具有与如表3的示例性输入报告相似的输入报告,除了针对这些蓝牙设备的输入报告可以具有与10100001相等的值的附加数据报头。
在解析UIBC消息之后,UIBC模块32可以确定UIBC消息是否包括通用输入消息(408)。响应于确定UIBC消息包括通用输入消息(408的“是”),UIBC模块32可以基于通用输入消息来引入输入事件(410)。当UIBC模块32引入输入事件时,源设备20的OS24可以通知已注册的进程来接收该输入事件。
在一些例子中,UIBC模块32可以对通用输入事件中的值执行附加处理以生成输入事件。在没有这些附加处理的情况下,在输入事件中表示的值可能不与源设备20处的适当值相关联。例如,UIBC消息可以包括指示运动输入的通用输入消息。在该例子中,UIBC模块32可以执行附加处理来对通用输入消息中所发送的X和Y值进行归一化。因为协商的视频分辨率可能与宿设备60的屏幕和源设备20的屏幕的分辨率不匹配,所以在宿设备60处检测到的运动事件的X和Y值可能不与协商的视频分辨率相关联。因此,UIBC模块32可以将在宿设备处60处检测到的运动事件的X和Y值归一化到协商的视频分辨率的适当的X和Y值。UIBC模块32可以使用以下公式来归一化X和Y值:
通用输入X=宿X*(视频分辨率的最大X/宿屏幕最大X)
通用输入Y=宿Y*(视频分辨率的最大Y/宿屏幕最大Y)
在RTSP基于事务的能力协商期间,可以在参数“wfd_video_formats”中规定协商的分辨率。如果协商的分辨率与源设备20的屏幕的分辨率相匹配,则UIBC模块32可以不执行映射。
此外,在前面段落的例子中,一旦UIBC模块32接收到通用运动输入消息的X和Y值,UIBC模块32就可以或者可以不将通用运动输入消息的X和Y值映射到用于处理的源设备20的屏幕的分辨率。如果源设备20在协商的视频的分辨率上处理通用运动输入消息的X和Y值,则UIBC模块32不需要执行任何映射。然而,如果源设备20参照源设备20的屏幕的分辨率来处理通用运动输入消息的X和Y值,则UIBC模块32可以执行以下映射:
要处理的X=通用输入X*(宿屏幕最大X/视频分辨率的最大X)
要处理的Y=通用输入Y*(宿屏幕最大Y/视频分辨率的最大Y)
此外,在通用输入事件中所规定的X和Y坐标可以是绝对坐标(即,屏幕坐标)或相对坐标(即,反映X和/或Y的变化的变化量)。在一些例子中,如果在通用输入事件中所规定的坐标是绝对坐标,则UIBC模块32可以将坐标转换为相对坐标,或者反之亦然,如对于源设备20合适。
此外,如果通用输入消息指示了按键事件,则按下的键的顺序和数量可能是重要的。由于不同的操作系统可以针对键使用不同的值,因此UIBC模块74和UIBC模块32可以在通用输入消息中使用通用UTF-8或ASCII字符以便保持与操作系统无关。例如,为了发送大写字母,宿设备60可以在按下shift键之后等待另一个键,并且发送适当的大写字母。在一些例子中,可以在单个通用输入消息中发送多个键代码。
如果UIBC消息不包括通用输入消息(408的“否”),则UIBC模块32可以确定UIBC消息是否包括HIDC输入报告(412)。如果UIBC消息包括HIDC输入报告(412的“YES”),则UIBC模块32可以基于HIDC输入报告来生成并引入输入事件(414)。如在本申请中的其它地方所描述的,宿设备60可以不处理HIDC输入报告。更确切地说,宿设备60可以传送通过来自生成HIDC输入报告的HID驱动的HIDC输入报告。
在一些例子中,UIBC模块32可能不需要对HIDC输入报告中所发送的X和Y坐标进行归一化,因为移动是X和Y的相对变化并且可能仅引起鼠标移动速度的少量增加。在其它例子中,UIBC模块32可以归一化X和Y坐标,以反映在源设备20的屏幕与宿设备60的屏幕之间的屏幕分辨率的差异、在协商的屏幕分辨率与宿设备60的屏幕分辨率之间的差异、或者在协商的屏幕分辨率与源设备20的屏幕分辨率之间的差异。
除了归一化,在HIDC鼠标输入报告中所发送的X和Y坐标还可以是相对的X和Y坐标,而运动事件坐标可以绝对的(屏幕坐标)或相对的(反映X或Y的变化的变化量)。在一些操作系统中,除了触摸屏输入以外的大多数输入是相对的,因此如果可以找到附加的输入设备,则不需要任何变化。触摸屏输入设备可以是绝对的,因此如果输入设备是触摸屏,则可以记录先前绝对的X和Y坐标并且在HIDC鼠标输入报告中可以仅发送相对的变化。
UIBC模块32可以通过各种方式来引入输入事件。例如,UIBC模块32可以经由现有的驱动来引入输入事件。在该例子中,UIBC模块32可以将HID值(例如,基于通用输入消息或HIDC输入报告所描述的用户输入的值)直接传送给OS24上的相应驱动并且可以被相应地处理。OS24可以将输入事件从驱动输送到被注册为接收输入事件的应用(例如,应用22)。
在另一个例子中,UIBC模块32可以经由HID驱动来引入输入事件。在该例子中,UIBC模块32可以将HID值直接传送给OS24上的HID驱动。HID驱动可以相应地处理HID值。也可以在UIBC上发送针对OS24的HID驱动请求。
在另一个例子中,UIBC模块32可以初始化虚拟驱动。初始化虚拟驱动可以使得UIBC模块32能够具有向OS24插入各种各样的输入事件的灵活性。在该例子中,UIBC模块32可以将输入事件向下传送给虚拟驱动。虚拟驱动可以随后向OS24发送输入事件,因为虚拟驱动可以与OS24紧密地结合并且可以表示一个或多个输入设备。当无线显示是活动时,可以对虚拟驱动进行初始化,但可能需要安装虚拟驱动。
在另一个例子中,UIBC模块32可以经由OS命令向OS24引入输入事件。在该例子中,UIBC模块32可以直接向OS24发送按键事件和运动事件。然而,在一些例子中,OS24可以避免经由OS评论来引入输入事件,因为一个应用向其它应用发送命令可能是不安全的,并且每个应用具有其自己的底层内核的实例。该方案可以比实现虚拟驱动更简单并且延迟性能可以更好。以下的伪代码表明了根据该例子来引入输入事件的示例性方式:
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));
如果UIBC消息不包括HIDC输入报告(412的“否”),则UIBC模块32可以确定UIBC消息是否对应于描述符请求(416)。响应于确定UIBC消息对应于描述符请求(416的“是”),UIBC模块32可以向在源设备20处的HID主机发送描述符(418)。HID主机可以是源设备20处的用于处理来自特定HID的输入报告的单元。在图5的例子中,如果UIBC消息不对应于描述符请求(416的“否”),则UIBC模块32可以处理来自UIBC接收队列的另一个UIBC消息。
在HID的初始化期间,HID主机可能需要关于HID的附加信息。因此,源设备20可以向宿设备60发送获得_描述符(Get_Descriptor)命令。当宿设备60接收Get_Descriptor命令时,UIBC模块74可以向与HID相关联的HID驱动(例如,驱动72)转发Get_Descriptor命令。当HID驱动接收Get_Descriptor命令时,HID驱动可以向UIBC模块74发送关于HID的信息。UIBC模块74可以随后生成并且发送包括关于HID的信息的UIBC消息。在其中源设备20能够基于在包含HIDC输入报告的一个或多个IP分组中的数据来标识预先配置的报告格式的一些例子中,源设备20可能不必请求这些附加信息。
在初始化后,宿设备60可以从源设备20接收具有报告的描述符类型的Get_Descriptor命令。HID驱动可以发送如下面在表4和表5中所示出的作为输入报告的HID值的报告描述符。在初始的报告描述符之后,宿设备60可以按照从HID驱动(或初始地经由运动事件)接收如在HIDC输入主体中所示出的输入报告那样的频繁程度,继续发送这些输入报告。
表4–获得描述符
Figure BDA0000478900490000311
表5–针对鼠标的接口0报告描述符
Figure BDA0000478900490000321
Figure BDA0000478900490000331
在某些情况下,除“报告”以外,源设备20还可以发送具有描述符类型的额外Get_Descriptor命令。如果宿设备60接收具有“HID”的描述符类型(wValue=21h)的Get_Descriptor命令,则HID驱动可以发送如在下面的表6中所示出的HID描述符。
表6
偏移 字段 大小 描述
0 bLength 1 09h
1 bDescriptorType 1 21h HID
2 bcdHID 2 0111h 1.11
4 bCountryCode 1 00h
5 bNumDescriptors 1 01h
6 bDescriptorType 1 22h 报告
7 wDescriptorLength 2 0034h 52个字节
如果宿设备60接收到Get_Descriptor(配置)命令,则HID驱动可以按照该顺序来发送配置描述符、接口描述符、HID描述符和端点描述符,作为单独消息。在下面的表7-12中描述了这些描述符的例子:
表7
Figure BDA0000478900490000341
表8
偏移 字段 大小 描述
0 bLength 1 09h
1 bDescriptorType 1 04h 接口
2 bInterfaceType 1 00h
3 BAlternateSetting 1 00h
4 bNumEndpoints 1 01h
5 bInterfaceClass 1 03h HID
6 bInterfaceSubClass 1 01h 启动接口
7 bInterfaceProtocol 1 02h 鼠标
8 iInterface 1 00h
表9–HID描述符
偏移 字段 大小 描述
0 bLength 1 09h
1 bDescriptorType 1 21h HID
2 bcdHID 2 0111h 1.11
4 bCountryCode 1 00h
5 bNumDescriptors 1 01h
6 bDescriptorType 1 22h 报告
7 wDescriptorLength 2 0034h 52个字节
表10–端点描述符
Figure BDA0000478900490000351
Figure BDA0000478900490000361
如果未使用标准的HID驱动,则这些请求可以被识别,并且UIBC模块74可以存储并且发送以上数据值。
表11–获得描述符
表12–设备描述符
Figure BDA0000478900490000363
Figure BDA0000478900490000371
图6是示出了UIBC消息450的示例性格式的概念图。为了便于说明,以下对图6的讨论假定:宿设备60发送UIBC消息450,而源设备20接收UIBC消息450。
在图6的例子中,UIBC消息450可以包括版本字段、时间戳标志(“T”)、保留的字段、输入类别字段、时间戳字段、长度字段和输入主体字段。保留字段的大小可以等于8个比特并且可以被源设备20(图1)忽略。
版本字段可以指示UIBC消息450的格式版本。版本字段的大小可以等于3个比特。在一些例子中,版本字段的预期值可以等于1。
输入类别字段可以指示UIBC消息450的输入主体字段是否包含通用输入主体或HIDC输入主体。输入类别字段的大小可以等于4个比特。在一些例子中,如果输入类别字段的值等于0,则UIBC消息450的输入主体字段可以包含通用输入主体(即,通用输入消息)。在这些例子中,如果输入类别字段的值等于1,则UIBC消息450的输入主体字段可以包含HIDC输入主体(即,HIDC输入报告)。
长度字段可以指示UIBC消息450(包括UIBC消息450的输入主体字段)的以字节(即,八位字节)为单位的长度。长度字段的大小可以等于16个比特。源设备20可以使用长度字段来验证UIBC消息450具有适当的长度。
时间戳标志可以指示源设备20是否要读取UIBC消息450的时间戳字段。时间戳标志的大小可以等于1比特。在一些例子中,如果时间戳标志等于1,则时间戳标志可以指示源设备20要读取UIBC消息450的时间戳字段。在这些例子中,如果时间戳标志等于0,则时间戳标志可以指示源设备20将不读取UIBC消息450的时间戳字段。在一些例子中,时间戳标志的预期值为1。
时间戳字段可以指示宿设备60在何时接收到与UIBC消息450相关联的用户输入。时间戳字段的大小可以等于16个比特。当源设备20接收到UIBC消息450时,源设备20可以保存时间戳以用于后续处理。
当从源设备20到宿设备60的无线信道50发生拥塞时,在宿设备60处接收的用户输入可能已被施加到由宿设备60显示的陈旧的显示帧。当在源设备20处接收到这些用户输入时,可以不对这些用户输入进行处理。另一方面,当从宿设备60到源设备20的UIBC发生拥塞时,施加到宿设备60的用户输入可能太晚地在源设备20处被接收。源设备20也可以不对这些用户输入进行处理。
时间戳字段可以告知源设备20关于上述同步问题。时间戳字段可以指定与当接收用户输入时正在显示的媒体数据相关联的时间戳。发送这些时间戳信息可以足以解决上述同步问题。
图7是示出了在源设备20与宿设备60之间协商用于通用输入消息的UIBC而进行的示例性交互的通信图。在图7的例子中,源设备20向宿设备60发送消息500。消息500可以是针对获得宿设备60的UIBC能力参数的请求。宿设备60通过将消息502发送回源设备20,来对消息500进行响应。消息502指示了宿设备60的用于提供通用输入消息和HIDC输入报告的能力。在图7的例子中,消息502指示了宿设备60可以提供用于鼠标和单触摸式触摸屏的通用输入消息(即generic_cap_list=鼠标,单触摸)。消息502还指示了宿设备60不提供任何HIDC输入报告(即,hidc_cap_list=none)。宿设备60可以响应于来自源设备20的针对通用输入消息能力的请求而指示的示例性通用输入可以包括:触摸/鼠标按下、触摸/鼠标松开、触摸/鼠标移动、按键按下、按键松开、缩放、垂直滚动、水平滚动和旋转。
在源设备20接收消息502之后,源设备20可以向宿设备60发送消息504。消息504可以指示宿设备60设定一个或多个UIBC参数。例如,在图7的例子中,消息504指示宿设备60将端口号设定为1000。在宿设备60接收消息504之后,宿设备60可以设定如消息504所指示的参数并且将消息506发送回源设备20。消息506向源设备20确认:宿设备60设定如在消息504中所指示的一个或多个UIBC参数。
随后,源设备20可以向宿设备60发送消息508。消息508可以指示宿设备60设定UIBC参数(例如,wfd_uibc_setting)以指示UIBC被启用。宿设备60可以通过设定UIBC参数以指示UIBC被启用并且通过发送消息510以确认宿设备60设定了如在消息508中所指示的UIBC参数,来对消息508进行响应。
图8是示出了在源设备20与宿设备60之间为协商用于人工输入设备命令(HIDC)输入报告的UIBC而进行的示例性交互的通信图。在图8的例子中,源设备20向宿设备60发送消息550。消息550可以是针对获得宿设备60的UIBC能力参数(wfd_uibc_capability)的请求。宿设备60通过将消息552发送回源设备20来对消息550进行响应。消息552指示了宿设备60的用于提供通用输入消息和HIDC输入报告的能力。在图8的例子中,消息552指示了宿设备60可以提供用于蓝牙鼠标和红外线远程控制的HIDC输入报告(即,hidc_cap_list=鼠标/蓝牙,远程控制/红外线)。消息552还指示了宿设备60不提供任何通用输入消息(即,generic_cap_list=none)。
在源设备20接收消息552之后,源设备20可以向宿设备60发送消息554。消息554可以指示宿设备60设定一个或多个UIBC参数。例如,在图8的例子中,消息554指示宿设备60将端口号设定为1000。在宿设备60接收消息554之后,宿设备60可以设定如消息554所指示的参数,并且将消息556发送回源设备20。消息556向源设备20确认:宿设备60设定了如在消息554中所指示的一个或多个UIBC参数。
随后,源设备20可以向宿设备60发送消息558。消息558可以指示宿设备60设定UIBC参数(例如,wfd_uibc_setting)以指示UIBC被启用。宿设备60可以通过设定UIBC参数以指示UIBC被启用并且通过发送消息560以确认宿设备60设定了如在消息558中所指示的UIBC参数,来对消息558进行响应。一旦已经通过RTSP协商了适当的通用或HIDC能力,就启用了UIBC能力,并且宿设备60可以在UIBC上发送用户输入作为子元素。在图8的例子中,现在建立了UIBC。
在一个或多个例子中,所描述的功能可以通过硬件、软件、固件或其任意组合来实现。如果通过软件来实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质进行传输。计算机可读介质可以包括计算机数据存储介质或通信介质,所述通信介质包括有助于将计算机程序从一个地方传送到另一个地方的任何介质。在一些例子中,计算机可读介质可以包括非暂时性计算可读介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以获取用于实现在本申请中所描述的技术的指令、代码和/或数据结构的任何可用介质。
举例说明而非限制,这样的计算机可读介质可以包括:诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储之类的非临时性媒体、磁盘存储器、或其它磁性存储设备、闪存、或者能够用来携带或存储具有指令或数据结构形式的所期望的程序代码并且能够被计算机访问的任何其它介质。此外,任何连接都可以称为计算机可读介质。如本文所使用的磁盘和光碟包括压缩光碟(CD)、激光光碟、光碟、数字多功能光碟(DVD)、软盘以及蓝光光碟,其中,磁盘通常用磁再现数据,而光碟是由激光器用光再现数据。上述的组合也应该被包括在计算机可读介质的范围内。
所述代码可以由诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或者其它等效的集成或分立逻辑电路之类的一个或多个处理器来执行。因此,如本文所使用的术语“处理器”可以是指前述结构中的任意一种,或适用于实现本文所描述的技术的任何其它结构。此外,在一些方面中,在被配置为用于编码和解码的专用硬件和/或软件模块中或者并入到组合的编解码器中可提供本文中所描述的功能。此外,所述技术可以在一个或多个电路或逻辑单元中完全实现。
本申请的技术可以通过各种各样的设备或装置(包括无线手机、集成电路(IC)或一组IC(例如,芯片组))来实现。在本申请中描述各种组件、模块或单元是为了强调被配置为执行所公开的技术的设备的功能方面,而不一定要求通过不同的硬件单元来实现。更确切地说,如上文所描述的,各种单元可组合在编解码器硬件单元中或者由互操作硬件单元的集合(包含如上文所描述的一个或多个处理器)结合适当的软件和/或固件来提供。
已描述了本发明的各个实施例。这些和其它的实施例位于后面的权利要求的范围内。

Claims (44)

1.一种方法,包括:
在源设备处存储多个预先配置的报告格式,其中所述预先配置的报告格式中的每一个是与不同类型的人工输入设备(HID)相关联的;
在所述源设备处从宿设备接收一个或多个互联网协议(IP)分组,所述一个或多个IP分组包括HID命令(HIDC)输入报告;
基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个;
基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入;
响应于所述用户输入,生成媒体数据;以及
从所述源设备向所述宿设备发送所述媒体数据。
2.根据权利要求1所述的方法,其中,所述预先配置的报告格式包括架构(schema)。
3.根据权利要求1所述的方法,其中,接收所述一个或多个IP分组包括:在无线通信网络上接收所述一个或多个IP分组。
4.根据权利要求1所述的方法,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
5.根据权利要求1所述的方法,其中,所述数据包括数字标识符,所述数字标识符标识所述预先配置的报告格式中的一个。
6.根据权利要求5所述的方法,其中,所述一个或多个IP分组包括消息,所述消息包括规定所述数字标识符的字段和包含所述HIDC输入报告的字段。
7.根据权利要求1所述的方法,
其中,所述数据包括所述宿设备的IP地址,并且
其中,识别所述预先配置的报告格式中的一个包括:至少部分基于所述宿设备的IP地址来识别所述预先配置的报告格式中的一个。
8.根据权利要求7所述的方法,
其中,所述数据包括所述IP地址和源端口,并且
其中,识别所述预先配置的报告格式中一个包括:至少部分基于所述宿设备的IP地址和所述源端口来识别所述预先配置的报告格式中的一个。
9.根据权利要求1所述的方法,还包括:
响应于从所述宿设备接收到所述一个或多个IP分组,确定所述一个或多个IP分组是否包括通用输入消息或所述HIDC输入报告,其中所述通用输入消息对于属于一类HID的HID是通用的。
10.根据权利要求1所述的方法,
其中,存储所述多个预先配置的报告格式包括:在建立用户输入反向信道(UIBC)之前存储所述多个预先配置的报告格式,并且
其中,所述一个或多个IP分组包括经由所述UIBC发送的UIBC消息,所述UIBC消息包括所述HIDC输入报告。
11.根据权利要求1所述的方法,其中,所述宿设备是无线显示(WD)宿,而所述源设备是无线显示(WD)源。
12.一种方法,包括:
从人工输入设备(HID)接收用户输入的指示;
基于所述用户输入来生成符合报告格式的HID命令(HIDC)输入报告;
向源设备发送一个或多个互联网协议(IP)分组,所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式;以及
从所述源设备接收媒体数据,所述媒体数据是基于所述用户输入。
13.根据权利要求12所述的方法,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
14.根据权利要求12所述的方法,其中,所述HID类型指示符包括数字标识符,所述数字标识符标识所述报告格式。
15.根据权利要求14所述的方法,其中,所述一个或多个IP分组包括消息,所述消息包括规定所述数字标识符的字段和包含所述HIDC输入报告的字段。
16.根据权利要求12所述的方法,其中,发送所述一个或多个IP分组包括:在无线通信网络上发送所述IP分组。
17.一种计算设备,包括一个或多个处理器,所述一个或多个处理器被配置为:
存储多个预先配置的报告格式,其中所述预先配置的报告格式中的每一个是与不同类型的人工输入设备(HID)相关联的;
从宿设备接收一个或多个互联网协议(IP)分组,所述一个或多个IP分组包括HID命令(HIDC)输入报告;
基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个;
基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入;
响应于所述用户输入,生成媒体数据;以及
从所述计算设备向所述宿设备发送所述媒体数据。
18.根据权利要求17所述的计算设备,其中,所述预先配置的报告格式包括架构。
19.根据权利要求17所述的计算设备,其中,所述计算设备在无线通信网络上接收所述一个或多个IP分组。
20.根据权利要求17所述的计算设备,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
21.根据权利要求17所述的计算设备,其中,所述数据包括数字标识符,所述数字标识符标识所述预先配置的报告格式中的一个。
22.根据权利要求21所述的计算设备,其中,所述一个或多个IP分组包括消息,所述消息包括规定所述数字标识符的字段和包含所述HIDC输入报告的字段。
23.根据权利要求17所述的计算设备,
其中,所述数据包括所述宿设备的IP地址,并且
其中,所述一个或多个处理器被配置为至少部分基于所述宿设备的IP地址来识别所述预先配置的报告格式中的一个。
24.根据权利要求23所述的计算设备,
其中,所述数据包括所述IP地址和源端口,并且
其中,所述一个或多个处理器被配置为至少部分基于所述宿设备的所述IP地址和所述源端口来识别所述预先配置的报告格式中的一个。
25.根据权利要求17所述的计算设备,其中,所述一个或多个处理器被配置为响应于从所述宿设备接收所述一个或多个IP分组,来确定所述一个或多个IP分组是否包括通用输入消息或所述HIDC输入报告,其中所述通用输入消息对于属于一类HID的HID是通用的。
26.根据权利要求17所述的计算设备,
其中,所述一个或多个处理器被配置为在建立用户输入反向信道(UIBC)之前存储所述多个预先配置的报告格式,并且
其中,所述一个或多个IP分组包括经由所述UIBC发送的UIBC消息,所述UIBC消息包括所述HIDC输入报告。
27.根据权利要求17所述的计算设备,其中,所述计算设备是无线显示(WD)源设备,所述宿设备是无线显示(WD)宿设备。
28.一种计算设备,包括一个或多个处理器,所述一个或多个处理器被配置为:
从人工输入设备(HID)接收用户输入的指示;
基于所述用户输入来生成符合报告格式的HID命令(HIDC)输入报告;
向源设备发送一个或多个互联网协议(IP)分组,所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式;以及
从所述源设备接收媒体数据,所述媒体数据是基于所述用户输入。
29.根据权利要求28所述的计算设备,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
30.根据权利要求28所述的计算设备,其中,所述HID类型指示符包括数字标识符,所述数字标识符标识所述报告格式。
31.根据权利要求30所述的计算设备,其中,所述一个或多个IP分组包括消息,所述消息包括规定所述数字标识符的字段和包含所述HIDC输入报告的字段。
32.根据权利要求28所述的计算设备,其中,发送所述一个或多个IP分组包括:在无线通信网络上发送所述一个或多个IP分组。
33.一种计算设备,包括:
用于存储多个预先配置的报告格式的模块,其中所述预先配置的报告格式中的每一个是与不同类型的人工输入设备(HID)相关联的;
用于从宿设备接收一个或多个互联网协议(IP)分组的模块,所述一个或多个IP分组包括HID命令(HIDC)输入报告;
用于基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个的模块;
用于基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入的模块;
用于响应于所述用户输入而生成媒体数据的模块;以及
用于从所述计算设备向所述宿设备发送所述媒体数据的模块。
34.根据权利要求33所述的计算设备,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
35.根据权利要求33所述的计算设备,其中,所述数据包括数字标识符,所述数字标识符标识所述预先配置的报告格式中的一个。
36.一种计算设备,包括:
用于从人工输入设备(HID)接收用户输入的指示的模块;
用于基于所述用户输入来生成符合报告格式的HID命令(HIDC)输入报告的模块;
用于向源设备发送一个或多个互联网协议(IP)分组的模块,所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识了所述报告格式;以及
用于从所述源设备接收媒体数据的模块,所述媒体数据是基于所述用户输入。
37.根据权利要求36所述的计算设备,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
38.根据权利要求36所述的计算设备,其中,所述HID类型指示符包括数字标识符,所述数字标识符标识所述预先配置的报告格式中的一个。
39.一种计算机程序产品,包括存储指令的一个或多个计算机可读存储介质,所述指令在被执行时将计算设备的一个或多个处理器配置为:
在所述计算设备处存储多个预先配置的报告格式,其中所述预先配置的报告格式中的每一个是与不同类型的人工输入设备(HID)相关联的;
从宿设备接收一个或多个互联网协议(IP)分组,所述一个或多个IP分组包括HID命令(HIDC)输入报告;
基于在所述一个或多个IP分组中的数据来识别所述预先配置的报告格式中的一个;
基于所识别的预先配置的报告格式来解析所述HIDC输入报告以便确定用户输入;
响应于所述用户输入,生成媒体数据;以及
从所述源设备向所述宿设备发送所述媒体数据。
40.根据权利要求39所述的计算机程序产品,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
41.根据权利要求39所述的计算机程序产品,其中,所述数据包括数字标识符,所述数字标识符标识所述预先配置的报告格式中的一个。
42.一种计算机程序产品,包括存储指令的一个或多个计算机可读存储介质,所述指令在被执行时将计算设备的一个或多个处理器配置为:
从人工输入设备(HID)接收用户输入的指示;
基于所述用户输入来生成符合报告格式的HID命令(HIDC)输入报告;
向源设备发送一个或多个互联网协议(IP)分组,所述IP分组包括所述HIDC输入报告和HID类型指示符,所述HID类型指示符标识所述报告格式;以及
从所述源设备接收媒体数据,所述媒体数据是基于所述用户输入。
43.根据权利要求42所述的计算机程序产品,其中,所述HIDC输入报告符合通用串行总线(USB)标准或蓝牙标准。
44.根据权利要求42所述的计算机程序产品,其中,所述HID类型指示符包括数字标识符,所述数字标识符标识所述预先配置的报告格式中的一个。
CN201280045535.XA 2011-09-19 2012-09-19 通过互联网协议发送人工输入设备命令 Expired - Fee Related CN103814561B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161536393P 2011-09-19 2011-09-19
US61/536,393 2011-09-19
US201261583254P 2012-01-05 2012-01-05
US61/583,254 2012-01-05
US13/612,210 2012-09-12
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 (2)

Publication Number Publication Date
CN103814561A true CN103814561A (zh) 2014-05-21
CN103814561B CN103814561B (zh) 2017-03-01

Family

ID=46970438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280045535.XA Expired - Fee Related CN103814561B (zh) 2011-09-19 2012-09-19 通过互联网协议发送人工输入设备命令

Country Status (8)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106471753A (zh) * 2014-06-27 2017-03-01 X开发有限责任公司 使用反向散射通信从移动设备流式传输显示数据
CN109086088A (zh) * 2018-08-15 2018-12-25 南昌华勤电子科技有限公司 一种实现多输入设备协同工作的设置方法及装置
CN111569417A (zh) * 2020-04-30 2020-08-25 北京视博云信息技术有限公司 一种云游戏的外设数据传输方法及系统
CN113647115A (zh) * 2019-04-08 2021-11-12 索尼集团公司 装置、计算机程序和方法
CN115396520A (zh) * 2021-05-19 2022-11-25 华为技术有限公司 控制方法、装置、电子设备及可读存储介质
TWI796059B (zh) * 2021-12-23 2023-03-11 致伸科技股份有限公司 一種動態調整資料傳輸格式之方法與運用該方法之無線周邊裝置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2417391B (en) 2004-08-18 2007-04-18 Wecomm Ltd Transmitting data over a network
US9621473B2 (en) 2004-08-18 2017-04-11 Open Text Sa Ulc Method and system for sending data
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
US20130013318A1 (en) 2011-01-21 2013-01-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
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
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
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 深圳市腾讯网络信息技术有限公司 检测虚拟机环境的方法及装置
CN110704340B (zh) * 2019-09-26 2022-02-11 支付宝(杭州)信息技术有限公司 数据传输设备、系统和方法
KR102664915B1 (ko) * 2021-12-06 2024-05-17 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263392B1 (en) * 1999-01-04 2001-07-17 Mccauley Jack J. Method and apparatus for interfacing multiple peripheral devices to a host computer
US20090305789A1 (en) * 2008-06-05 2009-12-10 Sony Computer Entertainment Inc. Mobile phone game interface
WO2010126727A2 (en) * 2009-05-01 2010-11-04 Apple Inc. Directional touch remote

Family Cites Families (77)

* 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
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
KR102402377B1 (ko) * 2005-03-04 2022-05-25 애플 인크. 다기능 휴대용 장치
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接口的智能卡读写器及其控制方法
JP4741666B2 (ja) * 2006-06-16 2011-08-03 パイオニア株式会社 コンテンツ配信システム、コンテンツ取得処理装置、代替配信装置、コンテンツ配信方法、コンテンツ取得処理方法、代替配信方法、コンテンツ配信プログラム、コンテンツ取得処理プログラム、および、代替配信プログラム
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
US8599194B2 (en) * 2007-01-22 2013-12-03 Textron Innovations 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
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
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
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
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
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
KR101742578B1 (ko) * 2011-01-14 2017-06-01 삼성전자주식회사 컨텐츠 관리 방법 및 이를 적용한 디스플레이 장치
EP2664994B1 (en) * 2011-01-14 2021-06-30 Samsung Electronics Co., Ltd. Method and apparatus for transmitting user input from a sink device to a source device in a wi-fi direct communication system
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
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
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
US9413803B2 (en) * 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US8964783B2 (en) * 2011-01-21 2015-02-24 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
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
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
US8914187B2 (en) * 2012-01-06 2014-12-16 Qualcomm Incorporated Vehicle dashboard wireless display system
US8832328B2 (en) * 2012-03-13 2014-09-09 Qualcomm Incorporated Data redirection for universal serial bus devices
US20130311694A1 (en) * 2012-05-21 2013-11-21 Qualcomm Incorporated Devices and methods for facilitating direct pairing in a wireless docking system
US9749038B2 (en) * 2012-05-21 2017-08-29 Qualcomm Incorporated System and method for wireless docking utilizing a wireless docking profile
US9094807B2 (en) * 2012-05-23 2015-07-28 Qualcomm Incorporated Methods and apparatus for providing an incentivized cooperative system for accessing radio access networks
US9107027B2 (en) * 2012-08-23 2015-08-11 Intel Corporation Wireless connector

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263392B1 (en) * 1999-01-04 2001-07-17 Mccauley Jack J. Method and apparatus for interfacing multiple peripheral devices to a host computer
US20090305789A1 (en) * 2008-06-05 2009-12-10 Sony Computer Entertainment Inc. Mobile phone game interface
WO2010126727A2 (en) * 2009-05-01 2010-11-04 Apple Inc. Directional touch remote

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MCGOWAN: "《Universal Serial Bus(USB)-Device Class Definition for Human Interface Devices(HID)》", 27 June 2001, article "Device Class Definition for Human Interface Devices(HID)" *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106471753A (zh) * 2014-06-27 2017-03-01 X开发有限责任公司 使用反向散射通信从移动设备流式传输显示数据
CN106471753B (zh) * 2014-06-27 2019-06-04 X开发有限责任公司 从移动设备无线流式传输显示数据的方法、机器可访问存储介质和基站
CN109086088A (zh) * 2018-08-15 2018-12-25 南昌华勤电子科技有限公司 一种实现多输入设备协同工作的设置方法及装置
CN113647115A (zh) * 2019-04-08 2021-11-12 索尼集团公司 装置、计算机程序和方法
CN113647115B (zh) * 2019-04-08 2024-01-30 索尼集团公司 监测网络的装置、方法以及计算机可读存储介质
CN111569417A (zh) * 2020-04-30 2020-08-25 北京视博云信息技术有限公司 一种云游戏的外设数据传输方法及系统
CN115396520A (zh) * 2021-05-19 2022-11-25 华为技术有限公司 控制方法、装置、电子设备及可读存储介质
TWI796059B (zh) * 2021-12-23 2023-03-11 致伸科技股份有限公司 一種動態調整資料傳輸格式之方法與運用該方法之無線周邊裝置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN103814561A (zh) 通过互联网协议发送人工输入设备命令
CN105027531B (zh) 针对无线显示设备的用户输入控制的无连接传输的方法、装置和计算机可读存储介质
US10382494B2 (en) User input back channel for wireless displays
RU2567378C2 (ru) Обратный канал пользовательского ввода для беспроводных дисплеев
US9413803B2 (en) User input back channel for wireless displays
US9065876B2 (en) User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US10135900B2 (en) User input back channel for wireless displays
US8964783B2 (en) User input back channel for wireless displays
US20130003624A1 (en) User input back channel for wireless displays
RU2577184C2 (ru) Обратный канал ввода данных пользователем для беспроводных дисплеев

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170301

Termination date: 20190919

CF01 Termination of patent right due to non-payment of annual fee