1 // Aseprite
2 // Copyright (C) 2001-2018  David Capello
3 //
4 // This program is distributed under the terms of
5 // the End-User License Agreement for Aseprite.
6 
7 #ifndef APP_LOOP_TAG_H_INCLUDED
8 #define APP_LOOP_TAG_H_INCLUDED
9 #pragma once
10 
11 #include "doc/frame.h"
12 
13 namespace doc {
14   class FrameTag;
15   class Sprite;
16 }
17 
18 namespace app {
19 
20   class FrameTagProvider {
21   public:
~FrameTagProvider()22     virtual ~FrameTagProvider() { }
23     virtual doc::FrameTag* getFrameTagByFrame(const doc::frame_t frame,
24                                               const bool getLoopTagIfNone) = 0;
25   };
26 
27   doc::FrameTag* get_animation_tag(const doc::Sprite* sprite, doc::frame_t frame);
28   doc::FrameTag* get_loop_tag(const doc::Sprite* sprite);
29   doc::FrameTag* create_loop_tag(doc::frame_t from, doc::frame_t to);
30 
31 } // namespace app
32 
33 #endif
34