我: 我的想法是基本上按着千千的路子来
陈国敏: 恩,这个应该简单一点把
23:10 我: 首先,能显示所有歌词
陈国敏: 有一个完全模式和一个简单模式?
我: 嗯
23:11 这个其实可以分两块来讨论
陈国敏: 先讨论完全模式把
我: 完全模式,从下往上走
当前歌词用不同的颜色标记出来
23:12 陈国敏: 天天静听的模式好像是显示一堆歌词,然后从上往下走,中间的亮
我: 是
中间就是当前歌词
陈国敏: 恩
所以有个跑马灯的模式?
我: 当歌词刚开始时,歌词的顶端在窗口的中间
陈国敏: 恩
23:13 我: 歌词唱到一半时,歌词的中线在窗口的中间
唱完后,歌词的下端在窗口的中间
陈国敏: 恩
我: 一句话就是,从下往上滚动,当前歌词在中间
然后要有个功能
陈国敏: ?
23:14 我: 就是可以用鼠标上下接歌词
拉歌词
拉到哪,就跳到哪
陈国敏: 恩
这个要怎么实现呢
23:15 我: 你判断拉动的偏移量
然后看是到哪句歌词的百分之几
再找到那句歌词的开始时间和结束时间
陈国敏: 其实可以直接把歌词全部读出来
我: 就知道了
23:16 一定要全部读出来
不然你没法显示呀
陈国敏: 生成一个大的窗口
size固定宽度,长度不限
我: 宽度不要固定
23:17 陈国敏: 然后来显示指定大小的窗口
我: 随着歌词的最大长度改变可能好些
陈国敏: 恩,也可以
我: 这样有个问题
陈国敏: 然后只在那个窗口的中间标记高亮
我: 你是想用个label?
陈国敏: ?
23:18 我: 就是颜色你怎么变换
高亮
23:19 陈国敏: 指定区域的高亮阿
我: 有这样的控件?
23:20 陈国敏: 能不能自己写个?
我: 可以啊
其实我就是这么打算的……
陈国敏: 实现这种功能
我想问我刚才说的能不能实现的?
我: 我是打算直接用pango和cairo来在窗口上画
陈国敏: 技术上
恩
23:21 我: 你一行行输出,到了中间那行就换个颜色就行咯
23:23 陈国敏: 现在问题是,全部读出来之后
全部写在窗口上么?
我说的这个窗口是很大的,但是只有部分可见]
23:24 我: 你可以计算窗口的大小
只画能显示出来的部分
23:26 陈国敏: 拖动应该是计算click点到释放点的距离,然后进行移动
我: 嗯
23:27 在拖动过程中歌词也要出现相应的变化
23:28 陈国敏: 移动的是那个大的窗口
我: 嗯
其实我的设想里不需要什么大窗口
23:29 陈国敏: 怎么实现?
我: 只是一个widget里的绘制问题
因为你的歌词都是不断重绘的
陈国敏: 恩
23:30 如果这样你就要不断的取歌词
应该没有大窗口那样比较直接
我: 你可以缓存的嘛
陈国敏: 只需要比例
23:31 我: 如果按你的设想的话应该是这样
先建一个足够大的cairo_t
陈国敏: 也就是不断计算哪几句歌词
我: 在里面把歌词都画出来
那个计算量很小的
陈国敏: 恩
我: 然后再把一部分画到窗口上
陈国敏: 也可以
23:32 我: 实现的方式有很多种
陈国敏: 恩
我: 我是想一句句歌词来画
陈国敏: 你的那种可能比较直接
23:33 我: 你可以都试试看咯
或者你看怎样好实现吧
陈国敏: 先用你那种试下
我: 主要是方便通过移动来修改时间
23:34 虽然我还没有准备好相应的功能……
陈国敏: 恩。。
23:35 我: 现在的player还没有控制功能
所以拖动还不急
能正常显示了再说
接口设计你也得试好几次才能定型的应该
23:36 陈国敏: 恩,我先要作个test
23:37 我: 做个demo吧
陈国敏: 恩
23:40 我: 或者弄个branch出来
23:41 等做好了再合并回去
正好让你玩玩svn
怎样?
23:42 陈国敏: 好啊,其实最想学的是配置。。。
这样才能对项目有整体的把握
23:44 我: 你可以同时搞嘛
我就负责修补一下OSD的bug吧
23:45 反正回学校又有一堆事,没太多时间搞
陈国敏: 恩
如果能学到配置,作这个项目就值了
23:46 我: 你要配置什么?
陈国敏: 项目的整套配置
23:47 就是一个完整项目需要的东西
我: 哦……
那你估计没机会了……
autoconf什么的我都做得差不多了
陈国敏: 不过可以看阿
23:48 我: 嗯
你主打了的话我就有时间写blog啦
陈国敏: 俄
恩
23:51 明天先试下弄个demo
看能不能实现