C
Qt Quick Ultralite map example
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial #include "board_config.h" #include "offline_tiles_provider/offlinetilefetcher.h" #include "stmimagedecoder.h" #include "stm32_mcu_specific.h" #include <qul/application.h> #if defined(SUPPORT_FILESYSTEM) #include "fatfs/fatfsfilesystem.h" #include "ff.h" #include "ff_gen_drv.h" #include "stm32u5_emmc.h" FIL JPEG_File; /* File object */ static DSTATUS u5_initialize(BYTE) { return RES_OK; } static DSTATUS u5_status(BYTE) { return RES_OK; } static DRESULT u5_read(BYTE, BYTE *buff, DWORD sector, UINT count) { if (!Qul::Platform::Private::readBlockFromDevice(0 /*blockDeviceIndex*/, sector, count, buff)) return RES_ERROR; return RES_OK; } const Diskio_drvTypeDef u5_driver = {u5_initialize, u5_status, u5_read}; extern "C" { void *ff_memalloc(UINT msize) { return Qul::Platform::qul_malloc(msize); } void ff_memfree(void *ptr) { Qul::Platform::qul_free(ptr); } } #endif JPEG_HandleTypeDef JPEG_Handle; #ifdef USE_DMA_BASED_JPEG_DECODING DMA_HandleTypeDef handle_GPDMA1_Channel0; DMA_HandleTypeDef handle_GPDMA1_Channel1; #endif extern "C" { void JPEG_InitColorTables(); } void ConfigureBoard() { #ifdef USE_DMA_BASED_JPEG_DECODING __HAL_RCC_GPDMA1_CLK_ENABLE(); HAL_NVIC_SetPriority(GPDMA1_Channel0_IRQn, 6, 0); HAL_NVIC_EnableIRQ(GPDMA1_Channel0_IRQn); HAL_NVIC_SetPriority(GPDMA1_Channel1_IRQn, 7, 0); HAL_NVIC_EnableIRQ(GPDMA1_Channel1_IRQn); #endif /* Init The JPEG Look Up Tables used for YCbCr to RGB conversion*/ JPEG_InitColorTables(); /* Init the HAL JPEG driver */ JPEG_Handle.Instance = JPEG; if (HAL_JPEG_Init(&JPEG_Handle) != HAL_OK) Qul::PlatformInterface::log("HAL_JPEG_Init failed\n"); #if defined(SUPPORT_FILESYSTEM) // eMMC_init is supposed to be called from the platform init already. static FatFsFilesystem filesystem; static FATFS sdFatFs; static char sdPath[4]; if (FATFS_LinkDriver(&u5_driver, sdPath) != 0) { Qul::PlatformInterface::log("FATFS_LinkDriver failed\r\n"); return; } if (f_mount(&sdFatFs, sdPath, 0) != 0) { Qul::PlatformInterface::log("Mounting filesystem failed!\r\n"); return; } Qul::Application::addFilesystem(&filesystem); #endif static StmImageDecoder imagedecoder; Qul::Application::addImageDecoder(&imagedecoder); static OfflineTileFetcher tilefetcher; Qul::Application::addMapTileFetcher(&tilefetcher); }