C
ファイルシステムの統合
Qt Quick Ultraliteのファイルシステム統合の実装
ファイルシステムからリソースをロードするには、実装をアプリケーションに登録する必要があります。それには、Qul::PlatformInterface::Filesystem とQul::PlatformInterface::File クラスを実装する必要があります。FatFSファイル・システムの実装例はexamples/fileloading/fatfs/fatfsfilesystem.hにあります。
以下のコードは、これらのクラスの実装例を示しています:
class MyFile : public Qul::PlatformInterface::File
{
public:
MyFile(fileHandle) {...}
uint64_t size();
int read(unsigned char *outputBuffer, uint64_t startOffset, unsigned int size);
int close();
}uint64_t MyFile::size()
{
return file_size;
}int MyFile::read(unsigned char *outputBuffer, uint64_t startOffset, unsigned int readSize)
{
int bytesRead;
if (file_seek(startOffset) != OK)
return -1;
if (file_read(outputBuffer, readSize, &bytesRead) != OK)
return -1;
return bytesRead;
}int MyFile::close()
{
return file_close();
}ファイルをアプリケーションAPIと統合するには、ファイル・システムにラップする必要があります。
class MyFilesystem : public Qul::PlatformInterface::Filesystem
{
public:
Qul::PlatformInterface::File *open(const char *fileName, Qul::PlatformInterface::File::Mode)
{
if (file_open(fileName, mode) != OK)
return NULL;
return Qul::PlatformInterface::qul_new<MyFile>(handle);
}
};実装されたファイルシステムをQt Quick Ultralite に知らせるには、アプリケーションに登録する必要があります。
static MyFilesystem filesystem;
Qul::Application::addFilesystem(&filesystem);Qt Quick Ultraliteは、最初にファイルインスタンスを返すまで、登録されたすべてのファイルシステムを繰り返し処理します。
特定の Qt ライセンスの下で利用可能です。
詳細をご覧ください。