このページでは

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

詳細な説明

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

Qul::Platform::DeviceLink および「Porting DeviceLink Communicationも参照してください

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

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

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

チャンク化されたフレームバッファデータは、アプリケーションのディスプレイ回転に応じて、その都度、常に垂直または水平のスキャンライン1本分単位で要求されます。

返される `Qul::Platform::ChunkedFramebufferDataTransferSizes::chunkHeight ` の値は、その時点でフレームバッファデータが水平スキャンライン 1 本分単位で要求される場合に使用するチャンクの高さである必要があります。

Qul::Platform::ChunkedFramebufferDataTransferSizes::chunkWidth として返される値は、その時点でフレームバッファデータが 1 垂直スキャンライン分として要求された場合に使用されるチャンクの幅であるべきです。

この関数は、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 に対応するフレームバッファデータの1つのチャンクを読み込みます。

返されるFramebufferDataChunk の値には、指定されたrect に対応するフレームバッファデータチャンクのアドレスおよび1行あたりのバイト数が含まれている必要があります。フレームバッファデータの形式は、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)

データストリームをパッキングおよびフレーミングした後、ホストに送信します。

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

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。