文 档 编 号
V1.0
版 本
SW1106REF001
密
级
1
共 33 页
MELIS 用户编程手册
图片中间件-WILLOW
(内部公开/外部公开)
文档作者 Xiechr
创建日期
2011-06-15
签
名
日
期
拟 制
审 核
批 准
分发部门
[
[
]SW
]MKT
[
]SD
[
]AL
[
]CS
[
]TST
All Winner Technology
CopyRight©2011 All Winner Technology, All Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
版本历史
修改人 时间
备注
V0.1
Xiechr
2011/06/15 建立初始版本
Xiechr
SW1106REF001(第 i 页) 2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
目 录
1.1. Description------------------------------------------------------------------------------------------ 1
1.2. Purpose ---------------------------------------------------------------------------------------------- 1
1.3. Reference ------------------------------------------------------------------------------------------- 1
1.4. Contact Info----------------------------------------------------------------------------------------- 1
2.1. WILLOW_CMD_QUERY_STATUS----------------------------------------------------------- 2
2.2. WILLOW_CMD_GET_THUMBS ------------------------------------------------------------- 3
2.3. WILLOW_CMD_SET_ALBUM_ART -------------------------------------------------------- 5
2.4. WILLOW_CMD_SHOW_IMG_FROM_FILE ----------------------------------------------- 7
2.5. WILLOW_CMD_SHOW_IMG_FROM_BUFFER ------------------------------------------ 9
2.6. WILLOW_CMD_SET_SWITCH_MODE ---------------------------------------------------10
2.7. WILLOW_CMD_GET_SHOW_PARAM ----------------------------------------------------11
2.8. WILLOW_CMD_GET_IMG_INFO ----------------------------------------------------------12
2.9. WILLOW_CMD_SCALE-----------------------------------------------------------------------13
2.10. WILLOW_CMD_ROTATE ---------------------------------------------------------------------14
2.11. WILLOW_CMD_MOVE -----------------------------------------------------------------------14
2.12. WILLOW_CMD_COME_BACK--------------------------------------------------------------15
2.13. WILLOW_CMD_OPEN_SHOW --------------------------------------------------------------15
2.14. WILLOW_CMD_SHUT_SHOW --------------------------------------------------------------16
2.15. WILLOW_CMD_CHECK_IMG---------------------------------------------------------------16
2.16. WILLOW_CMD_START_DEC----------------------------------------------------------------17
2.17. WILLOW_CMD_START_SHOW-------------------------------------------------------------17
2.18. WILLOW_CMD_STOP -------------------------------------------------------------------------18
2.19. WILLOW_CMD_SET_SCN--------------------------------------------------------------------18
2.20. WILLOW_CMD_START_SHOW_EXT -----------------------------------------------------19
2.21. WILLOW_CMD_CATCH_SCREEN ---------------------------------------------------------21
2.22. WILLOW_CMD_AUTO_ROTATE -----------------------------------------------------------22
2.23. WILLOW_CMD_AUTO_ROTATE -----------------------------------------------------------22
2.24. WILLOW_CMD_SET_SHOW_MODE ------------------------------------------------------23
2.25. WILLOW_CMD_CFG_LYR -------------------------------------------------------------------23
2.26. WILLOW_CMD_ROT_LYR -------------------------------------------------------------------24
2.27. WILLOW_CMD_CFG_OUTPUT -------------------------------------------------------------24
2.28. WILLOW_CMD_CFG_INPUT ----------------------------------------------------------------26
2.29. WILLOW_CMD_SET_PLAYLIST -----------------------------------------------------------26
2.30. WILLOW_CMD_MOV_TRACK -------------------------------------------------------------28
2.31. WILLOW_CMD_GET_CUR_INDEX--------------------------------------------------------29
2.32. WILLOW_CMD_SCALE_EXT ---------------------------------------------------------------29
Xiechr
SW1106REF001(第 ii 页) 2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
Melis 操作系统是由全志科技自主研发的一套精简、高效、易用的实时多任务操作系统。
Willow 中间件是基于 Melis 系统上开发的图片解码/显示插件,用于支持应用对图片上的各
种功能的需求,免除应用对具体图片格式的了解,隔离和底层系统和驱动的操作,让图片的
相关的应用程序变得简单。
本文档主要讲述 Willow 插件的编程接口,让开发者能快速掌握 Melis 系统上的图片解
码,图片显示,图像处理的操作,并基于 Willow 来开发自己的图片相关应用。
1)读者可以先了解一些关于颜色空间,像素格式等基本概念,以便更加快速的掌握
Willow 中间件的相关接口,加快应用开发速度。
2)读者可以从《SW1103REF005_MELIS PROGRAM GUIDE_Module.pdf》文档了解模
块的安装,卸载,打开,关闭以及模块操作命令。
如果您发现文档中的描述和实际应用有出入,或是文档描述不清晰让您有疑问,请随时
联系我们,我们将最短时间内做出答复。同时,如果您有任建议或批评,也希望您不吝赐教。
请通过以下联系方式联系我们:
Homepage: http://www.allwinnertech.com
E-mail: xiechr@allwinnertech.com
Xiechr
SW1106REF001(第 1 页)
2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
图片中间件 willow 用于支持应用对图片上的各种功能的需求,免除应用对具体图片格
式的了解,隔离和底层系统和驱动的操作,让图片的相关的应用程序变得简单。包括以下几
个方面的功能:
1)支持对多种图片格式的解析、解码支持,包括 jpeg/bmp/png/gif 格式,并能够方
便的添加其他格式的图片解码支持;支持 jpeg 图片硬件解码,提供高速解码性能。
2)支持从音乐文件中解码出专辑图片;
3)支持图片的显示,并支持对图片的缩小/放大/旋转功能;
4)支持图片缩略图的获取,图片基本信息的获取;
5)在图片浏览时支持多种图片切换效果,包括:淡入淡出、马赛克、缩小、放大、水
平/垂直百叶窗、向上/向下/向左/向右滑入、向上/向下/向左/向右展开;
6)支持图片的自动旋转功能;
7)在图片浏览时支持多种浏览模式,包括:原始尺寸,剪裁全屏模式,拉伸全屏模式,
自动模式。
本文档只介绍模块操作的控制命令字,如果您希望了解模块的安装,卸载,打开,关闭
以及模块操作命令,可以阅读《SW1103REF005_MELIS PROGRAM GUIDE_Module.pdf》文
档。
__s32 esMODS_MIoctrl(__mp *mp, __u32 cmd, __s32 aux, void *pbuffer);
willow 模块的句柄;
mp
= WILLOW_CMD_QUERY_STATUS;
cmd
aux
= 0;
pbuffer = 0;
Willow 当前的状态:
WILLOW_STATUS_INIT,
WILLOW_STATUS_BUSY,
WILLOW_STATUS_READY, Willowready,目前未使用该状态;
WILLOW_STATUS_FINISH, Willow 所有命令执行完毕;
Willow 有命令未执行完毕;
加载后的初始化状态;
查询 Willow 中间件当前的状态;
//查询 willow 状态,等待命令执行完毕
static void WaitWillowReady(__mp
* hWillow)
{
__u8 status;
while(1)
{
Xiechr
SW1106REF001(第 2 页)
2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
status = esMODS_MIoctrl(hWillow, WILLOW_CMD_QUERY_STATUS, 0, 0);
if (status != WILLOW_STATUS_BUSY)
{
break;
}
esKRNL_TimeDly(1);
}
}
__s32 esMODS_MIoctrl(__mp *mp, __u32 cmd, __s32 aux, void *pbuffer);
willow 模块的句柄;
= WILLOW_CMD_GET_THUMBS;
= 0;
mp
cmd
aux
pbuffer = __willow_get_thumbs_param_t *, 输入获取缩略图的信息,包括文件名,
缩略图的尺寸,buffer 地址等;
设置缩略图信息的结果:
EPDK_OK:设置成功;
EPDK_FAIL:设置失败;
设置获取缩略图所需要的信息;
注 意 , 该 命 令 必 须 和 WILLOW_CMD_START_SHOW(
WILLOW_CMD_START_SHOW_EXT) 或 者
WILLOW_CMD_GET_IMG_INFO 配合使用;连续单独调用两次 WILLOW_CMD_GET_THUMBS
命令,
第二次调用会返回失败。
@param hWillow:
willow 模块的句柄
/*******************************************************************
* Function name: demoGetThumbnail
* Description:
* 获取图片缩略图
*
* Parameters:
*
*
* Return:
*
* Time: 2011/06/24
*******************************************************************/
__s32 demoGetThumbnail(__mp *hWillow)
{
@return: on success return EPDK_OK otherwise return EPDK_FAIL.
__willow_get_thumbs_param_t thumbInfo;
Xiechr
SW1106REF001(第 3 页)
2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
__s32 ret;
__s32 bufSize;
char filename[512];
//从播放列表获取文件名
ret = GetFileFromPlaylist(filename, 0);
if (ret != EPDK_OK)
{
return EPDK_FAIL;
}
/*根据实际应用初始化参数*/
thumbInfo.filename = filename;
thumbInfo.format = RGB_SEQ_ARGB;
thumbInfo.size.width = 100;
thumbInfo.size.height = 76;
bufSize = thumbInfo.size.width * thumbInfo.size.height * 4;
thumbInfo.buf = (__u8*) esMEMS_Palloc((bufSize + 1023)/1024, 0);
if (thumbInfo.buf == NULL)
{
__wrn("err while palloc!\n");
return EPDK_FAIL;
}
/*解码图片,获取缩略图*/
WaitWillowReady();
ret = esMODS_MIoctrl(hWillow, WILLOW_CMD_GET_THUMBS, 0, &thumbInfo);
if (EPDK_FAIL == ret)
{
__wrn("set thumbs info err!\n");
goto EXIT_GETALBUMN;
}
ret = esMODS_MIoctrl(hWillow,WILLOW_CMD_CHECK_IMG,0,0);
if (EPDK_FAIL == ret)
{
__wrn("image not support!\n");
goto EXIT_GETALBUMN;
}
ret = esMODS_MIoctrl(hWillow,WILLOW_CMD_START_SHOW,0,0);
WaitWillowReady();
/*此处可以对缩略图操作*/
ret = ShowThumbs(&thumbInfo);
Xiechr
SW1106REF001(第 4 页)
2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved
MELIS 用户编程手册--图片中间件-WILLOW
密级:
EXIT_GETTHU
MB:
if (thumbInfo.buf != NULL)
{
esMEMS_Free(thumbInfo.buf, (bufSize + 1023)/1024);
}
return ret;
}
__s32 esMODS_MIoctrl(__mp *mp, __u32 cmd, __s32 aux, void *pbuffer);
willow 模块的句柄;
= WILLOW_CMD_SET_ALBUM_ART;
= 0;
mp
cmd
aux
pbuffer = __willow_get_albumart_param_t *, 专辑图片的信息,包括专辑图片在文
件中的偏移,专辑图片的格式等;
设置专辑图片信息的结果:
EPDK_OK:设置成功;
EPDK_FAIL:设置失败;
设置获取专辑图片缩略图所需要的信息;
注 意 , 该 命 令 必 须 和 WILLOW_CMD_START_SHOW( WILLOW_CMD_START_SHOW_EXT) 或
者
WILLOW_CMD_GET_IMG_INFO 配合使用;连续单独调用两次 WILLOW_CMD_SET_ALBUM_ART
命令,第二次调用会返回失败。
@param hWillow:
willow 模块的句柄
/*******************************************************************
* Function name: demoGetAlbumart
* Description:
* 获取专辑图片的缩略图
*
* Parameters:
*
*
* Return:
*
* Time: 2011/06/24
*******************************************************************/
__s32 demoGetAlbumart(__mp *hWillow)
{
@return: on success return EPDK_OK otherwise return EPDK_FAIL.
Xiechr
SW1106REF001(第 5 页)
2011-06-15
CopyRight©2011 All Winner Technology, Right Reserved