這篇“c++ mModule變量如何定義”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“c++ mModule變量如何定義”文章吧。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:申請域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、淅川網(wǎng)站維護(hù)、網(wǎng)站推廣。
文件 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中進(jìn)行了初始化賦值
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,應(yīng)該最后意圖指向一個結(jié)構(gòu)體
}
。。。
}
然后來到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 結(jié)構(gòu)體的屬性
typedef struct camera_module {
。。。
hw_module_t common; //這里不是指針
。。。
}
繼續(xù) 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;
現(xiàn)在可以明白了
mModule->common.methods->open(&mModule->common, id, device) 的寫法了吧
繼續(xù)device,就是hw_device_t 對象實例
typedef struct camera_device {
hw_device_t common;
camera_device_ops_t *ops;
void *priv;
} camera_device_t;
open 是一個指針函數(shù),它指向的是 QCamera2Factory 的 camera_device_open 方法
以上就是關(guān)于“c++ mModule變量如何定義”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。