Intel Wireless Display:開発者向け

いいえ、これはHabraエンジンの間違いではなく、 WiDiテクノロジーに関する先週公開された記事の繰り返しでもありません。 今回は、開発者がアプリケーションでWiDiを使用する方法について説明します。 WiDiを操作するためのWiDi拡張SDKがあることをご存知ですか? いや? 次に、この記事はあなたのためです。



開発者のどれがこれを役に立つと思うでしょうか? 理論的には、これは開発者の想像力によってのみ制限されます。 表面に横たわるアイデアは、ビデオまたはオーディオを視覚化して再生するプログラム、写真を表示するプログラムです。 スマートプログラムは、システム内のWiDiの存在を検出し、ユーザーにテレビ画面に再生可能なコンテンツを表示するよう促すことができます。 現時点では、このトピックはあまり重要ではない可能性があります-現時点ではそれほど多くのWiDiアダプターはありません。



しかし、近い将来、WiDiアダプターがテレビにすぐにインストールされ始めた後、たとえばLGはCES 2012で最初のテレビをすでにデモンストレーションし、今年のリリースを開始する予定であるため、このトピックは多くの開発者の関心を引くでしょう。



WiDi機能をアプリケーションに統合したい開発者向けに、IntelはIntel WiDi Extensions SDKをリリースしました。 このSDKを使用すると、次のことができます。















SDKには、ドキュメント、プロジェクトに含めるために必要なファイル、およびC ++、C#の例があります。



ところで、WiDiで動作するアプリケーションを開発するために、このテクノロジーをサポートするハードウェアは必要ありません。 このような鉄は、テストにのみ必要です。



プログラムでWiDiを使用するための機能の構築を開始します。



まず、サイトにアクセスして、 Intel WiDi Extensions SDKをダウンロードする必要があります 。 アーカイブ内には、SDK自体を含むディストリビューションがあります。 保存、解凍、インストールします。



テストアプリケーションを作成し、ヘッダーファイルをプロジェクトに接続します



#include <IntelWiDiExtensions_i.h>
      
      





最初に行うことは、IWiDiExtensionsを作成して初期化することです



 HRESULT hr; hr = CoCreateInstance(CLSID_WiDiExtensions, NULL, CLSCTX_INPROC_SERVER, __uuidof(IWiDiExtensions), (LPVOID*)&m_pWiDi); if(hr == S_OK) { hr = m_pWiDi->Initialize((DWORD)m_hWnd); }
      
      





すべてのWiDi API関数は非同期です。 操作の結果を通知するために、 Initialize関数が呼び出されたときにハンドルが渡されたウィンドウにウィンドウメッセージが送信されます。



 HRESULT Initialize( HWND windowHandle );
      
      





初期化の正常終了に関する通知を受信するには、アプリケーションウィンドウでWM_WIDI_INITIALIZEDメッセージを処理できる必要があります。



初期化プロセス中に発生したエラーの通知を受信するには、 WM_WIDI_INITIALIZATION_FAILEDメッセージが使用されます。 WM_WIDI_INITIALIZATION_FAILEDメッセージハンドラのwParamパラメータには、対応するエラーコードが含まれます。



 RC_WIDI_APP_NOT_FOUND //       WiDi RC_WIDI_FAILED_TO_START //        WiDi RC_INTERNAL_ERROR //    RC_WIDI_APPLICATION_ERROR //  
      
      





初期化に成功したら、利用可能なWiDiアダプターの検索を開始できます。 これは、 StartScanForAdapters関数を使用して行われます



 HRESULT StartScanForAdapters();
      
      





見つかったアダプタについて通知するために、メッセージWM_WIDI_ADAPTER_DISCOVEREDが使用されます。 lParamパラメーターは、アダプターIDへのポインターになります。 この識別子は、選択したアダプターに接続するために必要です。



検索が完了すると、ウィンドウはメッセージWM_WIDI_SCAN_COMPLETEを受け取ります。 wParamパラメーターにはコードが含まれ、その分析はスキャンが完了した理由を判断するのに役立ちます。



 RC_SUCCESS //    RC_UNABLE_TO_START_SCAN //     RC_INTERNAL_ERROR //    RC_WIDI_APPLICATION_ERROR //        WiDi RC_CONNECT_CANCELLED_SCAN //   
      
      







1つ以上のデバイスが検出された場合、接続を続行できます。 接続は、 StartConnectionToAdapter関数を呼び出すことによって行われます。



 HRESULT StartConnectionToAdapter( BSTR AdapterUniqueID, int SourceScreenResolution, int TargetScreenResolution, ScreenMode Mode );
      
      





接続に成功すると、ウィンドウはWM_WIDI_CONNECTEDメッセージを受け取ります。 問題が発生した場合-WM_WIDI_DISCONNECT_FAILED 、wParamパラメーターには次のコードが含まれます。



 RC_CONNECTION_DROPPED //     RC_USER_DISCONNECT //    
      
      





アダプターIDは、 lParamパラメーターに渡されます。



今のところすべてです。 WiDi Extensions SDKの機能の詳細については、SDKに付属のドキュメントをご覧ください。 質問があります-ここ、コメント、またはIntel Software Networkフォーラムで質問してください。



All Articles