symbian

Nokia官网Sound Mixer Example v2.1中用的wav文件格式

Nokia官网提供的混音示例程序中http://www.forum.nokia.com/info/sw.nokia.com/id/650db12f-06aa-4608-b17a-387b70412304/S60_Platform_Sound_Mixer_Example_v2_1_en.zip.html使用的wav格式为16-bit mono的标准pcm采样文件的纯采样数据部分(这样好处是去掉了wav头信息,减少了一定的容量,坏处就是不能用一般的播放器直接播放),以下为生成该种wav的方法:
Continue reading…

Symbian项目build pkg时出现unknown line的一个可能原因

项目的sis打包配置文件pkg由于需要写入中文,所以编码该文件的编码被设置为UTF-16,但CVS好像对unicode的支持不是很好,在将pkg识别为文本模式的情况进行代码同步等操作时会对换行符进行替换处理,导致pkg文件的换行符出现异常,makesis解析的时候就会出现提示第1行的unknown line错误(直接在carbide.c++中打开pkg文件看不出错误,用notepad看所有换行位置都被替换成了错误字符!)。

解决方法可以将pkg换成使用二进制方式传输(自己没试,应该没问题,而且文本模式下只要不让处理换行符也没问题),或者使用WinHEX等16进制编辑器将错误pkg中的所有00 0D 0A 00 0D 0A替换成00 0D 00 0A正确的UTF-16换行符就可以了。

symbian alpha blending的问题

symbian系统api中对alpha混合的实现不是很好,至少不是很灵活,比如必须配合256级灰度mask图等,如果只是想填充半透明的矩形区域的话这样显然比较浪费内存。比较好的方法是自己实现类似矩形半透明填充等的算法,也就是那个src*alpha+(1-alpha)*dst的alpha混合算法,通过一些多项式合并以及用整数运算代替浮点运算的方法,可以对其执行效率有一定的优化,在内存允许的情况下,使用查表的方式可以对速度有更进一步的提高。另一个问题是,对于N95类ARMv6架构的CPU来说,如何在生成exe的时候使编译器支持armv6指令从而使用simd对alpha混合等大量像素级的数据运算进行并行优化?目前研究了一段时间也没发现carbide上能启用armv6的方式,我想是由于需要对N73类同为3rd的机型的兼容吧。