class DisplayData -- ディスプレイデータ¶
DisplayData クラスは、接続された HDMI / DisplayPort ディスプレイのサイドチャネルリンクへのアクセスを提供します:
DDC(Display Data Channel)は、ディスプレイの EDID を伝送する I2C バスです。EDID は、パネルの機能(メーカー、対応する解像度とリフレッシュレート、カラーおよびオーディオフォーマットなど)を記述した構造化ブロックです。ソースデバイスは起動時に一度これを照会し、シンクが何をサポートしているかを把握します。
CEC(Consumer Electronics Control)は、接続された HDMI / DisplayPort デバイス同士が短い制御パケット(電源のオン / オフ、入力切り替え、音量、リモコン転送など)を交換できるようにする単線双方向バスです。
いずれか一方または両方のチャネルを構築時に有効化できます。生の EDID は display_id() で読み取ります。CEC フレームは send_frame() で送信でき、receive_frame() で同期的にポーリングするか、frame_callback() でコールバックにルーティングできます。
例 -- 接続されたディスプレイの EDID を照会し、論理アドレス 0 宛ての CEC フレームをリッスンする:
import display
data = display.DisplayData(cec=True, ddc=True)
# Read the EDID once at startup.
edid = data.display_id()
print("EDID:", edid)
def on_frame(src, payload):
print("CEC from {:#x}: {}".format(src, payload))
data.frame_callback(on_frame, 0)
コンストラクタ¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
cecをTrueに設定すると、外部ディスプレイとの CEC 通信が有効になります。ddcをTrueに設定すると、外部ディスプレイとの DDC 通信が有効になります。ddc_addr外部ディスプレイ EEPROM の I2C アドレス。- display_id() bytes¶
外部ディスプレイの EDID データを
bytesオブジェクトとして返します。EDID ヘッダーとチェックサムが検証され、すべてのセクションが連結されて 1 つのbytesオブジェクトになります。失敗時にはOSErrorを送出します。
- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
dataを含む CEC フレームをsrc_addrからdst_addrに送信します。失敗時にはOSErrorを送出します。