请先阅读序言:
在校大学生 linux 软件动手项目精选(序)
项目名称:
linux 下 hard disk 文件快速搜索工具 HDD_Search
项目需求:
功能如 CD Manager 这个工具:
http://www.newhua.com/soft/77809.htm
但只搜索硬盘即可。
即用 gtk 实现一个 linux 下扫描硬盘并快速搜索你的硬盘上文件的工具。
在 google code 上,建立 HDD_Search_(Your_Name) 的项目。
基本功能:
1、能扫描你的硬盘的不同目录
2、快速搜索到文件
3、先用 glade, gtk 实现 UI,并加入最简单的搜索功能
4、数据库使用 sqlite
5、只支持英文界面 menu
6、完整的 UI 操作流程要和 CD Manager 一致
7、全部使用动态链接库
8、C语言开发
进阶需求一:
1、去掉所有的编译 warning
2、用 valgrind 检查内存泄露问题
3、花一到三个月的时间,查各种资料,反复优化搜索的速度,如使用索引等等
不低于三次的优化。
并且列举出各次优化的测试数据到 wiki。
4、所有的进阶需求都可以用 feature 来控制开关
即控制是否编译。
进阶需求二:
1、界面 menu 增加中文菜单切换
2、增加选择不同字型 font 的功能,包括文泉驿,微软雅黑
熟悉 freetype 的接口和使用
3、全部使用静态链接库
进阶需求三:
1、界面 menu 语言增加阿拉伯语
菜单位置可是从右往左哟,文字也是从右往左
2、增加进程间通讯的方式,接收外部命令来启动搜索
即接收到 IPC 命令后,所做的操作类似直接点击搜索按钮,结果的显示还是在主界面上,而不用传给外部。
进程间通讯的方式,依次用 pipe, socket, shared memory 实现。
进阶需求四:
1、使用 dbus (glib 自带) 实现上面的 IPC 通讯,发送 search 命令
发送命令的工具可以是 linux 系统自带的 dbus 工具。
2、使用 gupnp lib 实现一个内建的 service,提供单一功能,即接收 search 命令,搜索一个关键字
gupnp 也是一种通讯方式,可以在不同机器间实现调用 service 的功能。
发送 upnp 请求的工具可以是 Intel upnp tool (Device spy.exe):
http://blog.csdn.net/mimepp/article/details/5457565
或者是 gupnp 自带的工具。
进阶需求五:
1、内建一个 apache server + cgi 来接收外部 search 命令
2、对 apache 增加 php 模块,用 php 页面来接收 search 命令,搜索的结果以文本的形式返回到页面里,并能有中文文字显示
3、对 php 增加 libgd,即支持将搜索的结果以图片的形式返回给页面,如:
进阶需求六:
1、增加双击 video 视频格式 mkv 的播放功能,只要 mkv 格式能播放即可。
通过 upnp 调用 linux PC 上 gmediarender 来实现播放控制。
进阶需求七:
1、在 windows 平台上编译,运行本工具
gtk 开发的应用程序,是可以跨平台的