|
@@ -64,47 +64,47 @@ void rtgui_system_image_init(void)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
-static struct rtgui_image_engine* rtgui_image_get_engine_by_filename(const char* fn)
|
|
|
+static struct rtgui_image_engine* rtgui_image_get_engine(const char* type)
|
|
|
{
|
|
|
struct rtgui_list_node *node;
|
|
|
struct rtgui_image_engine *engine;
|
|
|
- const char* ext;
|
|
|
-
|
|
|
- ext = fn + rt_strlen(fn);
|
|
|
- while (ext != fn)
|
|
|
- {
|
|
|
- if (*ext == '.') { ext ++; break; }
|
|
|
- ext --;
|
|
|
- }
|
|
|
- if (ext == fn) return RT_NULL; /* no ext */
|
|
|
|
|
|
rtgui_list_foreach(node, &_rtgui_system_image_list)
|
|
|
{
|
|
|
engine = rtgui_list_entry(node, struct rtgui_image_engine, list);
|
|
|
- if (strncasecmp(engine->name, ext, strlen(engine->name)) == 0)
|
|
|
+
|
|
|
+ if (strncasecmp(engine->name, type, strlen(engine->name)) ==0)
|
|
|
return engine;
|
|
|
}
|
|
|
|
|
|
return RT_NULL;
|
|
|
}
|
|
|
|
|
|
-static struct rtgui_image_engine* rtgui_image_get_engine(const char* type)
|
|
|
+#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
|
|
|
+static struct rtgui_image_engine* rtgui_image_get_engine_by_filename(const char* fn)
|
|
|
{
|
|
|
struct rtgui_list_node *node;
|
|
|
struct rtgui_image_engine *engine;
|
|
|
+ const char* ext;
|
|
|
+
|
|
|
+ ext = fn + rt_strlen(fn);
|
|
|
+ while (ext != fn)
|
|
|
+ {
|
|
|
+ if (*ext == '.') { ext ++; break; }
|
|
|
+ ext --;
|
|
|
+ }
|
|
|
+ if (ext == fn) return RT_NULL; /* no ext */
|
|
|
|
|
|
rtgui_list_foreach(node, &_rtgui_system_image_list)
|
|
|
{
|
|
|
engine = rtgui_list_entry(node, struct rtgui_image_engine, list);
|
|
|
-
|
|
|
- if (strncasecmp(engine->name, type, strlen(engine->name)) ==0)
|
|
|
+ if (strncasecmp(engine->name, ext, strlen(engine->name)) == 0)
|
|
|
return engine;
|
|
|
}
|
|
|
|
|
|
return RT_NULL;
|
|
|
}
|
|
|
|
|
|
-#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
|
|
|
struct rtgui_image* rtgui_image_create_from_file(const char* type, const char* filename, rt_bool_t load)
|
|
|
{
|
|
|
struct rtgui_filerw* filerw;
|