@@ -22,6 +22,9 @@ final DynamicLibrary _dylib = () {
2222
2323final ThorVGFlutterBindings tvg = ThorVGFlutterBindings (_dylib);
2424
25+ /* ThorVG Play State */
26+ enum PlayState { stopped, playing, deleted }
27+
2528/* ThorVG Dart */
2629
2730class Thorvg {
@@ -31,9 +34,7 @@ class Thorvg {
3134 double startTime = DateTime .now ().millisecond / 1000 ;
3235 double speed = 1.0 ;
3336
34- // FIXME(jinny): Should be like enumeration for each status
35- bool isPlaying = false ;
36- bool deleted = false ;
37+ PlayState state = PlayState .stopped;
3738
3839 late bool animate = false ;
3940 late bool reverse = false ;
@@ -47,7 +48,7 @@ class Thorvg {
4748 }
4849
4950 Uint8List ? animLoop () {
50- if (deleted) {
51+ if (state == PlayState . deleted) {
5152 throw Exception ('Thorvg is already deleted' );
5253 }
5354
@@ -60,7 +61,7 @@ class Thorvg {
6061 }
6162
6263 bool update () {
63- if (deleted) {
64+ if (state == PlayState . deleted) {
6465 throw Exception ('Thorvg is already deleted' );
6566 }
6667
@@ -80,15 +81,15 @@ class Thorvg {
8081 return true ;
8182 }
8283
83- isPlaying = false ;
84+ state = PlayState .stopped ;
8485 return false ;
8586 }
8687
8788 return tvg.frame (animation, currentFrame);
8889 }
8990
9091 Uint8List ? render () {
91- if (deleted) {
92+ if (state == PlayState . deleted) {
9293 throw Exception ('Thorvg is already deleted' );
9394 }
9495
@@ -108,7 +109,7 @@ class Thorvg {
108109 }
109110
110111 void play () {
111- if (deleted) {
112+ if (state == PlayState . deleted) {
112113 throw Exception ('Thorvg is already deleted' );
113114 }
114115
@@ -118,11 +119,11 @@ class Thorvg {
118119
119120 totalFrame = tvg.totalFrame (animation);
120121 startTime = DateTime .now ().millisecondsSinceEpoch / 1000 ;
121- isPlaying = true ;
122+ state = PlayState .playing ;
122123 }
123124
124125 void load (String src, int w, int h, bool animate, bool repeat, bool reverse) {
125- if (deleted) {
126+ if (state == PlayState . deleted) {
126127 throw Exception ('Thorvg is already deleted' );
127128 }
128129
@@ -155,12 +156,12 @@ class Thorvg {
155156 }
156157
157158 void delete () {
158- if (deleted) {
159+ if (state == PlayState . deleted) {
159160 return ;
160161 }
161162
162163 if (tvg.destroy (animation)) {
163- deleted = true ;
164+ state = PlayState .deleted ;
164165 }
165166 }
166167}
0 commit comments