Win32 API 日本語リファレンス
ホームMedia.DirectShow › IBDA_DiseqCommand

IBDA_DiseqCommand

COM
IIDf84e2ab0-3c6b-45e3-a0fc-8669d4b81f11継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Digital Satellite Equipment Control (DiSEqC) コマンドを使用して、ケーブルテレビ衛星機器を制御します。

解説(Remarks)

使用しているケーブルテレビ機器に応じて、このインターフェースを使用して LNB コンバーターのソースを選択したり、モーター駆動のディッシュを動かしたり、無線周波数 (RF) スイッチング機器を制御したりできます。

このインターフェースのインターフェース識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IBDA_DiseqCommand)

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT put_EnableDiseqCommands(BOOLEAN bEnable)

Digital Satellite Equipment Control (DiSEqC) コマンドの使用を有効または無効にします。

bEnableBOOLEANinTRUE の場合、DiSEqC コマンドが有効になります。それ以外の場合、DiSEqC コマンドは無効になります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

衛星の設置状況によっては、DiSEqC コマンドが必要になる場合があります。ただし、DiSEqC を有効にすると、ドライバーがトランスポンダーを切り替えるのにかかる時間が長くなることがあります (通常は 100〜300 ミリ秒)。したがって、DiSEqC コマンドが不要な場合は無効にすることをお勧めします。

vtbl 4 HRESULT put_DiseqLNBSource(DWORD ulLNBSource)

低雑音ブロック (LNB) コンバーターのソースを設定します。

ulLNBSourceDWORDin

使用する LNB コンバーターのソース。

Value Meaning
0
ソース位置 A。
1
ソース位置 B。
2
ソース位置 C。
3
ソース位置 D。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT put_DiseqUseToneBurst(BOOLEAN bUseToneBurst)

Tone-Burst コマンドを有効または無効にします。

bUseToneBurstBOOLEANinTRUE の場合、Tone-Burst コマンドが有効になります。それ以外の場合、Tone-Burst コマンドは無効になります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

Tone-Burst コマンドは、22 kHz のキャリア信号を使用してソース位置 A またはソース位置 B のいずれかを選択します。

通常、アプリケーションが IBDA_DiseqCommand::put_DiseqLNBSource を呼び出すと、ドライバーは必要に応じて Tone-Burst を有効または無効にします。ただし、チャンネル切り替えを改善するため、または特定の機器との互換性を維持するために、put_DiseqUseToneBurst メソッドを使用してこのモードのオン/オフを切り替えることができます。Tone-Burst を使用すると、チューニングに必要な時間が約 40 ミリ秒増加する可能性がある点に注意してください。

vtbl 6 HRESULT put_DiseqRepeats(DWORD ulRepeats)

Digital Satellite Equipment Control (DiSEqC) コマンドの繰り返しを有効または無効にします。

ulRepeatsDWORDin各 DiSEqC コマンドを繰り返す回数。コマンドの繰り返しを無効にするには、ulRepeats を 0 に設定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

2 つの DiSEqC スイッチがカスケード接続されている場合、チューナーは遠い側のデバイスに対してコマンドを繰り返す必要が生じることがあります。ただし、コマンドを繰り返すと、チューニングに必要な時間が約 100 ミリ秒増加する可能性があります。したがって、コマンドの繰り返しが不要な場合は無効にすることをお勧めします。

vtbl 7 HRESULT put_DiseqSendCommand(DWORD ulRequestId, DWORD ulcbCommandLen, BYTE* pbCommand)

Digital Satellite Equipment Control (DiSEqC) コマンドを送信します。

ulRequestIdDWORDinアプリケーションが割り当てる、コマンドの識別子。
ulcbCommandLenDWORDinpbCommand 配列のサイズ (バイト単位)。
pbCommandBYTE*inフレーミングバイトから始まる DiSEqC コマンドを格納したバイト配列へのポインター。パリティビットはドライバーが挿入します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、DiSEqC コマンドセットのバージョン 1.2 以降で必要です。

ドライバーからのコマンド応答を取得するには、IBDA_DiseqCommand::get_DiseqResponse を呼び出します。

vtbl 8 HRESULT get_DiseqResponse(DWORD ulRequestId, DWORD* pulcbResponseLen, BYTE* pbResponse)

Digital Satellite Equipment Control (DiSEqC) コマンドに対するドライバーの応答を取得します。

ulRequestIdDWORDinコマンドの識別子。アプリケーションが IBDA_DiseqCommand::put_DiseqSendCommand を呼び出したときにこの値を割り当てます。
pulcbResponseLenDWORD*inout入力時には、pbResponse 配列のサイズ (バイト単位) を指定します。出力時には、pbResponse バッファーに書き込まれたデータのバイト数を受け取ります。
pbResponseBYTE*inoutドライバーの応答を受け取るバイト配列へのポインター。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

Return code Description
S_OK
メソッドは成功しました。
BDA_E_BUFFER_TOO_SMALL
pbResponse パラメーターで指定されたバッファーが小さすぎます。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IBDA_DiseqCommand "{F84E2AB0-3C6B-45E3-A0FC-8669D4B81F11}"
#usecom global IBDA_DiseqCommand IID_IBDA_DiseqCommand "{}"
#comfunc global IBDA_DiseqCommand_put_EnableDiseqCommands  3 int
#comfunc global IBDA_DiseqCommand_put_DiseqLNBSource       4 int
#comfunc global IBDA_DiseqCommand_put_DiseqUseToneBurst    5 int
#comfunc global IBDA_DiseqCommand_put_DiseqRepeats         6 int
#comfunc global IBDA_DiseqCommand_put_DiseqSendCommand     7 int,int,var
#comfunc global IBDA_DiseqCommand_get_DiseqResponse        8 int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。