mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-08 08:31:13 +00:00
98 lines
2.0 KiB
C++
98 lines
2.0 KiB
C++
#include <lotplayer.h>
|
|
#include "vdebug.h"
|
|
|
|
extern "C" {
|
|
|
|
using namespace lottieplayer;
|
|
|
|
using lotplayer = LOTPlayer;
|
|
|
|
LOT_EXPORT lotplayer *lotplayer_create(void)
|
|
{
|
|
lotplayer* p = new LOTPlayer();
|
|
if (!p) {
|
|
vCritical << "Failed to initialize lotplayer";
|
|
}
|
|
return p;
|
|
}
|
|
|
|
LOT_EXPORT int lotplayer_destroy(lotplayer *player)
|
|
{
|
|
if (!player) return LOT_PLAYER_ERROR_INVALID_PARAMETER;
|
|
delete(player);
|
|
|
|
return LOT_PLAYER_ERROR_NONE;
|
|
}
|
|
|
|
LOT_EXPORT int lotplayer_set_file(lotplayer *player, const char *file)
|
|
{
|
|
if (!player) return LOT_PLAYER_ERROR_INVALID_PARAMETER;
|
|
bool ret = player->setFilePath(file);
|
|
|
|
if (!ret) return -1;
|
|
|
|
return LOT_PLAYER_ERROR_NONE;
|
|
}
|
|
|
|
LOT_EXPORT int lotplayer_set_size(lotplayer *player, int w, int h)
|
|
{
|
|
if (!player) return LOT_PLAYER_ERROR_INVALID_PARAMETER;
|
|
|
|
player->setSize(w, h);
|
|
|
|
return LOT_PLAYER_ERROR_NONE;
|
|
}
|
|
|
|
LOT_EXPORT int lotplayer_get_size(const lotplayer *player, int* w, int* h)
|
|
{
|
|
if (!player) return LOT_PLAYER_ERROR_INVALID_PARAMETER;
|
|
|
|
player->size(*w, *h);
|
|
|
|
return LOT_PLAYER_ERROR_NONE;
|
|
}
|
|
|
|
LOT_EXPORT float lotplayer_get_pos(const lotplayer *player)
|
|
{
|
|
if (!player) {
|
|
vWarning << "Invalid parameter player = nullptr";
|
|
return -1.0f;
|
|
}
|
|
|
|
return player->pos();
|
|
}
|
|
|
|
LOT_EXPORT size_t lotplayer_get_node_count(const lotplayer *player, float pos)
|
|
{
|
|
if (!player) return LOT_PLAYER_ERROR_NONE;
|
|
|
|
return player->renderList(pos).size();
|
|
}
|
|
|
|
LOT_EXPORT float lotplayer_get_playtime(const lotplayer *player)
|
|
{
|
|
if (!player) {
|
|
vWarning << "Invalid parameter player = nullptr";
|
|
return 0.0f;
|
|
}
|
|
|
|
return player->playTime();
|
|
}
|
|
|
|
LOT_EXPORT const lotnode* lotplayer_get_node(lotplayer *player, float pos, size_t idx)
|
|
{
|
|
if (!player) {
|
|
vWarning << "Invalid parameter player = nullptr";
|
|
return nullptr;
|
|
}
|
|
|
|
if (idx >= player->renderList(pos).size()) {
|
|
vWarning << "Invalid parameter idx? (0 ~ " << player->renderList(pos).size() << "), given idx = " << idx;
|
|
return nullptr;
|
|
}
|
|
|
|
return player->renderList(pos)[idx];
|
|
}
|
|
|
|
}
|