c++mModule变量如何定义

这篇“c++ mModule变量如何定义”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c++ mModule变量如何定义”文章吧。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网页空间、营销软件、网站建设、淅川网站维护、网站推广。

文件 CameraHardwareInterface.h
    status_t startPreview()
    {
        ALOGV("%s(%s)", __FUNCTION__, mName.string());
        if (mDevice->ops->start_preview)
            return mDevice->ops->start_preview(mDevice);
        return INVALID_OPERATION;
    }

首先

private: camera_device_t *mDevice;

在方法initialize中进行了初始化赋值

 status_t initialize(CameraModule *module){

。。。

  if (module->getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_3 &&
            info.device_version > CAMERA_DEVICE_API_VERSION_1_0) {
            // Open higher version camera device as HAL1.0 device.
            rc = module->openLegacy(mName.string(),
                                     CAMERA_DEVICE_API_VERSION_1_0,
                                     (hw_device_t **)&mDevice);
        } else {
            rc = module->oCameraHardwareInterface.hpen(mName.string(), (hw_device_t **)&mDevice);

         //注意这里的二级指针&mDevice,应该最后意图指向一个结构体
        }

。。。

}

然后来到CameraModule.cpp 文件

int CameraModule::open(const char* id, struct hw_device_t** device) {
    int res;
    ATRACE_BEGIN("camera_module->open");
    res = filterOpenErrorCode(mModule->common.methods->open(&mModule->common, id, device));
    ATRACE_END();
    return res;
}

在这里mModule 变量 定义

camera_module_t *mModule;

至于后面的common 实际上是camera_module_t 结构体的属性

typedef struct camera_module {

。。。

hw_module_t common; //这里不是指针

。。。

}

继续 typedef struct hw_module_t{

。。。

struct hw_module_methods_t* methods;

。。。

}

typedef struct hw_module_methods_t {
    /** Open a specific device */
    int (*open)(const struct hw_module_t* module, const char* id,
            struct hw_device_t** device);

} hw_module_methods_t;

现在可以明白了

mModule->common.methods->open(&mModule->common, id, device) 的写法了吧

继续device,就是hw_device_t 对象实例

typedef struct camera_device {
    hw_device_t common;
    camera_device_ops_t *ops;
    void *priv;
} camera_device_t;

open 是一个指针函数,它指向的是 QCamera2Factory 的 camera_device_open 方法

以上就是关于“c++ mModule变量如何定义”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


当前名称:c++mModule变量如何定义
分享网址:http://csdahua.cn/article/iecpih.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流