Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2009420
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: LINUX

2006-09-05 23:05:48

这个版本应该是重构的版本,最重要的部分应该是在线下载歌词部分的重新设计了。以前的版本写的比较简陋,下载进程和xlyrics主进程之间是通过下载进程的退出来实现同步的,两个进程之间的数据交换是通过文件来实现的,代码比较混乱,最终决定将其丢弃。新设计的此部分下载将和glib接合得更加紧密,将把下载进程的退出作为一个事件源加入事件主循化中,数据部分的通信也将通过pipe来实现,具体请参考glib的 函数,数据的形式将为XML格式,因为glib中也提供了简单XML文件的parse函数簇,所以这一切都将变得更加简单。注意将不再通过下载脚本的返回值来判断脚本退出的状态。请同样向stdout输出XML消息。
其他可能的改变:
  1. 用glade重新实现大部分的界面,请开发人员自行学习相关内容。(注:配置界面我已经设计完了,剩下的可能就是下载管理窗口,估计我这两天也能设计出来)。
  2. 用dbm来保存歌曲和歌词的链接(已经实现)。
  3. 重写的LRC解析函数,完全兼容LRC标准(已经实现)。
  4. 重写的递归搜索函数。
  5. 重写歌词下载脚本(从我以前发到此blog上的两个脚本改改就行了)。
  6. 重写xmms,bmp,audacious和amarok的插件,也许该添加上对bmpx的支持。
  7. 程序内部编码用UTF-8,已实现支持所有locale,包括GB系列和UTF8系列,歌词文件的内码因为LRC并没有相关规定,所以用动态探测的作法,可以从audacious中剥离相关代码。从网上下载的歌词当输出stdout的时侯,要转换成UTF8的格式,如果实在不行,就在XML文件的首部明确地标明。当把文件保存到本地主机的时侯,将优采用本地locale的编码。同样lode到程序内部的时侯,将先判断是否为UTF8编码,如果不是,将进行从locale到UTF8的转换。
  8. 如果有余力,也许完成歌词编辑器和链接编辑器的制作。
主程序依赖的库已经基本确定了,主要为:glib,gtk和glade系列,关于id3的部分,将不计划在此版本中实现,至于以前版本中的实现因为bug影响到稳定性,所以将不再包括。主显示界面部分,这个版本也不做任何改变,所以对于cairo的学习也并不显得那么紧急了,如果有时间可以学习一下其他支持皮肤的gtk软件是如何做到的。
对开发人员来说,现在紧要的是熟悉0.4.x系列的xlyrics的源码,了解其基本的结构,毕竟除了下载部分,0.5.x系列将没有重大的改变。
BTW:我的机器开始出现些比较奇异的现象了,也许它该寿终正寝了!
阅读(1353) | 评论(10) | 转发(0) |
给主人留下些什么吧!~~