JP5908592B2 - インターネットプロトコルを介したヒューマン入力デバイスコマンドの送信 - Google Patents

インターネットプロトコルを介したヒューマン入力デバイスコマンドの送信 Download PDF

Info

Publication number
JP5908592B2
JP5908592B2 JP2014531924A JP2014531924A JP5908592B2 JP 5908592 B2 JP5908592 B2 JP 5908592B2 JP 2014531924 A JP2014531924 A JP 2014531924A JP 2014531924 A JP2014531924 A JP 2014531924A JP 5908592 B2 JP5908592 B2 JP 5908592B2
Authority
JP
Japan
Prior art keywords
input
report
hid
uibc
hidc
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.)
Expired - Fee Related
Application number
JP2014531924A
Other languages
English (en)
Other versions
JP2014532218A (ja
Inventor
フローリシェル、ジェフ・エス.
ファン、シャオロン
ラビーンドラン、ビジャヤラクシュミ・アール.
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 JP2014532218A publication Critical patent/JP2014532218A/ja
Application granted granted Critical
Publication of JP5908592B2 publication Critical patent/JP5908592B2/ja
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)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • 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)

Description

本出願は、2011年9月19日に出願された米国特許仮出願第61/536,393号、および2012年1月5日に出願された米国特許仮出願第61/583,254号の利益を主張するものであり、両仮出願の内容全体が参照により本明細書に組み込まれる。
本開示は、メディアデータの移送および再生に関する。
ワイヤレスディスプレイ(WD)システムは、ソースデバイスと1つまたは複数のシンクデバイスとを含む。ソースデバイスは、「アプリケーションサーバ」と呼ばれることもある。ソースデバイスは、ワイヤレスローカルエリアネットワーク内でメディアコンテンツを送信することが可能であるデバイスであり得る。シンクデバイスは、メディアコンテンツを受信およびレンダリングすることが可能であるデバイスであり得る。シンクデバイスは、「ディスプレイクライアント」と呼ばれることもある。ソースデバイスおよびシンクデバイスは、モバイルデバイスまたはワイヤードデバイスのいずれかであり得る。たとえば、モバイルデバイスとして、ソースデバイスおよびシンクデバイスは、携帯電話、タブレットコンピュータ、ラップトップまたは他のポータブルコンピュータ、ワイヤレス通信カードを有するポータブルコンピュータ、携帯情報端末(PDA)、ポータブルメディアプレーヤ、カメラもしくはカムコーダのようなデジタル画像キャプチャデバイス、あるいは、いわゆる「スマート」フォンおよび「スマート」パッドもしくはタブレット、または他のタイプのワイヤレス通信デバイスを含む、ワイヤレス通信機能を有する他のデバイスを備え得る。たとえば、ワイヤードデバイスとして、ソースデバイスおよびシンクデバイスは、テレビ、デスクトップコンピュータ、モニタ、プロジェクタ、プリンタ、音声増幅器、セットトップボックス、ゲーム機、ルータ、デジタルビデオディスク(DVD)プレーヤ、およびメディアサーバを備え得る。
ソースデバイスは、特定のメディアシェアセッションに参加している1つまたは複数のシンクデバイスにオーディオビデオ(AV)データのようなメディアデータを送り得る。メディアデータは、ソースデバイスのローカルディスプレイと、シンクデバイスの各々のディスプレイとの両方において再生され得る。より具体的には、参加しているシンクデバイスの各々は、受信されたメディアデータを、そのスクリーンおよびオーディオ機器上で提示するためにレンダリングし得る。場合によっては、シンクデバイスのユーザは、タッチ入力および遠隔制御入力のようなユーザ入力をシンクデバイスに与え得る。
一例において、ワイヤレスディスプレイ(WD)システム内のソースデバイスは、複数の事前構成された報告フォーマット(report format)を記憶する。事前構成された報告フォーマットの各々は、異なるタイプのヒューマン入力デバイス(HID:human input device)に関連付けられ得る。ソースデバイスは、WDシステム内のシンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケットを受信し得る。1つまたは複数のIPパケットは、HIDコマンド(HIDC)入力報告を含み得る。ソースデバイスは、1つまたは複数のIPパケット内のデータに基づいて、事前構成された報告フォーマットのうちの1つを識別し得、ユーザ入力を確定するために識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースし得る。ソースデバイスは、その後、ユーザ入力に基づいてメディアデータを生成し得、メディアデータをシンクデバイスに送り得る。
一例において、本開示は、ソースデバイスにおいて、複数の事前構成された報告フォーマットを記憶することを備える方法を説明する。事前構成された報告フォーマットの各々は、異なるタイプのHIDに関連付けられる。加えて、方法は、ソースデバイスにおいて、シンクデバイスから1つまたは複数のIPパケットを受信することを備える。1つまたは複数のIPパケットは、HIDC入力報告を備える。方法は、1つまたは複数のIPパケット内のデータに基づいて、事前構成された報告フォーマットのうちの1つを識別することをも備える。加えて、方法は、ユーザ入力を確定するために、識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースすることを備える。さらに、方法は、ユーザ入力に応答してメディアデータを生成することを備える。方法は、メディアデータをソースデバイスからシンクデバイスに送ることをも備える。
別の例において、本開示は、HIDからユーザ入力の指示を受信することを備える方法を説明する。方法は、ユーザ入力に基づいて、報告フォーマットに準拠するHIDC入力報告を生成することをも備える。加えて、方法は、1つまたは複数のIPパケットをソースデバイスに送ることを備える。IPパケットは、HIDC入力報告と、報告フォーマットを識別するHIDタイプ指示子とを備える。さらに、方法は、ソースデバイスからメディアデータを受信することを備え、メディアデータはユーザ入力に基づく。
別の例において、本開示は、複数の事前構成された報告フォーマットを記憶するように構成されている1つまたは複数のプロセッサを備えるコンピューティングデバイスを説明する。事前構成された報告フォーマットの各々は、異なるタイプのHIDに関連付けられる。1つまたは複数のプロセッサは、シンクデバイスからIPパケットを受信するようにも構成されている。1つまたは複数のIPパケットは、HIDC入力報告を備える。加えて、1つまたは複数のプロセッサは、1つまたは複数のIPパケット内のデータに基づいて、事前構成された報告フォーマットのうちの1つを識別するように構成されている。1つまたは複数のプロセッサは、ユーザ入力を確定するために、識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースするようにも構成されている。加えて、1つまたは複数のプロセッサは、ユーザ入力に応答してメディアデータを再生するように構成されている。1つまたは複数のプロセッサは、コンピューティングデバイスからシンクデバイスにメディアデータを送るようにも構成されている。
別の例において、本開示は、HIDからユーザ入力の指示を受信するように構成されている1つまたは複数のプロセッサを備えるコンピューティングデバイスを説明する。1つまたは複数のプロセッサは、ユーザ入力に基づいて、報告フォーマットに準拠するHIDC入力報告を生成するようにも構成されている。加えて、1つまたは複数のプロセッサは、1つまたは複数のIPパケットをソースデバイスに送るように構成されている。IPパケットは、HIDC入力報告と、報告フォーマットを識別するHIDタイプ指示子とを備える。さらに、1つまたは複数のプロセッサは、ソースデバイスからメディアデータを受信するように構成されており、メディアデータはユーザ入力に基づく。
別の例において、本開示は、複数の事前構成された報告フォーマットを記憶するための手段を備えるコンピューティングデバイスを説明する。事前構成された報告フォーマットの各々は、異なるタイプのHIDに関連付けられる。加えて、コンピューティングデバイスは、シンクデバイスから1つまたは複数のIPパケットを受信するための手段を備える。1つまたは複数のIPパケットは、HIDC入力報告を備える。さらに、コンピューティングデバイスは、1つまたは複数のIPパケット内のデータに基づいて、事前構成された報告フォーマットのうちの1つを識別するための手段を備える。コンピューティングデバイスは、ユーザ入力を確定するために、識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースするための手段をも備える。加えて、コンピューティングデバイスは、ユーザ入力に応答してメディアデータを再生するための手段を備える。コンピューティングデバイスは、メディアデータをコンピューティングデバイスからシンクデバイスに送るための手段をも備える。
別の例において、本開示は、HIDからユーザ入力の指示を受信するための手段を備えるコンピューティングデバイスを説明する。コンピューティングデバイスは、ユーザ入力に基づいて、報告フォーマットに準拠するHIDC入力報告を生成するための手段をも備える。加えて、コンピューティングデバイスは、1つまたは複数のIPパケットをソースデバイスに送るための手段を備える。IPパケットは、HIDC入力報告と、報告フォーマットを識別するHIDタイプ指示子とを備える。さらに、コンピューティングデバイスは、ソースデバイスからメディアデータを受信するための手段を備え、メディアデータはユーザ入力に基づく。
別の例において、本開示は、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサを、コンピューティングデバイスにおいて、複数の事前構成された報告フォーマットを記憶するように構成する命令を記憶する1つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品を説明する。事前構成された報告フォーマットの各々は、異なるタイプのHIDに関連付けられる。命令は、1つまたは複数のプロセッサを、シンクデバイスからIPパケットを受信するようにも構成する。1つまたは複数のIPパケットは、HIDC入力報告を備える。加えて、命令は、1つまたは複数のプロセッサを、1つまたは複数のIPパケット内のデータに基づいて、事前構成された報告フォーマットのうちの1つを識別するように構成する。さらに、命令は、1つまたは複数のプロセッサを、ユーザ入力を確定するために、識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースするように構成する。命令は、1つまたは複数のプロセッサを、ユーザ入力に応答してメディアデータを生成するようにも構成する。加えて、命令は、1つまたは複数のプロセッサを、ソースデバイスからシンクデバイスにメディアデータを送るように構成する。
別の例において、本開示は、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサを、HIDからユーザ入力の指示を受信するように構成する命令を記憶する1つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品を説明する。さらに、命令は、1つまたは複数のプロセッサを、ユーザ入力に基づいて、報告フォーマットに準拠するHIDC入力報告を生成するように構成する。加えて、命令は、1つまたは複数のプロセッサを、1つまたは複数のIPパケットをソースデバイスに送るように構成する。IPパケットは、HIDC入力報告と、報告フォーマットを識別するHIDタイプ指示子とを備える。命令は、1つまたは複数のプロセッサを、ソースデバイスからメディアデータを受信するようにも構成し、メディアデータはユーザ入力に基づく。
本開示の1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
ソースデバイスとシンクデバイスとを含むワイヤレス通信システムを示すブロック図。 本開示の1つまたは複数の技法による、ソースデバイスによって実行される一例の動作を示す流れ図。 本開示の1つまたは複数の技法による、シンクデバイスによって実行される一例の動作を示す流れ図。 本開示の1つまたは複数の技法による、シンクデバイスによって実行される別の例の動作を示す流れ図。 本開示の1つまたは複数の技法による、ソースデバイスによって実行される別の例の動作を示す流れ図。 UIBCメッセージの一例のフォーマットを示す概念図。 汎用入力メッセージ(generic input message)のためにユーザ入力バックチャネル(UIBC:User Input Back Channel)をネゴシエートするためのソースデバイスとシンクデバイスとの間の一例の対話を示す通信図。 ヒューマン入力デバイスコマンド(HIDC)入力報告のためにUIBCをネゴシエートするためのソースデバイスとシンクデバイスとの間の一例の対話を示す通信図。
概して、本開示は、ワイヤレスディスプレイ(WD)システム内でユーザ入力をハンドリングするための技法を説明する。WDシステムは、少なくとも2つのコンピューティングデバイスを含む。コンピューティングデバイスのうちの一方はメディアソースとしての役割を果たし、コンピューティングデバイスのうちのもう一方はメディアシンクとしての役割を果たす。メディアソースとしての役割を果たすコンピューティングデバイス(すなわち、ソースデバイス)は、符号化メディアデータを、ワイヤレスチャネルを介して、メディアシンクとしての役割を果たすコンピューティングデバイス(すなわち、シンクデバイス)に送信し得る。シンクデバイスは、符号化ビデオデータを復号して、復号されたビデオデータを表示画面上に表示し得る。
さらに、WDシステムにおいて、シンクデバイスは、マウス、デジタルペンまたはスタイラス、キーボード、およびタッチスクリーンのようなヒューマン入力デバイス(HID)からユーザ入力を受信し得る。シンクデバイスは、入力メッセージをソースデバイスに送信し得る。入力メッセージは、シンクデバイスによって受け取られたユーザ入力を記述する。入力メッセージが受信されると、ソースデバイスは、入力メッセージによって記述されているユーザ入力を処理して、ユーザ入力に応答してメディアデータを生成し得る。その後、ソースデバイスはこのメディアデータをシンクデバイスに送り得る。
シンクデバイスは様々なタイプの入力メッセージを生成および送信し得る。たとえば、ソースデバイスとシンクデバイスとの間のセッションをセットアップしている間、シンクデバイスは、ソースデバイスに、シンクデバイスに接続されている1つまたは複数のHIDを示し得る。セッションのセットアップ後、シンクデバイスは、様々なクラスのHIDからのユーザ入力を記述する汎用入力メッセージを生成および送信し得る。シンクデバイスが特定のHIDからユーザ入力の指示を受信すると、シンクデバイスは、その特定のHIDが特定のHIDクラスに属すると判定し得る。種々のHIDクラスが種々の報告フォーマットに関連付けられ得る。HIDのクラスは、Wi−Fiディスプレイ(WFD)規格のような規格によって定義され得る。HIDのあるクラスに関連付けられる報告フォーマットは、そのHIDクラス内のHIDによって受け取られるユーザ入力を記述する汎用入力メッセージのフォーマットを指定し得る。特定のHIDが特定のHIDクラスに属するとシンクデバイスが判定した後、シンクデバイスは、特定のHIDクラスに関連付けられる報告フォーマットに準拠する汎用入力メッセージを生成し得る。このように、汎用入力メッセージの報告フォーマットは、特定のHIDクラスに属する任意のHIDに対して汎用的であり得る。ソースデバイスは、汎用入力メッセージを解読するように事前構成され得る。
汎用入力メッセージの生成および送信に加えて、シンクデバイスは、ヒューマン入力デバイスコマンド(HIDC)入力報告を生成および送信し得る。シンクデバイスが、特定のHIDによって検出されたユーザ入力の指示を受信すると、シンクデバイス上で作動しているドライバが、ユーザ入力を記述するHIDC入力報告を生成し得る。HIDC入力報告の報告フォーマットは、特定のHIDに特有であり得、その特定のHIDが属するHIDクラスに対して必ずしも包括的である必要はない。たとえば、2つの異なるタイプのマウスによって検出されるユーザ入力を記述するHIDC入力報告に対しては異なる報告フォーマットがあり得る。HIDC入力報告の報告フォーマットは、ユニバーサルシリアルバス(USB)またはBluetooth(登録商標)規格のような様々なHIDC規格に準拠し得る。
HIDC入力報告の生成および送信は、汎用入力メッセージの生成および送信にまさる一定の利点を有し得る。たとえば、特定のHIDクラス内の特定のHIDは、特定のHIDクラスに関連付けられる汎用報告フォーマットを使用して記述することができないユーザ入力を受信することが可能であり得る。この例においては、HIDC入力報告が、そのようなユーザ入力を記述することが可能であり得る。さらに、シンクデバイスが汎用入力メッセージを生成すること、および、ソースデバイスが汎用入力メッセージをパースすることは、HIDC入力報告よりも複雑であり得る。このように、HIDC入力報告を使用することが、ソースデバイスおよびシンクデバイスが処理資源および電気エネルギーをやり取りするのに役立ち得る。
本開示の技法によれば、ソースデバイスは、複数の事前構成された報告フォーマットを記憶し得る。事前構成された報告フォーマットの各々は、異なるタイプのヒューマン入力デバイス(HID)に関連付けられる。ソースデバイスは、シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケットを受信し得る。1つまたは複数のIPパケットは、USBまたはBluetoothに準拠した入力報告のような、HIDC入力報告を備え得る。さらに、いくつかの例において、ソースデバイスは、ワイヤレス通信ネットワークを介して1つまたは複数のIPパケットを受信し得る。方法は、1つまたは複数のIPパケット内のデータに基づいて、事前構成された報告フォーマットのうちの1つを識別することを備え得る。ソースデバイスは、ユーザ入力を確定するために、識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースし得る。ソースデバイスは、その後、ユーザ入力に応答してメディアデータを生成し、メディアデータをソースデバイスからシンクデバイスに送り得る。
図1は、本開示の1つまたは複数の技法が実装され得るワイヤレスディスプレイ(WD)システム10の一例を示すブロック図である。図1およびそれ以降の図面は、説明を目的に与えられており、本開示において広く例示され説明される技法を限定するものと見なされるべきではない。
図1の例において、WDシステム10は、ソースデバイス20とシンクデバイス60とを含み得る。ソースデバイス20は、ワイヤレスチャネル50を介してシンクデバイス60と通信し得る。図1の例において、ソースデバイス20は、少なくとも1つのアプリケーション22と、オペレーティングシステム(OS)24と、送信機/受信機(TX/RX)ユニット26と、複数の報告フォーマット28と、WDセッションマネージャ30と、ユーザ入力バックチャネル(UIBC)モジュール32とを含む。ソースデバイス20のOS24は、IPスタック34を含み得る。シンクデバイス60は、送信機/受信機ユニット(TX/RX)62と、メディアデコーダ64と、少なくとも1つの出力デバイス66と、WDセッションマネージャ68と、少なくとも1つのヒューマン入力デバイス(HID)70と、少なくとも1つのHIDドライバ72と、UIBCモジュール74と、オペレーティングシステム(OS)76とを含み得る。OS76は、IPスタック78を含み得る。図示した構成要素は、WDシステム10の一例の構成を成すにすぎない。他の構成は、図示した構成要素よりも少数の構成要素を含んでもよいか、または図示した構成要素に加えてそれ以外の構成要素を含んでもよい。たとえば、ソースデバイス20は、ディスプレイおよびスピーカのような、1つまたは複数の出力デバイスを含んでもよい。
ソースデバイス20およびシンクデバイス60の構成要素は様々な方法で実装され得る。たとえば、ソースデバイス20およびシンクデバイス60の1つまたは複数の構成要素は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装され得る。1つまたは複数の態様がソフトウェアにおいて実装される例において、基礎となるハードウェア(たとえば、プログラム可能プロセッサの形態のもの)がソフトウェアを実行し得る。したがって、ソースデバイス20およびシンクデバイス60の各々は、本開示の技法のうちの1つまたは複数を実行するように構成された専用の機械を備え得る。
オペレーティングシステム24は、ソースデバイス20のコンピュータハードウェアを管理し得、ソースデバイス20上で作動するコンピュータプログラムに共通のサービスを提供し得る。同様に、オペレーティングシステム76は、シンクデバイス60のコンピュータハードウェアを管理し得、シンクデバイス60上で作動するコンピュータプログラムに共通のサービスを提供し得る。いくつかの例において、OS24および/またはOS76は、ANDROID(登録商標)オペレーティングシステム、WINDOWS(登録商標)オペレーティングシステム、iOS(登録商標)オペレーティングシステム、または他のブランドのオペレーティングシステムを備え得る。
WDセッションマネージャ30およびWDセッションマネージャ68は、それぞれソースデバイス20およびシンクデバイス60上で作動する1つまたは複数のコンピュータプログラムを備え得る。WDセッションマネージャ30およびWDセッションマネージャ68は、ワイヤレスチャネル50を介したWDセッションを確立するために、それぞれOS24およびOS76によって提供されるサービスを使用し得る。WDセッションマネージャ30およびWDセッションマネージャ68がWDセッションを確立すると、WDセッションマネージャ68およびWDセッションマネージャ68は、たとえば、リアルタイムストリーミングプロトコル(RTSP)制御メッセージを使用して機能ネゴシエーションを実行し得る。一例において、WDセッションを確立するための要求が、WDセッションマネージャ30によってシンクデバイス60に送られ得る。WDセッションが確立されると、ソースデバイス20は、メディアデータ、たとえば、オーディオ/ビデオ(AV)データをシンクデバイス60に送信し得る。ソースデバイス20は、たとえば、リアルタイム転送プロトコル(RTP)を使用してメディアデータをシンクデバイス60に送信し得る。シンクデバイス60は、受信されたメディアデータをそのディスプレイおよびオーディオ機器上でレンダリングし得る。
UIBCモジュール32およびUIBCモジュール74は、それぞれソースデバイス20およびシンクデバイス60上で作動するコンピュータプログラムを備え得る。UIBCモジュール32およびUIBCモジュール74は、UIBCメッセージをシンクデバイス60からソースデバイス20に送るために、それぞれOS24およびOS76によって提供されるサービスを使用し得る。UIBCメッセージは、汎用入力メッセージおよび/またはHIDC入力報告を含み得る。
アプリケーション22は、ソースデバイス20上で作動する1つまたは複数のコンピュータプログラムを備え得る。アプリケーション22は、符号化メディアデータを出力し得る。メディアデータは、オーディオデータおよび/またはビデオデータを含み得る。いくつかの例では、ソースデバイス20は、ソースデバイス20のカメラおよび/またはマイクロフォンを介してリアルタイムでメディアデータをキャプチャし得る。他の例では、メディアデータは、動画、テレビ番組、または音楽のような事前記録されたメディアデータであってもよい。いくつかの事例では、メディアデータは、ユーザ入力オプションが画像上にオーバーレイされている動画またはTV番組の画像のような、異なるタイプのコンテンツの組合せである画像を含んでもよい。いくつかの例において、アプリケーション22は、すでに符号化メディアデータを再符号化してもよい。言い換えれば、アプリケーション22はメディアデータをトランスコードしてもよい。
アプリケーション22は、OS24に、符号化メディアデータをシンクデバイス60に送信するよう命令し得る。OS24は、符号化メディアデータをワイヤレスチャネル50を介してシンクデバイス60に送信するためにTX/RXユニット26を使用し得る。シンクデバイス60のTX/RXユニット62が符号化メディアデータを受信し得る。メディアデコーダ64は、符号化メディアデータを復号して、出力デバイス66上で提示するために復号されたメディアデータを出力し得る。
アプリケーション22およびメディアデコーダ64は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格、または新生の高効率ビデオコーディング(HEVC:high efficiency video coding)規格のような、様々なオーディオおよびビデオ圧縮規格を実装するエンコーダ/デコーダ(CODEC)ユニットを含み得る。多くの他のタイプのプロプライエタリなまたは規格化された圧縮技法も使用され得る。一般的に言って、メディアデコーダ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を介した1人または複数人の観賞者への提示のためにオーディオおよびビデオデータを配信し得る。
TX/RXユニット32およびTX/RXユニット62は、各々、様々なミキサ、フィルタ、増幅器、および信号変調のために設計された他の構成要素、ならびに、1つまたは複数のアンテナ、およびデータを送信し、受信するために設計された他の構成要素を含み得る。ワイヤレスチャネル50は、オーディオ/ビデオデータ、制御データおよびフィードバックをソースデバイス20とシンクデバイス60との間で送信するのに好適な任意の通信媒体、または種々の通信媒体の集合体を表し得る。ワイヤレスチャネル50は、ワイヤレス通信ネットワークを備え得る。ワイヤレスチャネル50は、相対的に短距離の通信チャネルであり得、2.4GHz、3.6GHz、5GHz、60GHzまたは超広帯域(UWB)周波数帯構造を使用して実装される、Wi−Fi、Bluetoothなどと同様の物理チャネル構造を実装し得る。ただし、ワイヤレスチャネル50は、この点において必ずしも限定されるとは限らず、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路のような任意のワイヤレス通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備えてもよい。他の例では、ワイヤレスチャネル50は、ワイヤードもしくはワイヤレスローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成してもよい。加えて、ワイヤレスチャネル50は、ピアツーピアリンクを作成するためにソースデバイス20およびシンクデバイス60によって使用されてもよい。
ソースデバイス20およびシンクデバイス60は、IEEE802.11規格ファミリーからの規格などの通信プロトコルを使用してワイヤレスチャネル50を介して通信し得る。一例において、ワイヤレスチャネル50は、ネットワーク通信チャネルであってもよい。この例では、通信サービス提供者が、基地局をネットワークハブとして使用して、ネットワークを集中的に運営および管理し得る。ソースデバイス20およびシンクデバイス60は、たとえば、ソースデバイス20およびシンクデバイス60が、ワイヤレスアクセスポイントまたはいわゆるホットスポットのような、中間物を使用せずに互いと直接通信するように、Wi−Fi DirectまたはWi−Fiディスプレイ(WFD)規格に従って通信し得る。このコンテキストでは、相対的に短い距離は、たとえば、約70メートル未満を指すことがあるが、雑音の多いまたは遮るもののある環境では、デバイス間の距離は、約35メートル未満、または約20メートル未満のように、さらに短いことがある。
本開示の技法について時折WFDに関して説明することがあるが、これらの技法の態様は他の通信プロトコルにも適合し得ることが企図される。限定ではなく例として、ソースデバイス20とシンクデバイス60との間のワイヤレス通信は直交周波数分割多重化(OFDM)技法を利用し得る。限定はしないが、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、符号分割多元接続(CDMA)、またはOFDM、FDMA、TDMAおよび/もしくはCDMAの任意の組合せを含む、多種多様な他のワイヤレス通信技法も使用され得る。
図1の例に示すように、シンクデバイス60は、少なくとも1つのHID70に動作可能に結合され得る。HIDのタイプの例は、限定はしないが、キーボード、マウス、ジョイスティック、タッチスクリーン、トラックボール、タッチセンサ式表面、キーパッド、ボタン、ビデオゲームコントローラ、遠隔制御装置、デジタルペンまたはスタイラス、ジェスチャ応答式入力デバイスまたはカメラ、および、ユーザ入力をコンピュータに与えるために人間が使用することができる他のタイプのデバイスを含み得る。HID70はHIDドライバ72に関連付けられ得る。人間がHID70を使用してユーザ入力を与えると、HIDドライバ72は、HID70から信号を受信し得、入力報告を生成し得る。入力報告は、HID70によって受信された入力を記述し得る。たとえば、HID70がマウスである場合、入力報告は、マウスが5位置左に動かされ、10位置上に動かされたと示し得る。いくつかの例において、HIDドライバ72によって生成される入力報告は、USBまたはBluetooth規格に準拠する。
HIDドライバ72が入力報告を生成すると、HIDドライバ72は入力報告をシンクデバイス60のOS76に与え得る。入力報告が受信されるのに応答して、OS76は、HID70に関連付けられる入力イベントを受信するために、OS76に登録しているコンピュータプログラムを識別し得る。OS76は、その後、入力イベントを識別されたコンピュータプログラムに与え得る。入力イベントは、HID70によって受信されるユーザ入力を記述するデータを含むデータオブジェクト(たとえば、オブジェクト指向プログラミング言語オブジェクト)であり得る。いくつかの例において、入力イベントは、OS76がHID72によって生成された入力報告に基づいて生成する汎用入力メッセージを含み得る。他の例においては、入力イベントは、HID72によって生成された入力報告に一致するHIDC入力報告を含み得る。
非WDシステムにおいては、識別されたコンピュータプログラムが、入力イベントを処理して、入力イベントによって記述されるユーザ入力に基づいて、出力デバイス66においてデータを出力し得る。しかしながら、WDシステム10においては、シンクデバイス60は、入力報告を処理する役割を担っていないものであり得る。そうではなく、ソースデバイス20が入力報告を処理する役割を担い得る。
したがって、UIBCモジュール74が、HID70に関連付けられる入力イベントを受信するためにOS76に登録し得る。UIBC74がOS76から入力イベントを受信すると、UIBCモジュール74は、入力イベントに基づく入力メッセージを含むUIBCメッセージを生成し得る。UIBCモジュール74は、その後、UIBCメッセージを、シンクデバイス60からワイヤレスチャネル50を介してソースデバイス20に送るために、OS76によって提供される1つまたは複数のサービスを使用し得る。いくつかの例において、OS76のIPスタック78が、UIBCメッセージをパッケージして、ワイヤレスチャネル50を介してソースデバイス20に送信するためのIPパケットにし得る。このように、シンクデバイス60は、HID70からのユーザ入力の指示を受信し得る。ユーザ入力の指示が受信されるのに応答して、HIDドライバ72は、ユーザ入力に基づいて、報告フォーマットに準拠する入力報告を生成し得る。シンクデバイス60は、ワイヤレスチャネル50を介してソースデバイス20にIPパケットを送り得る。IPパケットは、入力報告に基づく入力メッセージを含み得る。
ソースデバイス20のTX/RXユニット26が、UIBCメッセージを含む1つまたは複数のIPパケットを受信すると、TX/RXユニット26は、1つまたは複数のIPパケットを、ソースデバイス20のOS24に与え得る。OS24のIPスタック34が、その後、1つまたは複数のIPパケットからUIBCメッセージを取り出し得る。OS24は、その後、UIBCメッセージを受信するために登録している、ソースデバイス20上で作動しているプロセスを(たとえば、1つまたは複数のIPパケットによって指定されるポート番号に基づいて)識別し得る。図1の例においては、UIBCモジュール32が、UIBCメッセージを受信するために登録している。したがって、OS24は、UIBCメッセージをUIBCモジュール32に与え得る。
UIBCメッセージが受信されると、UIBCモジュール32は、UIBCメッセージの内容を確定するためにUIBCメッセージをパースし得る。UIBCメッセージが入力メッセージを含む場合、UIBCモジュール32は入力メッセージをパースして、入力メッセージに基づいて入力イベントを生成し得る。入力イベントは、入力メッセージに基づくデータを指定するデータオブジェクト(たとえば、オブジェクト指向プログラミング言語オブジェクト)を備え得る。UIBCモジュール32が入力イベントを生成すると、OS24は、入力イベントを受信するために登録している、ソースデバイス20上で作動している1つまたは複数のプロセスを識別し得る。OS24は、その後、入力イベントを識別されたプロセスに与え得る。図1の例は、アプリケーション22が入力イベントを受信するために登録していると仮定している。
入力イベントが受信されるのに応答して、アプリケーション22は、入力イベントによって指定される入力メッセージによって記述されるユーザ入力に少なくとも部分的に基づいて、メディアデータを生成し得る。たとえば、ユーザ入力が、特定のオンスクリーン制御部(on-screen control)のオンスクリーンロケーションにおいてクリックイベントが発生したことを示す場合、アプリケーション22は、オンスクリーン制御部に関連付けられる機能を実行して、対応するメディアデータを生成し得る。アプリケーション22は、メディアデータを符号化し、その後、OS24に、符号化メディアデータをシンクデバイス60に送るように命令し得る。いくつかの例において、OS24のIPスタック34が、符号化メディアデータを、シンクデバイス60に送信するための一連の1つまたは複数のIPパケット内にカプセル化し得る。このように、シンクデバイス60はソースデバイス20からメディアデータを受信し得、メディアデータはユーザ入力に基づく。シンクデバイス60は、その後、出力デバイス66において提示(たとえば、表示および/またはオーディオ再生)するためにメディアデータをレンダリングし得る。
シンクデバイス60は、汎用入力メッセージおよびHIDコマンド(HIDC)入力報告を、UIBCを介してソースデバイス20に送り得る。シンクデバイス60にあるいくつかのHIDドライバは、HIDドライバがHIDからのユーザ入力の指示を受信すると、入力報告をOS76に与え得る。入力報告は、HIDによって受信されたユーザ入力を記述し得る。いくつかの例において、入力報告は、USBまたはBluetooth HID規格に準拠し得る。シンクデバイス60のOS76は、HIDドライバからOS76によって受信されるいくつかの入力報告に応答して汎用入力メッセージを生成し得る。OS76は、その後、汎用入力メッセージを指定する入力イベントをUIBCモジュール74に与え得る。UIBCモジュール74が汎用入力メッセージを受信すると、UIBCモジュール74は、汎用入力メッセージを含むUIBCメッセージを生成し得、UIBCメッセージを、ソースデバイス20に送信するための待ち行列に入れ得る。
OS76は、異なるHIDクラス内のHIDによって受信されるユーザ入力を記述する汎用入力メッセージは異なる報告フォーマットを有するが、1つのHIDクラス内の異なるHIDから受信されるユーザ入力を記述する汎用入力メッセージは同じ報告フォーマットを有するように、汎用入力メッセージを生成し得る。たとえば、OS76は、様々なタイプのマウスによって受け取られるユーザ入力を記述する汎用入力メッセージを生成するために第1の報告フォーマットを使用し得る。この例において、OS76は、様々なタイプのゲームコントローラによって受け取られるユーザ入力を記述する汎用入力メッセージを生成するために第2の報告フォーマットを使用し得る。
汎用入力メッセージを生成することによって、OS76は、同じHIDクラスに属する異なるHIDに関連付けられる入力報告を調和させることが可能であり得る。たとえば、OS76は、様々なタイプのマウスの入力報告を変換して、ほとんどのタイプのマウスに対して汎用的であるフォーマットにすることが可能であり得る。たとえば、第1のブランドのマウスのためのドライバは、スクロールホイールが前または後ろに動かされたかを示すために入力報告の4番目のバイトを使用し得、第2のブランドのマウスのためのドライバは、入力報告の4番目のバイトをまったく使用しないものであり得る。この例において、OS76は、第1のブランドのマウスおよび第2のブランドのマウスのためのドライバからの入力報告を変換して、4番目のバイトがスクロールホイールが動かされたかを示す汎用入力メッセージにし得、4番目のバイトは、スクロールホイールがないマウスについては常にゼロになる。この例において、ソースデバイス20がそのような汎用入力メッセージを解読することが可能であるために、シンクデバイス60は、ソースデバイス20に、入力報告がマウスからのものであることを示せば十分であり得る。
しかしながら、WDシステム10を、共通のタイプのHIDのみを使用するように限定することは望ましくない場合がある。そうではなく、ソースデバイス20およびシンクデバイス60が、多種多様なHID、同じ汎用HIDクラスに属するHIDさえサポートすることが可能であるようにすることが望ましい場合がある。たとえば、2つの異なるビデオゲームコントローラが、異なる数のボタンを使用する場合がある。したがって、この例において、これら2つのビデオゲームコントローラからの入力報告が同じフォーマットを有するようにすることは可能でない場合がある。新たなHIDも現れ得、ソースデバイス20およびシンクデバイス60が新たな現れることになるHIDをサポートする柔軟性を有することが望ましい場合がある。
したがって、シンクデバイス60にある何らかのHIDドライバが入力報告をUIBCモジュール74に直接与え得るか、または、OS76が、HIDドライバからの入力報告をUIBCモジュール74に直接与え得る。入力報告は、USBまたはBluetooth規格に準拠し得る。HIDドライバから入力報告が受信されるのに応答して、UIBCモジュール74は、入力報告に基づく入力メッセージを含むUIBCメッセージを生成し得る。UIBCモジュール74は、その後、UIBCメッセージをソースデバイス20に送信するための待ち行列に入れ得る。UIBCモジュール74がUIBCメッセージをこのように生成するとき、UIBCメッセージは、本開示においては、HIDC入力報告を含むと考える。このように、シンクデバイス60は、入力報告をUSBまたはBluetooth入力報告として、IPパケットを介してソースデバイス20に送り得る。
たとえば、異なるタイプのHIDは異なるタイプの入力を提供し得る。したがって、異なるタイプのHIDのためのドライバは、異なるタイプの入力報告を生成する可能性がある。さらに、同じHIDクラスに属するHIDのための異なるドライバが、フォーマットの異なる入力報告を生成する可能性がある。たとえば、第1のブランドのジョイスティックのためのドライバは、主要ジョイスティックボタンが押されたかを示すために入力報告の32番目のビットを使用し得、第2のブランドのジョイスティックのためのドライバは、主要ジョイスティックボタンが押されたかを示すために入力報告の16番目のビットを使用し得る。
シンクデバイス60は、様々な入力経路を介して受信されるユーザ入力に関するHIDC入力報告を生成し得る。いくつかの例において、そのような入力経路は、赤外線、USB、Bluetooth、Zigbee(登録商標)、Wi−Fi、および販売元特有の入力経路を含み得る。いくつかの例において、HIDC入力報告は、マウスおよびキーボード入力に限定され得る。他の例において、HIDC入力報告は、シングルタッチタッチスクリーン、マルチタッチタッチスクリーン、ジョイスティック、カメラ、ジェスチャ検出システム、遠隔制御装置、赤外線デバイス、および/または販売元特有のタイプのHIDのような、他のタイプのHIDに関して生成され得る。いくつかの例において、HIDC入力報告は、RTSPにおいて指定されていない場合がある。販売元特有のカテゴリのユーザ入力は、販売元特有のHIDフォーマットのものであり得る。シンクデバイス60およびソースデバイス20は、いかなるデバイスプロットフォームによっても指定されておらず、解読されるユーザ入力のカテゴリにおいても標準化されていない、共通の販売元特有のユーザ入力インターフェースを有し得る。この場合、シンクデバイス60は販売元のライブラリによって指定されるフォーマットにあるHIDC入力報告を送り得る。ソースデバイス20がそのような販売元特有のユーザ入力を受信すると、ソースデバイス20は、そのようなユーザ入力をパースするためには、販売元特有のHIDユーザ入力のライブラリを呼び出し得る。
上記のように、UIBCモジュール32は、入力メッセージを含むUIBCメッセージを受信し、入力メッセージによって記述されているユーザ入力を確定するために入力メッセージをパースし、入力メッセージによって記述されているユーザ入力に基づいて入力イベントを生成し得る。HIDC入力報告をパースするために、UIBCモジュール32は、HIDC入力報告が準拠する報告フォーマットを判定する必要があり得る。したがって、本開示の技法によれば、UIBCモジュール32は、HIDC入力報告を含む1つまたは複数のIPパケット内のデータに基づいてUIBCメッセージ内のHIDC入力報告の報告フォーマットを判定し得る。
いくつかの例において、ソースデバイス20は報告フォーマット28を記憶し得る。いくつかの例では、ソースデバイス20は、シンクデバイス60とのUIBCを確立する前に報告フォーマット28を記憶し得る。報告フォーマット28は、特定のHIDに関連付けられる報告フォーマットを記述するデータを含み得る。たとえば、報告フォーマット28は、特定のHIDに関連付けられる報告フォーマットを記述するスキーマ(たとえば、拡張マークアップ言語(XML)スキーマなど)を含み得る。そのような例において、IPパケット内で指定される報告記述子が、ソースデバイス20が報告フォーマット28のうちの特定の1つに関連付ける識別子であり得る。HIDC入力報告をパースするために、UIBCモジュール32は、そのような識別子を使用して報告フォーマット28のうちの1つを選択し得る。ソースデバイス20は、その後、HIDC入力報告をパースするために、識別されたスキーマによって記述されている報告フォーマットを使用し得る。このように、シンクデバイス60およびソースデバイス20は、従来のUSBまたはBluetoothネゴシエーション方法を使用して交換され得るよりも単純化されたデータサブセットを交換し得る。したがって、シンクデバイス60およびソースデバイス20は、特定のHIDからの入力に関するHIDC入力報告に対するフォーマットを示すスキーマを交換する必要がないものであり得る。
UIBCモジュール32は、様々な識別子に基づいて報告フォーマット28のうちの1つを識別し得る。たとえば、UIBCメッセージは、少なくとも第1のフィールドおよび第2のフィールドを含み得る。第1のフィールドはHIDC入力報告を含み得る。第2のフィールドは、HIDタイプ指示子を含み得る。HIDタイプ指示子は、報告フォーマット28のうちの1つを識別する数値識別子を備え得る。別の例において、1つまたは複数のIPパケットが、シンクデバイス60のIPアドレスを指定し得る。この例において、UIBCモジュール32は、シンクデバイス60のIPアドレスに少なくとも部分的に基づいて報告フォーマット28のうちの1つを識別し得る。さらに、1つまたは複数のIPパケットが、ソースポートを指定し得る。この例において、UIBCモジュール32は、シンクデバイス60のIPアドレスおよびソースポートに少なくとも部分的に基づいて報告フォーマット28のうちの1つを識別し得る。
他の例において、UIBCモジュール74は、報告記述子または報告データを含むHIDC入力報告を生成し得る。HIDC入力報告の報告記述子は、報告データの報告フォーマットを記述し得る。いくつかの例において、報告記述子はスキーマを含み得る。たとえば、報告記述子は、報告データの32番目のビットが、HIDの特定のボタンが押されたかを示すことを示し得る。HIDC入力報告の報告データは、HIDによって受信されるユーザ入力を記述し得る。
そのような例において、UIBCモジュール32は、HIDC入力報告を含むUIBCメッセージが受信されるのに応答して、HIDC入力報告が報告記述子または報告データを含むかを判定し得る。HIDC入力報告が報告記述子を含む場合、UIBCモジュール32は、後にHIDC入力報告をパースするのに使用するために、報告記述子を記憶し得る。HIDC入力報告が報告データを含む場合、UIBCモジュール32は、以前に受信された報告記述子に基づいて報告データをパースし得る。
さらに、HIDC入力報告は使用状況フラグおよびHIDC値を含み得る。HIDC入力報告の使用状況フラグは、HIDC入力報告のHIDC値がフォーマットデータまたは報告データを含むかを示す。いくつかのそのような例において、HIDC入力報告は、下記表1に示すフォーマットに準拠し得る。
Figure 0005908592
表1のHIDC入力報告フォーマット例において、HIDC入力報告の「使用状況」フラグは、HIDC入力報告の「HIDC値」フィールドが報告データまたは報告記述子を含むかを示し得る。報告データは、HID70のようなHIDによって受け取られるユーザ入力を記述し得る。報告記述子は、報告フォーマットを記述し得る。したがって、シンクデバイス60は、第1のHIDC入力報告および第2のHIDC入力報告を送り得、ソースデバイス20はそれを受信し得る。第1のHIDC入力報告の「使用状況」フラグは、第1のHIDC入力報告のHIDC値が報告記述子を備えることを示し得、第2のHIDC入力報告の「使用状況」フラグは、第2のHIDC入力報告のHIDC値が報告データを備えることを示し得る。
HIDC入力報告が表1のフォーマットに準拠する例において、シンクデバイス60が、報告データを備えるHIDC入力報告をソースデバイス20に送る前に、シンクデバイス60は、報告記述子を備えるHIDC入力報告をソースデバイス20に送り得る。シンクデバイス60は、ソースデバイス20が正確なフォーマットを有することを保証するために、報告記述子をソースデバイス20に複数回送り得る。UIBCモジュール32は、報告記述子をWDセッションの継続時間にわたって保存し、報告記述子を報告データのパースに使用し得る。
他の例において、UIBCモジュール32は、シンクデバイス60から受信される最初のHIDC入力報告が常に報告フォーマットを指定すること、および、シンクデバイス60から受信される後続のHIDC入力報告が最初のHIDC入力報告によって記述されている報告フォーマットに従ってフォーマットされることを仮定し得る。さらに、いくつかの例において、UIBCモジュール32は、シンクデバイス60の特定のポートから受信される最初のHIDC入力報告が常に報告フォーマットを指定すること、および、シンクデバイス60の特定のポートから受信される後続のHIDC入力報告が最初のHIDC入力報告によって記述されている報告フォーマットに従ってフォーマットされることを仮定し得る。
他の例において、各HIDC入力報告は2つのHIDC値を含み得る。HIDC入力報告の第1のHIDC値は報告記述子を指定し得る。HIDC入力報告の第2のHIDC値は、報告記述子によって指定されるフォーマットに準拠する報告データを指定し得る。
いくつかの例において、シンクデバイス60およびソースデバイス20は、HIDC入力報告をサポートし得るが、HIDC出力報告をサポートしない場合がある。HIDC出力報告は、ソースデバイス20から、キーボードのようなヒューマン入力デバイスに情報を伝達し得る。さらに、いくつかのそのような例において、シンクデバイス60は、HIDC入力報告をソースデバイス20に、割り込みベースで送り得る。したがって、ソースデバイス20がシンクデバイス60にHIDC入力報告についてポーリングする必要はないものであり得る。
図2は、本開示の1つまたは複数の技法による、ソースデバイス20によって実行される一例の動作200を示す流れ図である。図2および他の図面を図1を参照して説明するが、本明細書に記載の図2および他の図面は、図1の例以外の例に適用可能であり得る。
図2の例において、ソースデバイス20が複数の事前構成された報告フォーマット28を記憶し得る(202)。事前構成された報告フォーマット28の各々は、異なるタイプのHIDに関連付けられ得る。加えて、ソースデバイス20はシンクデバイス60から1つまたは複数のIPパケットを受信し得る(204)。1つまたは複数のIPパケットは、HIDC入力報告を含み得る。ソースデバイス20のUIBCモジュール32は、1つまたは複数のIPパケット内のデータに基づいて、複数の事前構成された報告フォーマット28から1つの事前構成された報告フォーマットを識別し得る(206)。次に、UIBCモジュール32は、HIDC入力報告によって記述されているユーザ入力を確定するために、識別された事前構成されたフォーマットに基づいてHIDC入力報告をパースし得る(208)。ソースデバイス20は、ユーザ入力に応答してメディアデータを生成し得る(210)。ソースデバイス20は、その後、メディアデータをソースデバイス20からシンクデバイス60に送り得る(212)。メディアデータが受信されると、シンクデバイス60は、メディアデータを復号および提示する。
図3は、本開示の1つまたは複数の技法による、シンクデバイスによって実行される一例の動作250を示す流れ図である。図3の例において、シンクデバイス60は、ユーザ入力の指示をHID(たとえば、HID70)から受信し得る(252)。シンクデバイス60にあるUIBCモジュール74は、ユーザ入力に基づいてHIDC入力報告を生成し得る(254)。いくつかの例において、HIDC入力報告は、USBまたはBluetooth規格に準拠し得る。次に、ソースデバイス60はシンクデバイス20に1つまたは複数のIPパケットを送り得る(256)。IPパケットは、HIDC入力報告と、HIDC入力報告をパースするための報告フォーマットを識別するHIDタイプ指示子とを含み得る。その後、シンクデバイス60は、ソースデバイス20からメディアデータを受信し得る(258)。メディアデータは、HIDC入力報告によって記述されているユーザ入力に基づき得る。
図4は、本開示の1つまたは複数の技法による、シンクデバイス60によって実行される別の例の動作350を示す流れ図である。動作350は、図3の例に示す動作250のより特定的な事例であり得る。
図4の例において、シンクデバイス60のWDセッションマネージャ68が、UIBCを確立するためにソースデバイス20のWDセッションマネージャ30と通信する(351)。いくつかの例において、ソースデバイス20のWDセッションマネージャ30が、UIBCを確立するための通信を開始する。いくつかの例において、シンクデバイス60のWDセッションマネージャ68が、UIBCを確立するための通信を開始する。いくつかの例において、WDセッションマネージャ68およびWDセッションマネージャ30は、セッション確立の間にUIBC機能をネゴシエートし得る。後述の図7は、汎用入力メッセージのためにUIBCをネゴシエートするためのソースデバイス20とシンクデバイス60との間の一例の対話を示す通信図である。下記により詳細に説明する図8は、HIDC入力報告のためにUIBCをネゴシエートするためのソースデバイス20とシンクデバイス60との間の一例の対話を示す通信図である。
UIBCが確立される前に、シンクデバイス60は、それに接続されている入力デバイスにアウェアであり、これを管理し得る。タッチスクリーンおよび遠隔制御デバイスは、シンクデバイス60に常に接続され得る。他の入力デバイス(マウスおよびキーボードのような)は、可能性として適切なプラグ・アンド・プレイ(PnP)マネージャおよびデバイスドライバを必要としながら、接続および接続切断する。UIBCを開始する前に、WDセッションマネージャ68は、接続されているデバイスおよびそれらの現在の状態のリストを有し得る。WDセッションマネージャ68は、UIBCの確立の間に、このリスト内のHIDをソースデバイス20に対して識別し得る。
いくつかの例において、UIBCを確立することは、以下の必要条件を仮定する。ソースデバイス20が、シンクデバイス60を発見している。シンクデバイス60が、ソースデバイス20と対になっている。RTSP制御ポートを用いてソースデバイス20とシンクデバイス60との間に伝送制御プロトコル(TCP)接続が確立されている。すべてのWD非UIBC機能が、RTSPを介してソースデバイス20とシンクデバイス60との間でネゴシエートされている。
UIBCが確立された後、シンクデバイス60のOS76は、HIDドライバ72から入力報告を受信し得る(352)。入力報告が受信されたことに応答して、OS76は、シンクデバイス60(354)のUIBCモジュール74に入力イベントを送り得る。入力イベントは、OS76によって受信された入力報告を含み得る。UIBCモジュール74が入力イベントを受信すると、UIBCモジュール74は、入力イベントを待ち行列内に記憶し得る。UIBCモジュール74は、UIBCモジュール74が入力イベントを待ち行列内に加えた順に入力イベントを処理する。
UIBCモジュール74が入力イベントを処理すると、UIBCモジュール74は、入力イベントをキャプチャすべきかを判定し得る(356)。UIBCモジュール74は、様々な方法で入力イベントをキャプチャすべきかの判定を行い得る。たとえば、UIBCモジュール74は、シフトキーまたはコントロールキーのキー押下に関する入力イベントをキャプチャすべきではないという判定を行ってもよい。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メッセージは入力ボディ(input body)を含むだけでよい。UIBCメッセージは、汎用入力ボディおよび/またはHIDC入力ボディを含み得る。いくつかの例において、UIBCメッセージは、UIBCメッセージのHIDC入力ボディが準拠する報告フォーマットを識別する報告記述子を含む。UIBCモジュール74が入力報告を処理すると、UIBCモジュール74は、汎用入力ボディ(すなわち、汎用入力メッセージ)またはHIDC入力ボディ(すなわち、HIDC入力報告)を含むUIBCメッセージを生成し得る。
UIBCモジュール74は、デバイスプラットフォーム依存であるユーザ入力の汎用入力ボディを含むUIBCメッセージを生成し得る。たとえば、WINDOWS MOBILE(登録商標)およびANDROID(登録商標)のような異なるデバイスプラットフォームは、異なるフォーマットのユーザ入力を有し得る。ユーザ入力は、ドライバレベルユーザ入力ではなく、オペレーティングシステムレベルユーザ入力として検出され送られ得る。
ソースデバイス20のUIBCモジュール32が汎用入力メッセージを受信すると、UIBCモジュール32は、ソースデバイス20のデバイスプラットフォームに従って汎用入力メッセージを処理し得る。したがって、汎用入力メッセージは、ソースデバイス20が、UIBCモジュール74によって受信された元の入力報告を処理することが可能である場合に有用であり得る。たとえば、ソースデバイス20において作動しているアプリケーション(たとえば、アプリケーション22)が複雑なユーザ対話をハンドリングし得るため、ソースデバイス20は、タッチスクリーン上での特定シーケンスの指タッチを処理し得る。ソースデバイス20は、いずれのポインタが使用されているかを即座に識別するポインタ識別子を使用することによって、汎用入力に対するマルチタッチモーションイベントをサポートし得る。したがって、シンクデバイス60は、これらのマルチタッチモーションイベントを複数のポインタとして送り得、ソースデバイス20はこれらを複数のポインタイベントとして解読し得る。
いくつかの例において、UIBCモジュール74は、OS76によって生成されるモーションイベントをリスンし得る。そのような例において、UIBCモジュール74は、モーションイベントが受信されるのに応答して汎用入力ボディを含むUIBCメッセージを生成し得る。モーションイベントは、入力イベントクラスに属するデータオブジェクト(たとえば、オブジェクト指向プログラミング言語オブジェクト)であり得る。入力イベントクラスに属するオブジェクトは、モーションイベントオブジェクトまたはキーイベントオブジェクトを備え得る。モーションイベントオブジェクトは、マウス、ペン、指、およびトラックボールのような様々なタイプのHIDからの動きを記録するデータを含み得る。キーイベントオブジェクトは、キー押下を記録するデータを含み得る。そのような例において、UIBCモジュール74は、以下の疑似コードに従ってモーションイベントオブジェクトを処理し得る。
Figure 0005908592
Figure 0005908592
上記で提供した疑似コードによれば、UIBCモジュール74は、モーションイベントオブジェクトがキーイベントオブジェクトであるかを判定し得る。モーションイベントオブジェクトがキーイベントオブジェクトであり、キーイベントオブジェクトがキーダウンイベントを示す場合、UIBCモジュール74は、押されたキーのコードをUTF−8またはASCIIコードに変換し、キーダウンイベントの汎用入力メッセージを生成し、汎用入力メッセージを含むUIBCメッセージを送信のために待ち行列内に入れ得る。モーションイベントオブジェクトがキーイベントオブジェクトであり、キーイベントオブジェクトがキーアップイベントを示す場合、UIBCモジュール74は、解放されたキーのコードをUTF−8またはASCIIコードに変換し、キーアップイベントの汎用入力メッセージを生成し、汎用入力メッセージを含むUIBCメッセージを送信のために待ち行列内に入れ得る。上記で提供した疑似コードにおいて、UIBCモジュール74は、ポインタダウンイベント、ポインタアップイベント、ポインタ移動イベント、およびスクロールイベントのような、様々なタイプのモーションイベントオブジェクトの汎用入力メッセージを生成し、送信のために待ち行列内に入れ得る。
上述したようなモーションイベントオブジェクトおよびキーイベントオブジェクトの処理に加えて、UIBCモジュール74は、他のタイプのイベントを処理し得る。たとえば、シンクデバイス60が方向記述子を含む場合、UIBCモジュール74は、以下の疑似コードによって示すように、シンクデバイス60の方向の変化を示す汎用入力メッセージを生成し得る。
Figure 0005908592
いくつかの例において、UIBCモジュール74は、マルチタッチ入力の汎用入力メッセージを生成し得る。ソースデバイス20とシンクデバイス60の両方がマルチタッチをサポートする場合、UIBCモジュール74は、複数のポインタのうちのいずれがそれであるかを識別するために、ポインタの数およびインデックスパラメータが前に付くXおよびY座標(たとえば、[2,1,X1,Y1,2,X2,Y2])を有する、ポインタダウン、ポインタ移動、およびポインタアップのユーザ入力の追加の情報要素(IE)を生成し得る。シングルタッチについて、これらの前に付く値は1および1であり得る(たとえば、[1,1,X,Y])。
本開示において、HIDCは、両方ともUSB HIDおよびその他に基づく、様々な既存のHID規格を使用してメッセージを送ることを指し得る。シンクデバイス60は、HIDCカテゴリのユーザ入力を転送し得、ユーザ入力は処理しないものであり得る。シンクデバイス60に接続される第3のデバイスがソースデバイス20にアウェアであることが可能であり得る。この場合、HIDデバイスは、第3のデバイスからシンクデバイス60にメッセージを送り得、シンクデバイス60はソースデバイス20に直接メッセージを転送し得る。このように、ソースデバイス20は正しいコンテキストにおいてこれらのメッセージに応答し得る。
いくつかの例において、UIBCモジュール74は、USBキータイプデバイスのHIDC入力ボディを含むUIBCメッセージを生成し得る。いくつかのそのような例において、UIBCモジュール74は、HIDドライバ72からではなく、OS76からのモーションイベントオブジェクトとしてユーザ入力をキャプチャし得る。UIBCモジュール74は、入力イベントオブジェクトに基づいてHIDC入力報告を生成し得る。UIBCモジュール74は、以下の疑似コードに従ってモーションイベントオブジェクトを処理し得る。
Figure 0005908592
上記の疑似コードによれば、UIBCモジュール74は、様々なタイプの移動入力を示すHIDC入力報告を生成し得る。さらに、上記の疑似コード例において、入力イベントオブジェクトはタッチスクリーン以外のHIDから生成され得る。したがって、入力イベントオブジェクトは、タッチスクリーンからのユーザ入力の入力イベントオブジェクトにおいて一般的に示されているような絶対XおよびYではなく、XおよびYの相対的な詳細を示し得る。
UIBCモジュール74がUIBCメッセージを生成した後、UIBCモジュール74は、UIBCメッセージをUIBC送信待ち行列に送り得る(362)。シンクデバイス60のOS76は、UIBC送信待ち行列からUIBCメッセージを送り得る(364)。OS76は、UIBCメッセージがUIBC送信待ち行列に加えられた順で、UIBC送信待ち行列からUIBCメッセージを送り得る。OS76がUIBCメッセージを送ると、IPスタック78が、ソースデバイス20のIPアドレスを宛先アドレスとして指定する1つまたは複数のTCP/IPパケット内にUIBCメッセージを封入し得る。TCP/IPパケットは、ソースデバイス20およびシンクデバイス60がワイヤレスディスプレイセッションを確立したときに、ソースデバイス20およびシンクデバイス60がネゴシエートしたポート識別子を宛先ポートとして指定し得る。
上記で示したように、図4は、本開示と一致する一例にすぎない。他の例において、UIBCモジュール74は、HIDドライバ72から直接、HIDC入力報告を受信し得る。UIBCモジュール74は、その後、UIBCラッパ(UIBC wrapper)を追加し(たとえば、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モジュール32は、下記表2に従ってUIBCメッセージをパースし得る。
Figure 0005908592
表2には示していないが、汎用入力メッセージのボディは、アクティブにダウンされているポインタの数(#)を含み得、XおよびY座標が後ろに付くポインタID(N)は、ダウンされている各ポインタを記述している。
UIBCメッセージがHIDC入力報告を含む場合、UIBCモジュール32は、UIBCメッセージを含む1つまたは複数のIPパケットデータデータ(たとえば、HIDタイプ指示子)に基づいて、事前構成された報告フォーマットを識別し得る。UIBCモジュール32は、その後、ユーザ入力を確定するために、識別された事前構成された報告フォーマットに基づいてHIDC入力報告をパースし得る。たとえば、UIBCメッセージがHIDC入力報告を含む場合、UIBCモジュール32は、下記表3に従ってHIDC入力報告をパースし得る。表3は、マウスアクションのHIDC入力の一例のフォーマットを示す。いくつかの例において、シンクデバイス60は、マウスアクションの間の10msごとにマウスアクションのHIDC入力報告を送り得る。
Figure 0005908592
Bluetoothデバイスは、そのようなBluetoothデバイスの入力報告が、1010 0001に等しい値を有する追加のDATAヘッダを含み得るという点を除いては、表3の入力報告例と同様の入力報告を有し得る。
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座標を正規化し得る。
Figure 0005908592
Figure 0005908592
ネゴシエートされている解像度は、RTSPトランザクションベースの機能ネゴシエーションの間にパラメータ「wfd_video_formats」において指定され得る。UIBCモジュール32は、ネゴシエートされている解像度がソースデバイス20のスクリーンの解像度に一致する場合には、マッピングを実行しない場合がある。
さらに、前のパラグラフの例において、UIBCモジュール32が汎用モーション入力メッセージのXおよびY値を受信すると、UIBCモジュール32は、汎用モーション入力メッセージのXおよびY値を、処理のためにソースデバイス20のスクリーンの解像度にマッピングする場合があり、またはしない場合もある。ソースデバイス20がネゴシエートされているビデオの解像度において汎用モーション入力メッセージのXおよびY値を処理する場合、UIBCモジュール32は、何らマッピングを実行する必要がない。しかしながら、ソースデバイス20がソースデバイス20のスクリーンの解像度を基準として汎用モーション入力メッセージのXおよびY値を処理する場合、UIBCモジュール32は、以下のマッピングを実行し得る。
Figure 0005908592
Figure 0005908592
さらに、汎用入力イベントにおいて指定されるXおよびY座標は、絶対座標(すなわち、スクリーン座標)または相対座標(すなわち、Xおよび/またはYの変化を反映する差分)であり得る。いくつかの例において、汎用入力イベントにおいて指定される座標が絶対座標である場合、UIBCモジュール32は、ソースデバイス20にとって適切であるように、その座標を相対座標に変換するか、またはその逆を行い得る。
加えて、汎用入力メッセージがキーイベントを示す場合、押下されているキーの順序および数が重要であり得る。異なるオペレーティングシステムはキーに対して異なる値を使用する場合があるため、UIBCモジュール74およびUIBCモジュール32は、オペレーティングシステムをアグノスティックなままにするために、汎用UTF−8またはASCII文字を使用し得る。たとえば、大文字を送るために、シンクデバイス60は、シフトキーが押下された後、別のキーが押下されるのを待って、適切な大文字を送り得る。いくつかの例において、単一の汎用入力メッセージ内で複数のキーコードが送られる場合がある。
UIBCメッセージが汎用入力メッセージを含まない場合(408の「いいえ」)、UIBCモジュール32は、UIBCメッセージがHIDC入力報告を含むかを判定し得る(412)。UIBCがHIDC入力報告を含む場合(412の「はい」)、UIBCモジュール32は、HIDC入力報告に基づいて入力イベントを生成および投入し得る(414)。本開示の他の箇所に記載のように、シンクデバイス60はHIDC入力報告を処理しないものであり得る。そうではなく、シンクデバイス60は、HIDC入力報告を生成したHIDドライバからHIDC入力報告を通過させ得る。
いくつかの例において、移動はXおよびYの相対変化であり、結果としてマウスの移動速度はわずかしか増大しないものであり得るため、UIBCモジュール32は、HIDC入力報告において送られるXおよびY座標を正規化する必要がない場合がある。他の例において、UIBCモジュール32は、ソースデバイス20のスクリーンの解像度とシンクデバイス60のスクリーンの解像度との間、ネゴシエートされているスクリーン解像度とシンクデバイス60のスクリーン解像度との間、または、ネゴシエートされているスクリーン解像度とソースデバイス20のスクリーン解像度との間の差を反映するためにXおよびY座標を正規化し得る。
正規化に加えて、HIDCマウス入力報告において送られるXおよびY座標は相対XおよびY座標であり得、一方で、モーションイベント座標は絶対(スクリーン座標)または相対(XまたはYの変化を反映する差分)である可能性がある。いくつかのオペレーティングシステムにおいて、タッチスクリーン以外のほとんどの入力は相対であり、そのため、追加の入力デバイスが見つかり得る場合、変更は必要ない。タッチスクリーンデバイスは絶対であり得、そのため、入力デバイスがタッチスクリーンである場合、以前の絶対XおよびY座標が記録され得、相対変化のみがHIDCマウス入力報告において送られ得る。
UIBCモジュール32は、様々な方法で入力イベントを投入し得る。たとえば、UIBCモジュール32は、既存のドライバを介して入力イベントを投入し得る。この例において、UIBCモジュール32は、HIDC値(たとえば、汎用入力メッセージまたはHIDC入力報告によって記述されるユーザ入力に基づく値)を、OS24上のそれぞれのドライバに直接渡し得、それに従って処理され得る。OS24は、入力イベントをドライバから入力イベントを受信するために登録されているアプリケーション(たとえば、アプリケーション22)に搬送し得る。
別の例において、UIBCモジュール32は、HIDドライバを介して入力イベントを投入し得る。この例において、UIBCモジュール32は、HID値をOS24上のHIDドライバに直接渡し得る。HIDドライバは、それに従ってHID値を処理し得る。OS24に対するHIDドライバの要求も、UIBCを介して送られ得る。
別の例において、UIBCモジュール32は、仮想ドライバを初期化し得る。仮想ドライバを初期化することによって、UIBCモジュール32が、多種多様な入力イベントをOS24に挿入する柔軟性を有することが可能になり得る。この例において、UIBCモジュール32は、入力イベントを仮想ドライバに渡し得る。仮想ドライバはOS24に密接に一体化され得、1つまたは複数の入力デバイスを表し得るため、仮想ドライバはその後、OS24に入力イベントを送り得る。仮想ドライバは、ワイヤレスディスプレイがアクティブであるときに初期化され得るが、インストールする必要があり得る。
別の例において、UIBCモジュール32は、OS24に対するOSコマンドを介して入力イベントを投入し得る。この例において、UIBCモジュール32は、KeyEventおよびMotionEventをOS24に直接送り得る。しかしながら、いくつかの例において、1つのアプリケーションが他のアプリケーションにコマンドを送ることは安全でない場合があり、各アプリケーションは基礎となるカーネルのそれ自体のインスタンスを有するため、OS24は、OSコマンドを介して入力イベントが注入されるのを阻害し得る。この手法は、仮想ドライバを実装するよりも容易であり得、待ち時間性能がより良好であり得る。以下の疑似コードは、この例に従って入力イベントを注入する一例の方法を示す。
Figure 0005908592
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は、Get_Descriptorコマンドをシンクデバイス60に送り得る。シンクデバイス60がGet_Descriptorコマンドを受信すると、UIBCモジュール74は、HIDに関連付けられるHIDドライバ(たとえば、HIDドライバ72)にGet_Descriptorコマンドを転送し得る。HIDドライバがGet_Descriptorコマンドを受信すると、HIDドライバは、HIDに関する情報をUIBCモジュール74に送り得る。UIBCモジュール74は、その後、HIDに関する情報を含むUIBCメッセージを生成し、送り得る。ソースデバイス20が、HIDC入力報告を含む1つまたは複数のIPパケット内のデータに基づいて事前構成された報告フォーマットを識別することが可能であるいくつかの例において、ソースデバイス20がそのような追加の情報を要求することは不要であり得る。
初期化されると、シンクデバイス60は、報告の記述子タイプを有するソースデバイス20からGet_Descriptorコマンドを受信し得る。HIDドライバは、下記表4および表5に示すような報告記述子を、入力報告のHID値として送り得る。初期報告記述子の後、シンクデバイス60は、それらがHIDドライバから(または最初はMotionEventを介して)受信されるのと同じ頻度でHIDC入力ボディに示されるような入力報告を送信し続け得る。
Figure 0005908592
Figure 0005908592
場合によっては、ソースデバイス20は「Report」以外の記述子タイプを有する追加のGet_Descriptorコマンドを送り得る。シンクデバイス60が「HID」の記述子タイプを有するGet_Descriptorコマンドを受信する場合(wValue = 21h)、HIDドライバは下記表6に示すようなHID記述子を送り得る。
Figure 0005908592
シンクデバイス60がGet_Descriptor(構成)コマンドを受信する場合、HIDドライバは構成記述子、インターフェース記述子、HID記述子、および端点記述子を、別個のメッセージとしてこの順で送り得る。これらの記述子の例を下記表7〜表12に記載する。
Figure 0005908592
Figure 0005908592
Figure 0005908592
Figure 0005908592
標準的なHIDが使用されない場合、これらの要求が認識され得、UIBCモジュール74が上記のデータ値を記憶し送り得る。
Figure 0005908592
Figure 0005908592
図6は、UIBCメッセージ450の一例のフォーマットを示す概念図である。説明を容易にするために、以下の図6の記述は、シンクデバイス60がUIBCメッセージ450を送り、ソースデバイス20がUIBCメッセージ450を受信すると仮定する。
図6の例において、UIBCメッセージ450は、バージョンフィールドと、タイムスタンプフラグ(「T」)と、確保済みフィールドと、入力カテゴリフィールドと、タイムスタンプフィールドと、長さフィールドと、入力ボディフィールドとを含み得る。確保済みフィールドのサイズは8Bitに等しいものであり得、ソースデバイス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は、ソースデバイス20がUIBCメッセージ450を受信するときに後で処理するためにタイムスタンプを保存し得る。
ソースデバイス20からシンクデバイス60へのワイヤレスチャネル50が混雑しているとき、シンクデバイス60において受信されるユーザ入力は、シンクデバイス60によって表示される期限切れ表示フレームに与えられている場合がある。そのようなユーザ入力は、ソースデバイス20において受信されるときに処理されない場合がある。他方、シンクデバイス60からソースデバイス20へのUIBCが混雑しているとき、シンクデバイス60に与えられるユーザ入力は、ソースデバイス20において受信されるのが遅すぎる場合がある。そのようなユーザ入力も、ソースデバイス20によって処理されない場合がある。
タイムスタンプフィールドは、上記の同期化問題についてソースデバイス20に通知し得る。タイムスタンプフィールドは、ユーザ入力が受信されるときに表示されているメディアデータに関連付けられるタイムスタンプを指定し得る。上記の同期化問題を解決するには、そのようなタイムスタンプ情報を送ることで十分であり得る。
図7は、汎用入力メッセージのためにUIBCをネゴシエートするためのソースデバイス20とシンクデバイス60との間の一例の対話を示す通信図である。図7の例では、ソースデバイス20が、シンクデバイス60にメッセージ500を送る。メッセージ500は、シンクデバイス60のUIBC機能パラメータを取得するための要求であり得る。シンクデバイス60は、メッセージ502をソースデバイス20に送り返すことによってメッセージ500に応答する。メッセージ502は、シンクデバイス60の、汎用入力メッセージおよびHIDC入力報告を与える機能を示す。図7の例において、メッセージ502は、シンクデバイス60がマウスおよびシングルタッチタッチスクリーンの汎用入力メッセージを与えることができることを示している(すなわち、generic_cap_list = Mouse, SingleTouch)。メッセージ502は、シンクデバイス60が何らHIDC入力報告を与えないことも示している(すなわち、hidc_cap_list = none)。ソースデバイス20からの汎用入力メッセージ機能を求める要求に応答してシンクデバイス60が、示し得る汎用入力の例は、タッチ/マウスダウン、タッチ/マウスアップ、タッチ/マウス移動、キーダウン、キーアップ、ズーム、垂直スクロール、水平スクロール、および回転を含み得る。
ソースデバイス20がメッセージ502を受信した後、ソースデバイス20は、シンクデバイス60にメッセージ504を送り得る。メッセージ504は、シンクデバイス60に、1つまたは複数のUIBCパラメータをセットするよう命令し得る。たとえば、図7の例において、メッセージ504は、シンクデバイス60に、ポート番号を1000にセットするよう命令する。シンクデバイス60がメッセージ504を受信した後、シンクデバイス60はメッセージ504が示すとおりにパラメータをセットし、メッセージ506をソースデバイス20に送り返し得る。メッセージ506は、シンクデバイス60がメッセージ504に示されるとおりに1つまたは複数のUIBCパラメータをセットしたことをソースデバイス20に確認する。
その後、ソースデバイス20は、メッセージ508をシンクデバイス60に送り得る。メッセージ508は、シンクデバイス60に、UIBCがイネーブルされたことを示すようにUIBCパラメータをセットする(たとえば、wfd_uibc_setting)よう命令し得る。シンクデバイス60は、UIBCがイネーブルされたことを示すようにUIBCパラメータをセットし、シンクデバイス60がメッセージ508において命令されるとおりにUIBCをセットしたことを確認するためのメッセージ510を送ることによって、メッセージ508に応答し得る。
図8は、ヒューマン入力デバイスコマンド(HIDC)入力報告のためにUIBCをネゴシエートするためのソースデバイス20とシンクデバイス60との間の一例の対話を示す通信図である。図8の例では、ソースデバイス20が、シンクデバイス60にメッセージ550を送る。メッセージ550は、シンクデバイス60のUIBC機能パラメータ(wfd_uibc_capability)を取得するための要求であり得る。シンクデバイス60は、メッセージ552をソースデバイス20に送り返すことによってメッセージ550に応答する。メッセージ552は、シンクデバイス60の、汎用入力メッセージおよびHIDC入力報告を与える機能を示す。図8の例において、メッセージ552は、シンクデバイス60がBluetoothマウスおよび赤外線遠隔制御装置のHIDC入力メッセージを与えることができることを示している(すなわち、hidc_cap_list = Mouse/BT, RemoteControl/Infrared)。メッセージ552は、シンクデバイス60が何ら汎用入力メッセージを与えないことも示している(すなわち、generic_cap_list = none)。
ソースデバイス20がメッセージ552を受信した後、ソースデバイス20は、シンクデバイス60にメッセージ554を送り得る。メッセージ554は、シンクデバイス60に、1つまたは複数のUIBCパラメータをセットするよう命令し得る。たとえば、図8の例において、メッセージ554は、シンクデバイス60に、ポート番号を1000にセットするよう命令する。シンクデバイス60がメッセージ554を受信した後、シンクデバイス60はメッセージ554が示すとおりにパラメータをセットし、メッセージ556をソースデバイス20に送り返し得る。メッセージ556は、シンクデバイス60がメッセージ554に示されるとおりに1つまたは複数のUIBCパラメータをセットしたことをソースデバイス20に確認する。
その後、ソースデバイス20は、メッセージ558をシンクデバイス60に送り得る。メッセージ558は、シンクデバイス60に、UIBCがイネーブルされたことを示すようにUIBCパラメータをセットする(たとえば、wfd_uibc_setting)よう命令し得る。シンクデバイス60は、UIBCがイネーブルされたことを示すようにUIBCパラメータをセットし、シンクデバイス60がメッセージ558において命令されるとおりにUIBCをセットしたことを確認するためのメッセージ560を送ることによって、メッセージ558に応答し得る。PTSPを介して適切な汎用またはHIDC機能がネゴシエートされると、UIBC機能がイネーブルされ、シンクデバイス60はUIBCを介してユーザ入力を部分要素として送り得る。図8の例では、UIBCはその時点で確立されている。
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータデータ記憶媒体または通信媒体を含み得る。いくつかの例において、コンピュータ可読媒体は、非一時的コンピュータ可読媒体を備え得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。
限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリのような、非一時的媒体、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
コードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内に与えられ得、または複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、または相互動作可能なハードウェアユニットの集合によって与えられてもよい。
本発明の様々な実施形態について説明した。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] ソースデバイスにおいて、複数の事前構成された報告フォーマット、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのヒューマン入力デバイス(HID)に関連付けられている、を記憶することと、
前記ソースデバイスにおいて、シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケット、前記1つまたは複数のIPパケットはHIDコマンド(HIDC)入力報告を備える、を受信することと、
前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別することと、
ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースすることと、
前記ユーザ入力に応答してメディアデータを生成することと、および
前記メディアデータを前記ソースデバイスから前記シンクデバイスに送ることとを備える、方法。
[C2] 前記事前構成された報告フォーマットはスキーマを含む、C1に記載の方法。
[C3] 前記1つまたは複数のIPパケットを受信することは、ワイヤレス通信チャネルを介して前記1つまたは複数のIPパケットを受信することを備える、C1に記載の方法。
[C4] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C1に記載の方法。
[C5] 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、C1に記載の方法。
[C6] 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、C5に記載の方法。
[C7] 前記データは前記シンクデバイスのIPアドレスを備え、
前記事前構成された報告フォーマットのうちの1つを識別することは、前記シンクデバイスの前記IPアドレスに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別することを備える、C1に記載の方法。
[C8] 前記データは前記IPアドレスおよびソースポートを備え、
前記事前構成された報告フォーマットのうちの1つを識別することは、前記シンクデバイスの前記IPアドレスおよび前記ソースポートに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別することを備える、C7に記載の方法。
[C9] 前記シンクデバイスからの前記1つまたは複数のIPパケットの受信に応答して、前記1つまたは複数のIPパケットが汎用入力メッセージまたは前記HIDC入力報告を備えるかを判定することをさらに備え、ここにおいて、前記汎用入力メッセージは、あるHIDクラスに属するHIDに対して汎用的である、C1に記載の方法。
[C10] 前記複数の事前構成された報告フォーマットを記憶することは、ユーザ入力バックチャネル(UIBC)を確立する前に前記複数の事前構成された報告フォーマットを記憶することを備え、
前記1つまたは複数のIPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDC入力報告を備える、C1に記載の方法。
[C11] 前記シンクデバイスはワイヤレスディスプレイ(WD)シンクであり、前記ソースデバイスはワイヤレスディスプレイ(WD)ソースである、C1に記載の方法。
[C12] ヒューマン入力デバイス(HID)からユーザ入力の指示を受信することと、
前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成することと、
ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケット、前記IPパケットは、前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備える、を送ることと、
前記ソースデバイスからメディアデータ、前記メディアデータは前記ユーザ入力に基づく、を受信することとを備える、方法。
[C13] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C12に記載の方法。
[C14] 前記HIDタイプ指示子は、前記報告フォーマットを識別する数値識別子を備える、C12に記載の方法。
[C15] 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、C14に記載の方法。
[C16] 前記1つまたは複数のIPパケットを送ることは、ワイヤレス通信チャネルを介して前記1つまたは複数のIPパケットを送ることを備える、C12に記載の方法。
[C17] 1つまたは複数のプロセッサを備えるコンピューティングデバイスであって、
複数の事前構成された報告フォーマット、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのヒューマン入力デバイス(HID)に関連付けられている、を記憶することと、
シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケット、前記1つまたは複数のIPパケットはHIDコマンド(HIDC)入力報告を備える、を受信することと、
前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別することと、
ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースすることと、
前記ユーザ入力に応答してメディアデータを生成することと、
前記メディアデータを前記コンピューティングデバイスから前記シンクデバイスに送ることと
を行うように構成されている前記コンピューティングデバイス。
[C18] 前記事前構成された報告フォーマットはスキーマを含む、C17に記載のコンピューティングデバイス。
[C19] 前記コンピューティングデバイスは、ワイヤレス通信チャネルを介して前記1つまたは複数のIPパケットを受信する、C17に記載のコンピューティングデバイス。
[C20] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C17に記載のコンピューティングデバイス。
[C21] 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、C17に記載のコンピューティングデバイス。
[C22] 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、C21に記載のコンピューティングデバイス。
[C23] 前記データは前記シンクデバイスのIPアドレスを備え、
前記1つまたは複数のプロセッサは、前記シンクデバイスの前記IPアドレスに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別するように構成されている、C17に記載のコンピューティングデバイス。
[C24] 前記データは前記IPアドレスおよびソースポートを備え、
前記1つまたは複数のプロセッサは、前記シンクデバイスの前記IPアドレスおよび前記ソースポートに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別するように構成されている、C23に記載のコンピューティングデバイス。
[C25] 前記1つまたは複数のプロセッサは、前記シンクデバイスからの前記1つまたは複数のIPパケットの受信に応答して、前記1つまたは複数のIPパケットが汎用入力メッセージまたは前記HIDC入力報告を備えるかを判定するように構成されており、ここにおいて、前記汎用入力メッセージは、あるHIDクラスに属するHIDに対して汎用的である、C17に記載のコンピューティングデバイス。
[C26] 前記1つまたは複数のプロセッサは、ユーザ入力バックチャネル(UIBC)を確立する前に前記複数の事前構成された報告フォーマットを記憶するように構成されており、
前記1つまたは複数のIPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDC入力報告を備える、C17に記載のコンピューティングデバイス。
[C27] 前記コンピューティングデバイスはワイヤレスディスプレイ(WD)ソースデバイスであり、前記シンクデバイスはワイヤレスディスプレイ(WD)シンクデバイスである、C17に記載のコンピューティングデバイス。
[C28] ヒューマン入力デバイス(HID)からユーザ入力の指示を受信することと、
前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成することと、
ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケットを送ることであって、前記IPパケットは、前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備える、送ることと、
前記ソースデバイスからメディアデータ、前記メディアデータは前記ユーザ入力に基づく、を受信することと
を行うように構成されている1つまたは複数のプロセッサを備えるコンピューティングデバイス。
[C29] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C28に記載のコンピューティングデバイス。
[C30] 前記HIDタイプ指示子は、前記報告フォーマットを識別する数値識別子を備える、C28に記載のコンピューティングデバイス。
[C31] 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、C30に記載のコンピューティングデバイス。
[C32] 前記1つまたは複数のIPパケットを送ることは、ワイヤレス通信チャネルを介して前記1つまたは複数のIPパケットを送ることを備える、C28に記載のコンピューティングデバイス。
[C33] コンピューティングデバイスであって、
複数の事前構成された報告フォーマット、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのヒューマン入力デバイス(HID)に関連付けられる、を記憶するための手段と、
シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケット、前記1つまたは複数のIPパケットはHIDコマンド(HIDC)入力報告を備える、を受信するための手段と、
前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別するための手段と、
ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースするための手段と、
前記ユーザ入力に応答してメディアデータを生成するための手段と、
前記メディアデータを前記コンピューティングデバイスから前記シンクデバイスに送るための手段とを備える、前記コンピューティングデバイス。
[C34] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C33に記載のコンピューティングデバイス。
[C35] 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、C33に記載のコンピューティングデバイス。
[C36] ヒューマン入力デバイス(HID)からユーザ入力の指示を受信するための手段と、
前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成するための手段と、
ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケット、前記IPパケットは、前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備える、を送るための手段と、
前記ソースデバイスからメディアデータ、前記メディアデータは前記ユーザ入力に基づく、を受信するための手段と
を備える、コンピューティングデバイス。
[C37] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C36に記載のコンピューティングデバイス。
[C38] 前記HIDタイプ指示子は、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、C36に記載のコンピューティングデバイス。
[C39] 命令を記憶する1つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記命令は、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサを、
前記コンピューティングデバイスにおいて、複数の事前構成された報告フォーマット、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのヒューマン入力デバイス(HID)に関連付けられている、を記憶することと、
シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケット、前記1つまたは複数のIPパケットはHIDコマンド(HIDC)入力報告を備える、を受信することと、
前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別することと、
ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースすることと、
前記ユーザ入力に応答してメディアデータを生成することと、
前記メディアデータを前記ソースデバイスから前記シンクデバイスに送ることと
を行うように構成する、前記コンピュータプログラム製品。
[C40] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C39に記載のコンピュータプログラム製品。
[C41] 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、C39に記載のコンピュータプログラム製品。
[C42] 命令を記憶する1つまたは複数のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記命令は、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサを、
ヒューマン入力デバイス(HID)からユーザ入力の指示を受信することと、
前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成することと、
ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケット、前記IPパケットは、前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備える、を送ることと、
前記ソースデバイスからメディアデータ、前記メディアデータは前記ユーザ入力に基づく、を受信することと
を行うように構成する、前記コンピュータプログラム製品。
[C43] 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、C42に記載のコンピュータプログラム製品。
[C44] 前記HIDタイプ指示子は、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、C42に記載のコンピュータプログラム製品。

Claims (40)

  1. ソースデバイスにおいて、ヒューマン入力デバイス(HID)からユーザ入力の指示を受信するように構成されたシンクデバイスとのユーザ入力バックチャネル(UIBC)を確立する前に複数の事前構成された報告フォーマットを記憶すること、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのHIDに関連付けられ、ここにおいて、前記ソースデバイスは、特定の複数のHIDからの入力に関するHIDコマンド(HIDC)入力報告に対するフォーマットを示すスキーマを受信せず、前記シンクデバイスはワイヤレスディスプレイ(WD)シンクであり前記ソースデバイスはWDソースである、と、
    前記ソースデバイスによって、前記シンクデバイスとの前記UIBCを確立することと、
    前記ソースデバイスにおいて、前記シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケットを受信すること、前記1つまたは複数のIPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDによって受信された前記ユーザ入力に対して前記シンクデバイスによって生成されたHIDコマンド(HIDC)入力報告を備え、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記ソースデバイスによって、前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別することと、
    前記ソースデバイスによって、ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースすることと、
    前記ソースデバイスによって、前記ユーザ入力に応答してメディアデータを生成することと、および
    前記ソースデバイスによって、前記メディアデータを前記ソースデバイスから前記シンクデバイスに送ることと
    を備える、方法。
  2. 前記事前構成された報告フォーマットはスキーマを含む、請求項1に記載の方法。
  3. 前記1つまたは複数のIPパケットを受信することは、ワイヤレス通信ネットワークを介して前記1つまたは複数のIPパケットを受信することを備える、請求項1に記載の方法。
  4. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth(登録商標)規格に準拠する、請求項1に記載の方法。
  5. 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、請求項1に記載の方法。
  6. 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、請求項5に記載の方法。
  7. 前記データは前記シンクデバイスのIPアドレスを備え、
    前記事前構成された報告フォーマットのうちの1つを識別することは、前記シンクデバイスの前記IPアドレスに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別することを備える、請求項1に記載の方法。
  8. 前記データは前記IPアドレスおよびソースポートを備え、
    前記事前構成された報告フォーマットのうちの1つを識別することは、前記シンクデバイスの前記IPアドレスおよび前記ソースポートに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別することを備える、請求項7に記載の方法。
  9. 前記シンクデバイスからの前記1つまたは複数のIPパケットの受信に応答して、前記1つまたは複数のIPパケットが汎用入力メッセージまたは前記HIDC入力報告を備えるかを判定することをさらに備え、ここにおいて、前記汎用入力メッセージは、あるHIDクラスに属するHIDに対して汎用的である、請求項1に記載の方法。
  10. シンクデバイスによって、ヒューマン入力デバイス(HID)によって受信されるユーザ入力の指示を受信することと、
    前記シンクデバイスによって、ソースデバイスとのユーザ入力バックチャネル(UIBC)を確立すること、前記シンクデバイスはワイヤレスディスプレイ(WD)シンクであり前記ソースデバイスはWDソースである、と、
    前記シンクデバイスによって、および前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成すること、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記シンクデバイスによって、前記ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケットを送ること、前記IPパケットは前記UIBCを介して送信されるUIBCメッセージを備え前記UIBCメッセージは前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備え、ここにおいて、前記シンクデバイスは、特定の複数のHIDからの入力に関する前記HIDC入力報告に対するフォーマットを示すスキーマを前記ソースデバイスに送らない、と、
    前記シンクデバイスによって、前記ソースデバイスからメディアデータを受信すること、前記メディアデータは前記ユーザ入力に基づく
    を備える、方法。
  11. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項10に記載の方法。
  12. 前記HIDタイプ指示子は、前記報告フォーマットを識別する数値識別子を備える、請求項10に記載の方法。
  13. 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、請求項12に記載の方法。
  14. 前記1つまたは複数のIPパケットを送ることは、ワイヤレス通信ネットワークを介して前記1つまたは複数のIPパケットを送ることを備える、請求項10に記載の方法。
  15. コンピューティングデバイスであって、前記コンピューティングデバイスは下記を備える、
    1つまたは複数のプロセッサであって、
    ヒューマン入力デバイス(HID)からユーザ入力の指示を受信するように構成されたシンクデバイスとのユーザ入力バックチャネル(UIBC)を確立する前に複数の事前構成された報告フォーマットを記憶すること、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのHIDに関連付けられ、ここにおいて、前記コンピューティングデバイスは、特定の複数のHIDからの入力に関するHIDコマンド(HIDC)入力報告に対するフォーマットを示すスキーマを受信せず、前記シンクデバイスはワイヤレスディスプレイ(WD)シンクであり前記コンピューティングデバイスはWDソースである、と、
    前記ソースデバイスによって、前記シンクデバイスとの前記UIBCを確立することと、
    前記シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケットを受信すること、前記1つまたは複数のIPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDによって受信された前記ユーザ入力に対して前記シンクデバイスによって生成されたHIDコマンド(HIDC)入力報告を備え、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別することと、
    ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースすることと、
    前記ユーザ入力に応答してメディアデータを生成することと、
    を行うように構成される前記プロセッサと、
    前記メディアデータを前記コンピューティングデバイスから前記シンクデバイスに送るように構成される送信機ユニット。
  16. 前記事前構成された報告フォーマットはスキーマを含む、請求項15に記載のコンピューティングデバイス。
  17. 前記コンピューティングデバイスは、ワイヤレス通信ネットワークを介して前記1つまたは複数のIPパケットを受信する、請求項15に記載のコンピューティングデバイス。
  18. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項15に記載のコンピューティングデバイス。
  19. 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、請求項15に記載のコンピューティングデバイス。
  20. 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、請求項19に記載のコンピューティングデバイス。
  21. 前記データは前記シンクデバイスのIPアドレスを備え、
    前記1つまたは複数のプロセッサは、前記シンクデバイスの前記IPアドレスに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別するように構成されている、請求項15に記載のコンピューティングデバイス。
  22. 前記データは前記IPアドレスおよびソースポートを備え、
    前記1つまたは複数のプロセッサは、前記シンクデバイスの前記IPアドレスおよび前記ソースポートに少なくとも部分的に基づいて、前記事前構成された報告フォーマットのうちの1つを識別するように構成されている、請求項21に記載のコンピューティングデバイス。
  23. 前記1つまたは複数のプロセッサは、前記シンクデバイスからの前記1つまたは複数のIPパケットの受信に応答して、前記1つまたは複数のIPパケットが汎用入力メッセージまたは前記HIDC入力報告を備えるかを判定するように構成されており、ここにおいて、前記汎用入力メッセージは、あるHIDクラスに属するHIDに対して汎用的である、請求項15に記載のコンピューティングデバイス。
  24. コンピューティングデバイスであって、前記コンピューティングデバイスは下記を備える、
    1つまたは複数のプロセッサであって、
    ヒューマン入力デバイス(HID)によって受信されるユーザ入力の指示を受信することと、
    ソースデバイスとのユーザ入力バックチャネル(UIBC)を確立すること、前記コンピューティングデバイスはワイヤレスディスプレイ(WD)シンクであり前記ソースデバイスはWDソースである、と、
    前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成すること、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケットを送ること、前記IPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備え、ここにおいて、前記コンピューティングデバイスは特定の複数のHIDからの入力に関する前記HIDコマンド入力報告に対するフォーマットを示すスキーマを前記ソースデバイスに送らず、ここにおいて、前記HIDは前記特定の複数のHIDのうちの1つである、と、
    を行うように構成された前記プロセッサと、
    前記ソースデバイスからメディアデータを受信するように構成された受信機ユニット、前記メディアデータは前記ユーザ入力に基づく
  25. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項24に記載のコンピューティングデバイス。
  26. 前記HIDタイプ指示子は、前記報告フォーマットを識別する数値識別子を備える、請求項24に記載のコンピューティングデバイス。
  27. 前記1つまたは複数のIPパケットは、前記数値識別子を指定するフィールドと、前記HIDC入力報告を含むフィールドとを含むメッセージを備える、請求項26に記載のコンピューティングデバイス。
  28. 前記1つまたは複数のIPパケットを送ることは、ワイヤレス通信ネットワークを介して前記1つまたは複数のIPパケットを送ることを備える、請求項24に記載のコンピューティングデバイス。
  29. コンピューティングデバイスであって、
    ヒューマン入力デバイス(HID)からユーザ入力の指示を受信するように構成されたシンクデバイスとのユーザ入力バックチャネル(UIBC)を確立する前に複数の事前構成された報告フォーマットを記憶するための手段、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのHIDに関連付けられ、ここにおいて、前記コンピューティングデバイスは、特定の複数のHIDからの入力に関するHIDコマンド(HIDC)入力報告に対するフォーマットを示すスキーマを受信せず、前記シンクデバイスはワイヤレスディスプレイ(WD)シンクであり前記コンピューティングデバイスはWDソースである、と、
    前記シンクデバイスとの前記UIBCを確立するための手段と、
    前記シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケットを受信するための手段、前記1つまたは複数のIPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDによって受信された前記ユーザ入力に対して前記シンクデバイスによって生成されたHIDコマンド(HIDC)入力報告を備え、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別するための手段と、
    ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースするための手段と、
    前記ユーザ入力に応答してメディアデータを生成するための手段と、
    前記メディアデータを前記コンピューティングデバイスから前記シンクデバイスに送るための手段と
    を備える、前記コンピューティングデバイス。
  30. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項29に記載のコンピューティングデバイス。
  31. 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、請求項29に記載のコンピューティングデバイス。
  32. コンピューティングデバイスであって、
    ヒューマン入力デバイス(HID)によって受信されるユーザ入力の指示を受信するための手段と、
    ソースデバイスとのユーザ入力バックチャネル(UIBC)を確立するための手段、前記コンピューティングデバイスはワイヤレスディスプレイ(WD)シンクであり前記ソースデバイスはWDソースである、と、
    前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成するための手段、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケットを送るための手段、前記IPパケットは前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備え、ここにおいて、前記コンピューティングデバイスは、特定の複数のHIDからの入力に関する前記HIDC入力報告に対するフォーマットを示すスキーマを前記ソースデバイスに送らず、ここにおいて、前記HIDは前記特定の複数のHIDのうちの1つである、と、
    前記ソースデバイスからメディアデータを受信するための手段、前記メディアデータは前記ユーザ入力に基づく
    を備える、前記コンピューティングデバイス。
  33. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項32に記載のコンピューティングデバイス。
  34. 前記HIDタイプ指示子は、前記報告フォーマットのうちの1つを識別する数値識別子を備える、請求項32に記載のコンピューティングデバイス。
  35. 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサを、
    前記コンピューティングデバイスにおいて、ヒューマン入力デバイス(HID)からユーザ入力の指示を受信するように構成されたシンクデバイスとのユーザ入力バックチャネル(UIBC)を確立する前に複数の事前構成された報告フォーマットを記憶すること、ここにおいて、前記事前構成された報告フォーマットの各々は異なるタイプのHIDに関連付けられ、ここにおいて、前記コンピューティングデバイスは、特定の複数のHIDからの入力に関するHIDコマンド(HIDC)入力報告に対するフォーマットを示すスキーマを受信せず、前記シンクデバイスはワイヤレスディスプレイ(WD)シンクであり前記コンピューティングデバイスはWDソースである、と、
    前記シンクデバイスとの前記UIBCを確立することと、
    前記シンクデバイスから1つまたは複数のインターネットプロトコル(IP)パケットを受信すること、前記1つまたは複数のIPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDによって受信された前記ユーザ入力に対して前記シンクデバイスによって生成されたHIDコマンド(HIDC)入力報告を備え、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記1つまたは複数のIPパケット内のデータに基づいて、前記事前構成された報告フォーマットのうちの1つを識別することと、
    ユーザ入力を確定するために、前記識別された事前構成された報告フォーマットに基づいて前記HIDC入力報告をパースすることと、
    前記ユーザ入力に応答してメディアデータを生成することと、
    前記メディアデータを前記ソースデバイスから前記シンクデバイスに送ることと
    を行うように構成する、前記コンピュータ可読記憶媒体
  36. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項35に記載のコンピュータ可読記憶媒体
  37. 前記データは、前記事前構成された報告フォーマットのうちの1つを識別する数値識別子を備える、請求項35に記載のコンピュータ可読記憶媒体
  38. 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、実行されると、コンピューティングデバイスの1つまたは複数のプロセッサを、
    ヒューマン入力デバイス(HID)によって受信されるユーザ入力の指示を受信することと、
    ソースデバイスとのユーザ入力バックチャネル(UIBC)を確立すること、前記コンピューティングデバイスはワイヤレスディスプレイ(WD)シンクであり前記ソースデバイスはWDソースである、と、
    前記ユーザ入力に基づいて、報告フォーマットに準拠するHIDコマンド(HIDC)入力報告を生成すること、前記HIDC入力報告は前記HIDによって受信された前記ユーザ入力を記述する、と、
    前記ソースデバイスに1つまたは複数のインターネットプロトコル(IP)パケットを送ること、前記IPパケットは、前記UIBCを介して送信されるUIBCメッセージを備え、前記UIBCメッセージは前記HIDC入力報告と、前記報告フォーマットを識別するHIDタイプ指示子とを備え、ここにおいて、前記コンピューティングデバイスは特定の複数のHIDからの入力に関する前記HIDC入力報告に対するフォーマットを示すスキーマを前記ソースデバイスに送らず、ここにおいて、前記HIDは前記特定の複数のHIDのうちの1つである、と、
    前記ソースデバイスからメディアデータを受信すること、前記メディアデータは前記ユーザ入力に基づく
    を行うように構成する、前記コンピュータ可読記憶媒体
  39. 前記HIDC入力報告は、ユニバーサルシリアルバス(USB)規格またはBluetooth規格に準拠する、請求項38に記載のコンピュータ可読記憶媒体
  40. 前記HIDタイプ指示子は、前記報告フォーマットのうちの1つを識別する数値識別子を備える、請求項38に記載のコンピュータ可読記憶媒体
JP2014531924A 2011-09-19 2012-09-19 インターネットプロトコルを介したヒューマン入力デバイスコマンドの送信 Expired - Fee Related JP5908592B2 (ja)

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 US9106651B2 (en) 2011-09-19 2012-09-12 Sending human input device commands over internet protocol
US13/612,210 2012-09-12
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
JP2014532218A JP2014532218A (ja) 2014-12-04
JP5908592B2 true JP5908592B2 (ja) 2016-04-26

Family

ID=46970438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014531924A Expired - Fee Related JP5908592B2 (ja) 2011-09-19 2012-09-19 インターネットプロトコルを介したヒューマン入力デバイスコマンドの送信

Country Status (8)

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

Families Citing this family (33)

* 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
US9582239B2 (en) 2011-01-21 2017-02-28 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
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
US10698505B2 (en) 2016-01-13 2020-06-30 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 北京视博云信息技术有限公司 一种云游戏的外设数据传输方法及系统
CN115396520B (zh) * 2021-05-19 2024-10-11 华为技术有限公司 控制方法、装置、电子设备及可读存储介质
KR102664915B1 (ko) * 2021-12-06 2024-05-17 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
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
KR101354316B1 (ko) * 2005-03-04 2014-01-22 애플 인크. 다기능 휴대용 장치
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
DE08713901T1 (de) * 2007-01-22 2010-02-25 Bell Helicopter Textron, Inc., Fort Worth System und verfahren zur interaktiven anzeige von daten in einer bewegungserfassungsumgebung
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
CN102067085B (zh) * 2008-04-17 2014-08-13 微系统道格有限公司 用于向远程客户机虚拟传送软件应用程序的方法和系统
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
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
JP5918270B2 (ja) * 2011-01-14 2016-05-18 サムスン エレクトロニクス カンパニー リミテッド ワイファイダイレクト通信方式におけるシンクデバイスからソースデバイスにユーザの入力を送信するための方法及び装置
KR101742578B1 (ko) * 2011-01-14 2017-06-01 삼성전자주식회사 컨텐츠 관리 방법 및 이를 적용한 디스플레이 장치
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
US10135900B2 (en) * 2011-01-21 2018-11-20 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
US9582239B2 (en) * 2011-01-21 2017-02-28 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
US9787725B2 (en) * 2011-01-21 2017-10-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
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
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
EP2759112A1 (en) 2014-07-30
CN103814561B (zh) 2017-03-01
EP2759112B1 (en) 2018-10-24
JP2014532218A (ja) 2014-12-04
KR20140063865A (ko) 2014-05-27
US9106651B2 (en) 2015-08-11
CN103814561A (zh) 2014-05-21
ES2702782T3 (es) 2019-03-05
HUE041390T2 (hu) 2019-05-28
US20130246565A1 (en) 2013-09-19
WO2013043702A1 (en) 2013-03-28
KR101541851B1 (ko) 2015-08-04

Similar Documents

Publication Publication Date Title
JP5908592B2 (ja) インターネットプロトコルを介したヒューマン入力デバイスコマンドの送信
JP6224133B2 (ja) ワイヤレスディスプレイデバイスのためのユーザ入力制御のためのコネクションレストランスポート
JP5826861B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP6013562B2 (ja) ワイヤレスシンクとワイヤレスソースデバイスとの間で機能をネゴシエートすること
JP5714726B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP6144301B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP5694568B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP5944414B2 (ja) ワイヤレスバックチャネルのためのユーザ入力デバイス
JP6219310B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネルを介した双方向トンネリング
JP2016036140A (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP2016036154A (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP2016021754A (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
JP5847846B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160323

R150 Certificate of patent or registration of utility model

Ref document number: 5908592

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees