bcc751609d866c8d257afd8cf664e0fd1684b271
[platform/core/uifw/lottie-player.git] / example / demo.cpp
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Flora License, Version 1.1 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include "evasapp.h"
18 #include "lottieview.h"
19 #include<iostream>
20 #include <stdio.h>
21 #include <fstream>
22 #include <sstream>
23 using namespace std;
24
25 static void
26 onExitCb(void *data, void *extra)
27 {
28     LottieView *view = (LottieView *)data;
29     delete view;
30 }
31
32 static void
33 onRenderPreCb(void *data, void *extra)
34 {
35     LottieView *view = (LottieView *)data;
36     view->render();
37 }
38
39 int
40 main(void)
41 {
42    EvasApp *app = new EvasApp(800, 800);
43    app->setup();
44
45    std::string filePath = DEMO_DIR;
46    filePath +="mask.json";
47
48    std::ifstream f;
49    f.open(filePath);
50    std::stringstream buf;
51    buf << f.rdbuf();
52    f.close();
53
54    LottieView *view = new LottieView(app->evas());
55    view->loadFromData(buf.str().data(), "test_key");
56    view->setPos(0, 0);
57    view->setSize(800, 800);
58    view->show();
59    view->play();
60    view->loop(true);
61    view->setRepeatMode(LottieView::RepeatMode::Reverse);
62
63    app->addExitCb(onExitCb, view);
64    app->addRenderPreCb(onRenderPreCb, view);
65    app->run();
66    delete app;
67    return 0;
68 }
69
70
71
72
73