in agdk/agdktunnel/app/src/main/cpp/game_asset_manager.cpp [450:508]
void GameAssetManagerInternals::UpdateAssetPackFromDownloadState(AssetPackInfo *assetPackInfo,
AssetPackDownloadState *downloadState) {
AssetPackDownloadStatus downloadStatus = AssetPackDownloadState_getStatus(
downloadState);
switch (downloadStatus) {
case ASSET_PACK_UNKNOWN:
break;
case ASSET_PACK_DOWNLOAD_PENDING:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_DOWNLOADING);
assetPackInfo->mAssetPackCompletion = 0.0f;
break;
case ASSET_PACK_DOWNLOADING: {
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_DOWNLOADING);
uint64_t dlBytes = AssetPackDownloadState_getBytesDownloaded(downloadState);
uint64_t totalBytes = AssetPackDownloadState_getTotalBytesToDownload(downloadState);
double dlPercent = ((double) dlBytes) / ((double) totalBytes);
assetPackInfo->mAssetPackCompletion = (float) dlPercent;
}
break;
case ASSET_PACK_TRANSFERRING:
break;
case ASSET_PACK_DOWNLOAD_COMPLETED:
UpdateAssetPackBecameAvailable(assetPackInfo);
break;
case ASSET_PACK_DOWNLOAD_FAILED:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_ERROR);
break;
case ASSET_PACK_DOWNLOAD_CANCELED:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_NEEDS_DOWNLOAD);
assetPackInfo->mAssetPackCompletion = 0.0f;
break;
case ASSET_PACK_WAITING_FOR_WIFI:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_NEEDS_MOBILE_AUTH);
break;
case ASSET_PACK_NOT_INSTALLED: {
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_NEEDS_DOWNLOAD);
uint64_t totalBytes = AssetPackDownloadState_getTotalBytesToDownload(downloadState);
if (totalBytes > 0) {
assetPackInfo->mAssetPackDownloadSize = totalBytes;
}
}
break;
case ASSET_PACK_INFO_PENDING:
break;
case ASSET_PACK_INFO_FAILED:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_ERROR);
break;
case ASSET_PACK_REMOVAL_PENDING:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_PENDING_ACTION);
break;
case ASSET_PACK_REMOVAL_FAILED:
ChangeAssetPackStatus(assetPackInfo, GameAssetManager::GAMEASSET_READY);
assetPackInfo->mAssetPackCompletion = 1.0f;
break;
default:
break;
}
}