lottie: code refactoring.

keep the coding style.
This commit is contained in:
Hermet Park 2024-04-15 00:06:16 +09:00
parent 0b5152f138
commit 026d85f6a8
4 changed files with 18 additions and 13 deletions

View file

@ -38,6 +38,7 @@ LottieAnimation::~LottieAnimation()
{
}
Result LottieAnimation::override(const char* slot) noexcept
{
if (!pImpl->picture->pImpl->loader) return Result::InsufficientCondition;
@ -49,33 +50,34 @@ Result LottieAnimation::override(const char* slot) noexcept
return Result::InvalidArguments;
}
Result LottieAnimation::segment(const char* marker) noexcept
{
auto loader = pImpl->picture->pImpl->loader;
if (!loader) return Result::InsufficientCondition;
if (!loader->animatable()) return Result::NonSupport;
auto lottieLoader = static_cast<LottieLoader*>(loader);
if (!marker) {
lottieLoader->segment(0.0, 1.0);
static_cast<FrameModule*>(loader)->segment(0.0f, 1.0f);
return Result::Success;
}
float begin, end;
if (!lottieLoader->getSegment(begin, end, marker)) {
if (!static_cast<LottieLoader*>(loader)->segment(marker, begin, end)) {
return Result::InvalidArguments;
}
return static_cast<Animation*>(this)->segment(begin, end);
}
uint32_t LottieAnimation::markersCnt() noexcept
{
auto loader = pImpl->picture->pImpl->loader;
if (!loader || !loader->animatable()) return 0;
return static_cast<LottieLoader*>(loader)->markerCount();
return static_cast<LottieLoader*>(loader)->markersCnt();
}
const char* LottieAnimation::marker(uint32_t idx) noexcept
{
auto loader = pImpl->picture->pImpl->loader;
@ -83,6 +85,7 @@ const char* LottieAnimation::marker(uint32_t idx) noexcept
return static_cast<LottieLoader*>(loader)->markers(idx);
}
unique_ptr<LottieAnimation> LottieAnimation::gen() noexcept
{
return unique_ptr<LottieAnimation>(new LottieAnimation);

View file

@ -359,7 +359,7 @@ void LottieLoader::sync()
}
uint32_t LottieLoader::markerCount()
uint32_t LottieLoader::markersCnt()
{
if (!comp) done();
return comp->markers.count;
@ -369,13 +369,13 @@ uint32_t LottieLoader::markerCount()
const char* LottieLoader::markers(uint32_t index)
{
if (!comp) done();
if (index < 0 || index >= markerCount()) return nullptr;
if (index < 0 || index >= markersCnt()) return nullptr;
auto marker = comp->markers.begin() + index;
return (*marker)->name;
}
bool LottieLoader::getSegment(float& begin, float& end, const char* marker)
bool LottieLoader::segment(const char* marker, float& begin, float& end)
{
if (!comp) done();

View file

@ -64,9 +64,9 @@ public:
void sync() override;
//Marker Supports
uint32_t markerCount();
uint32_t markersCnt();
const char* markers(uint32_t index);
bool getSegment(float& beign, float& end, const char* marker);
bool segment(const char* marker, float& beign, float& end);
private:
bool header();

View file

@ -42,12 +42,14 @@ public:
virtual float curFrame() = 0; //return the current frame number
virtual float duration() = 0; //return the animation duration in seconds
void segment(float* begin, float* end) {
void segment(float* begin, float* end)
{
if (begin) *begin = segmentBegin;
if (end) *end = segmentEnd;
}
void segment(float begin, float end) {
void segment(float begin, float end)
{
segmentBegin = begin;
segmentEnd = end;
}