2009年2月16日星期一

Qopia 中怎么编译不同的Camera

Qtopia 4.1.x系列里把和设备相关的代码独立出来放在一个专门的device目录.各位可能已经注意到了,执行
$ ls devices/
会看到下面的目录结构
example gcc411 greenphone omap730 pxa27x s3c24a0 zylonite

而不是由一大堆宏来控制,这样的好处是很好的保持了主体代码的可移植性, 另一方面也使客户很容易把精力集中在固定的一个目录下,而不是到各个目录下找到相应的代码,然后要改动,很不容易维护。在做参考设计方面,也可以只把相应的device目录打包即可

下面就以greenphone为例来讲讲camera,其实没什么特色,主要代码在
src/applications/camera 和
devices/greenphone/camera/omegacamera.cpp

后面这个文件也是要加src/applications/camera工程里编译的,我们看工程文件camera.pro
16 !isEmpty(DEVICE_CONFIG_PATH) {
17 DEVICE_SOURCES=$$files($$DEVICE_CONFIG_PATH/camera/*.cpp)
18 }
19
20 !isEmpty(DEVICE_SOURCES) {
21 SOURCES+=$$DEVICE_SOURCES
22 } else {
23 SOURCES+=defaultvideocapture.cpp
24 }
在执行 ./configue -device 的时候会生成DEVICE_CONFIG_PATH这个变量,就是前面提到的设备目录,会把相应代码加进来

至于具体的实现,就是和video4linux驱动打交道的工程,木有什么好说的,自己看代码即可

没有评论:

发表评论