このページでは

C

Qul::Platform::DeviceLinkInterface Class

class Qul::Platform::DeviceLinkInterface

プラットフォームが実装するインターフェースを提供する。詳細...

Header: #include <platform/devicelink.h>
Since: Qt Quick Ultralite (Platform) 2.3

パブリック関数

virtual Qul::Platform::ChunkedFramebufferDataTransferSizes chunkedFramebufferDataTransferSizes(const Qul::PlatformInterface::LayerEngine::ItemLayer *layer) const
virtual void framebufferDataTransferComplete()
virtual Qul::Platform::FramebufferFormat framebufferFormat(const Qul::PlatformInterface::LayerEngine::ItemLayer *layer) = 0
virtual void platformInit() = 0
virtual Qul::Platform::FramebufferDataChunk requestFramebufferDataChunk(const Qul::PlatformInterface::LayerEngine::ItemLayer *layer, const Qul::PlatformInterface::Rect &rect)
virtual void transmitChars(const uint8_t *data, uint32_t size) = 0

詳細説明

デバイスリンクを使用する各プラットフォームは、このインターフェースの実装を提供する必要があります。

Qul::Platform::DeviceLink「デバイスリンク通信の移植」も参照して ください。

メンバー関数ドキュメント

[virtual] Qul::Platform::ChunkedFramebufferDataTransferSizes DeviceLinkInterface::chunkedFramebufferDataTransferSizes(const Qul::PlatformInterface::LayerEngine::ItemLayer *layer) const

与えられたlayer に対して、チャンクされたフレームバッファデータの転送に使用するサイズを取得します。

チャンクされたフレームバッファデータは、アプリケーションのディスプレイ回転に応じて、常にその時点で完全な垂直または水平スキャンラインが要求されます。

Qul::Platform::ChunkedFramebufferDataTransferSizes::chunkHeight の値は、フレームバッファデータがフル水平スキャンラインで要求された場合に使用するチャンクの高さです。

Qul::Platform::ChunkedFramebufferDataTransferSizes::chunkWidth の値は、フレームバッファデータが完全な垂直スキャンラインを要求された場合に使用するチャンクの幅です。

この関数はframebufferFormat() が nullptr アドレスを返した場合にのみ呼び出されます。常にフレームバッファデータ全体のアドレスを取得できるのであれば、この関数を実装する必要はありません。

プラットフォームがマルチレイヤーをサポートしていない場合、layer パラメーターは無視できます。

フレームバッファデータをレイヤーごとに読み込むことができない場合、layer パラメータは、フレームバッファデータを読み込むスクリーンを特定するために使用されるべきであるが、プラットフォームはスクリーン全体のフレームバッファデータを返すことを選択できる。

Qul::Platform::DeviceLinkInterface::requestFramebufferDataChunk()も参照

[virtual] void DeviceLinkInterface::framebufferDataTransferComplete()

フレームバッファデータ転送完了の合図

framebufferFormat またはrequestFramebufferDataChunk を呼び出すことによって開始されたフレームバッファデータ転送が完了した。

プラットフォームはこれを実装する必要はないかもしれないが、フレームバッファ転送をサポートするために一時的なリソースが割り当てられている場合には便利かもしれない。

[pure virtual] Qul::Platform::FramebufferFormat DeviceLinkInterface::framebufferFormat(const Qul::PlatformInterface::LayerEngine::ItemLayer *layer)

与えられたlayer のフレームバッファに関する情報を取得する。

これは、スクリーンショットが要求されたときに、デバイスリンク実装がデータを読み込んでホストに転送するために使用される。

Qul::Platform::FramebufferFormat::address ポインタは、framebufferDataTransferComplete() が呼び出されるまで有効であると仮定される。

フレームバッファデータ全体を1つのチャンクで読み込むことができない場合は、Qul::Platform::FramebufferFormat::address を nullptr に、Qul::Platform::FramebufferFormat::bytesPerLine を 0 に設定します。そうすることで、フレームバッファデータを読み込むために、requestHorizontalFramebufferDataChunk() または requestVerticalFramebufferDataChunk() が複数回呼び出されるようになります。

プラットフォームがマルチレイヤーをサポートしていない場合、layer パラメーターは無視できます。

フレームバッファデータをレイヤーごとに読み込むことができない場合、layer パラメータはフレームバッファデータを読み込むスクリーンを特定するために使用されるべきですが、プラットフォームはスクリーン全体のフレームバッファデータを返すことを選択できます。

[pure virtual] void DeviceLinkInterface::platformInit()

プラットフォーム固有の最後のセットアップを行う。

この関数は、DeviceLink コンポーネントがデータを送受信する準備ができた後に呼び出される。実装では、シリアル・ポート割り込みを有効にしたり、実際のデータの送受信を可能にするその他のフラグを設定したりすることができる。

[virtual] Qul::Platform::FramebufferDataChunk DeviceLinkInterface::requestFramebufferDataChunk(const Qul::PlatformInterface::LayerEngine::ItemLayer *layer, const Qul::PlatformInterface::Rect &rect)

与えられたlayer のフレームバッファデータの単一チャンクを読み込む。

返されるFramebufferDataChunk の値には、与えられたrect に対応するフレームバッファデータのチャンクのアドレスと行ごとのバイト数が含まれていなければならない。フレームバッファデータのフォーマットは、元々framebufferFormat() から返されたものと同じでなければならない。

rect のサイズは、縦長のチャンクの場合は最大でも(チャンクの幅、フレームバッファの高さ)、横長のチャンクの場合は(フレームバッファの幅、チャンクの高さ)となる。ここで、チャンクの幅とチャンクの高さはchunkedFramebufferDataTransferSizes() から返される値であり、フレームバッファの幅とフレームバッファの高さはframebufferFormat() から返される値です。

この関数は、framebufferFormat() が nullptr アドレスを返した場合にのみ呼び出される。常に完全なフレームバッファデータのアドレスを取得できるのであれば、この関数を実装する必要はありません。

プラットフォームがマルチレイヤーをサポートしていない場合、layer パラメーターは無視できます。

フレームバッファデータをレイヤーごとに読み込むことができない場合、layer パラメータは、フレームバッファデータを読み込むスクリーンを特定するために使用されるべきですが、プラットフォームはスクリーン全体のフレームバッファデータを返すことを選択できます。

Qul::Platform::FramebufferDataChunk::address ポインタは、requestFramebufferDataChunk()が再び呼び出されるか、framebufferDataTransferComplete()が呼び出されるまで、どちらか先に発生した方まで有効であると仮定される。

[pure virtual] void DeviceLinkInterface::transmitChars(const uint8_t *data, uint32_t size)

データ・ストリームをパックし、フレーム化した後、ホストに送信する。

この関数は、ホストに転送するメッセージ・データがあるときに呼び出される。実装では、シリアルポートの書き込み関数を使用して、sizedata を送信する必要があります。

特定の Qt ライセンスの下で利用可能です。
詳細はこちら。