diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2013-09-04 16:14:37 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2013-10-28 15:47:15 +0900 |
commit | 97d9fab7042f213498268dfc58636b823380245c (patch) | |
tree | 344ac20e4aa4854d23dba9f7afada5b6a2759e65 /src/lib/evas/cserve2 | |
parent | bfe3fe27df9384642d8f3b277ec694c9d42fc0c9 (diff) |
evas/cserve2: Fallback to normal cache for animated gifs
Pass around "animated" flag for images that can be animated.
Fallback to local cache if the image is animated.
Implementing support for animated images in cserve2 does
not seem to make a lot of sense considering each frame must
be requested independently in real time,... and to be honest
there doesn't seem to be any valid use case anyway :)
Diffstat (limited to 'src/lib/evas/cserve2')
-rw-r--r-- | src/lib/evas/cserve2/evas_cs2.h | 2 | ||||
-rw-r--r-- | src/lib/evas/cserve2/evas_cs2_client.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/evas/cserve2/evas_cs2.h b/src/lib/evas/cserve2/evas_cs2.h index a47c384b82..835ed31c0b 100644 --- a/src/lib/evas/cserve2/evas_cs2.h +++ b/src/lib/evas/cserve2/evas_cs2.h | |||
@@ -73,6 +73,7 @@ struct _Msg_Opened { | |||
73 | int loop_count; | 73 | int loop_count; |
74 | int loop_hint; /* include Evas.h? Copy the enum around? */ | 74 | int loop_hint; /* include Evas.h? Copy the enum around? */ |
75 | Eina_Bool alpha : 1; | 75 | Eina_Bool alpha : 1; |
76 | Eina_Bool animated : 1; | ||
76 | } image; | 77 | } image; |
77 | }; | 78 | }; |
78 | 79 | ||
@@ -333,6 +334,7 @@ struct _File_Data { | |||
333 | Eina_Bool alpha : 1; | 334 | Eina_Bool alpha : 1; |
334 | Eina_Bool invalid : 1; | 335 | Eina_Bool invalid : 1; |
335 | Eina_Bool valid : 1; | 336 | Eina_Bool valid : 1; |
337 | Eina_Bool animated : 1; | ||
336 | }; | 338 | }; |
337 | 339 | ||
338 | #define IMAGE_DATA_ARRAY_TAG ('I' | 'M' << 8 | 'A' << 16 | 'G' << 24) | 340 | #define IMAGE_DATA_ARRAY_TAG ('I' | 'M' << 8 | 'A' << 16 | 'G' << 24) |
diff --git a/src/lib/evas/cserve2/evas_cs2_client.c b/src/lib/evas/cserve2/evas_cs2_client.c index 852ae08640..566bd0655a 100644 --- a/src/lib/evas/cserve2/evas_cs2_client.c +++ b/src/lib/evas/cserve2/evas_cs2_client.c | |||
@@ -505,6 +505,7 @@ _image_opened_cb(void *data, const void *msg_received, int size) | |||
505 | ie->animated.loop_hint = msg->image.loop_hint; | 505 | ie->animated.loop_hint = msg->image.loop_hint; |
506 | ie->animated.loop_count = msg->image.loop_count; | 506 | ie->animated.loop_count = msg->image.loop_count; |
507 | ie->animated.frame_count = msg->image.frame_count; | 507 | ie->animated.frame_count = msg->image.frame_count; |
508 | ie->animated.animated = msg->image.animated; | ||
508 | } | 509 | } |
509 | 510 | ||
510 | static void | 511 | static void |
@@ -985,9 +986,9 @@ evas_cserve2_image_load_wait(Image_Entry *ie) | |||
985 | ie->animated.loop_hint = fd->loop_hint; | 986 | ie->animated.loop_hint = fd->loop_hint; |
986 | ie->animated.loop_count = fd->loop_count; | 987 | ie->animated.loop_count = fd->loop_count; |
987 | ie->animated.frame_count = fd->frame_count; | 988 | ie->animated.frame_count = fd->frame_count; |
989 | ie->animated.animated = fd->animated; | ||
988 | ie->server_id = fd->id; | 990 | ie->server_id = fd->id; |
989 | ie->open_rid = 0; | 991 | ie->open_rid = 0; |
990 | return CSERVE2_NONE; | ||
991 | } | 992 | } |
992 | #endif | 993 | #endif |
993 | 994 | ||
@@ -999,6 +1000,12 @@ evas_cserve2_image_load_wait(Image_Entry *ie) | |||
999 | return CSERVE2_GENERIC; | 1000 | return CSERVE2_GENERIC; |
1000 | } | 1001 | } |
1001 | 1002 | ||
1003 | if (ie->animated.animated) | ||
1004 | { | ||
1005 | WRN("This image is animated. cserve2 does not support animations"); | ||
1006 | return CSERVE2_GENERIC; | ||
1007 | } | ||
1008 | |||
1002 | return CSERVE2_NONE; | 1009 | return CSERVE2_NONE; |
1003 | } | 1010 | } |
1004 | 1011 | ||