mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-05 09:50:41 +01:00
9954667c45
The exact commands to make this commit were: git reset --hard origin/master find -type f | # list all regular files grep -E '\.(h|cpp|fsh|vsh|mm)|LICENSE$' | # filter for text files xargs -n 1 -P $(nproc) sed -i 's:\s*$::' # for each file, trim trailing whitespace including the CR git commit -a
73 lines
1.6 KiB
C++
73 lines
1.6 KiB
C++
// Copyright (C) 2002-2011 Nikolaus Gebhardt
|
|
// This file is part of the "Irrlicht Engine".
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
|
|
#ifdef _IRR_COMPILE_ANDROID_ASSET_READER_
|
|
|
|
#include "CAndroidAssetReader.h"
|
|
|
|
#include "CReadFile.h"
|
|
#include "coreutil.h"
|
|
#include "CAndroidAssetReader.h"
|
|
#include "CIrrDeviceAndroid.h"
|
|
|
|
#include <android_native_app_glue.h>
|
|
#include <android/native_activity.h>
|
|
|
|
namespace irr
|
|
{
|
|
namespace io
|
|
{
|
|
|
|
CAndroidAssetReader::CAndroidAssetReader(AAssetManager *assetManager, const io::path &filename)
|
|
: AssetManager(assetManager), Filename(filename)
|
|
{
|
|
Asset = AAssetManager_open(AssetManager,
|
|
core::stringc(filename).c_str(),
|
|
AASSET_MODE_RANDOM);
|
|
|
|
}
|
|
|
|
CAndroidAssetReader::~CAndroidAssetReader()
|
|
{
|
|
if(Asset)
|
|
AAsset_close(Asset);
|
|
}
|
|
|
|
size_t CAndroidAssetReader::read(void* buffer, size_t sizeToRead)
|
|
{
|
|
int readBytes = AAsset_read(Asset, buffer, sizeToRead);
|
|
if ( readBytes >= 0 )
|
|
return size_t(readBytes);
|
|
return 0; // direct fd access is not possible (for example, if the asset is compressed).
|
|
}
|
|
|
|
bool CAndroidAssetReader::seek(long finalPos, bool relativeMovement)
|
|
{
|
|
off_t status = AAsset_seek(Asset, finalPos, relativeMovement ? SEEK_CUR : SEEK_SET);
|
|
|
|
return status+1;
|
|
}
|
|
|
|
long CAndroidAssetReader::getSize() const
|
|
{
|
|
return AAsset_getLength(Asset);
|
|
}
|
|
|
|
long CAndroidAssetReader::getPos() const
|
|
{
|
|
return AAsset_getLength(Asset) - AAsset_getRemainingLength(Asset);
|
|
}
|
|
|
|
const io::path& CAndroidAssetReader::getFileName() const
|
|
{
|
|
return Filename;
|
|
}
|
|
|
|
|
|
} // end namespace io
|
|
} // end namespace irr
|
|
|
|
#endif // _IRR_COMPILE_ANDROID_ASSET_READER_
|