91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c++ mModule變量如何定義

發布時間:2022-03-25 09:24:04 來源:億速云 閱讀:153 作者:iii 欄目:互聯網科技

這篇“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變量如何定義”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

天津市| 绥化市| 高清| 砚山县| 呼玛县| 承德县| 宝应县| 乌鲁木齐市| 娱乐| 剑阁县| 商丘市| 崇仁县| 孟村| 宝丰县| 元朗区| 崇义县| 澳门| 志丹县| 廉江市| 大厂| 盘山县| 威海市| 呼图壁县| 东兴市| 涞源县| 天门市| 临泉县| 榆林市| 九寨沟县| 务川| 柳林县| 运城市| 合水县| 丰原市| 喀什市| 凤翔县| 汨罗市| 瑞昌市| 清河县| 石阡县| 监利县|