camera flash flow(臨時)

來源:互聯網
上載者:User

kconfig config MSM_CAMERA_FLASH
.config

/kernel/drivers/media/video/msm/Kconfig
    config MSM_CAMERA_FLASH
        bool "Qualcomm MSM camera flash support"
        depends on MSM_CAMERA && !ARCH_MSM8X60
        default n
        ---help---
          Enable support for LED flash for msm camera
試著從這裡關掉,結果不成功:( !!

FLOW: from java APP TO DRV

packages/apps/Camera/src/com/android/camera/CameraSettings.java
private void initPreference(PreferenceGroup group) {
    ...
        if (flashMode != null) {
            filterUnsupportedOptions(group,
                    flashMode, mParameters.getSupportedFlashModes());
        }
    ...

frameworks/base/core/java/android/hardware/camera.java
        public List<String> getSupportedFlashModes() {
            String str = get(KEY_FLASH_MODE + SUPPORTED_VALUES_SUFFIX);
            //yue  KEY_FLASH_MODE + SUPPORTED_VALUES_SUFFIX="flash-mode-values"
//            return null;
            Log.e("CAM", "------->getSupportedFlashModes()");
            Log.e("CAM", "str ="+str);
             Log.e("CAM", "RETURN:List<String> ="+split(str));
            return split(str);
        }
frameworks/base/libs/camera/CameraParameters.cpp --->編譯到system/lib/libcamera_client.so
    const char CameraParameters::KEY_SUPPORTED_FLASH_MODES[] = "flash-mode-values";

vendor/qcom/android-open/libcamera2/QualcommCameraHardware.cpp--->編譯到system/lib/libcamera.so
    void QualcommCameraHardware::initDefaultParameters()
    {   
        ...
        if (mSensorInfo.flash_enabled) {
        mParameters.set(CameraParameters::KEY_FLASH_MODE,
                        CameraParameters::FLASH_MODE_OFF);
        mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES,
                        flash_values);
        }
        ...
    }

    bool QualcommCameraHardware::startCamera()
    {
     ...
     if (ioctl(mCameraControlFd,
              MSM_CAM_IOCTL_GET_SENSOR_INFO,
              &mSensorInfo) < 0)
        LOGW("%s: cannot retrieve sensor info!", __FUNCTION__);
        else
        LOGI("%s: camsensor name %s, flash %d", __FUNCTION__,
             mSensorInfo.name, mSensorInfo.flash_enabled);
    ...
    }

kernel/drivers/media/video/msm/msm_camera.c--->編譯到??????????????system/lib/libcamera.so
    static long msm_ioctl_config(struct file *filep, unsigned int cmd,
        unsigned long arg)
    {
    ...
    switch (cmd) {    
        case MSM_CAM_IOCTL_GET_SENSOR_INFO:
            rc = msm_get_sensor_info(pmsm->sync, argp);
            break;
    ...
    }

    static int msm_get_sensor_info(struct msm_sync *sync, void __user *arg)
    {
        ...
        memcpy(&info.name[0],
            sdata->sensor_name,
            MAX_SENSOR_NAME);
        info.flash_enabled = sdata->flash_data->flash_type !=
            MSM_CAMERA_FLASH_NONE;
        ...
    }

kernel/arch/arm/mach-msm/board-msm7x27-qrd.c--->編譯到??????????????system/lib/libcamera.so
    static struct msm_camera_sensor_info msm_camera_sensor_ov2655_data = {
        .sensor_name    = "ov2655",
        .sensor_reset    = 89,
        .sensor_pwd     = 27,
        .vcm_pwd    = 0,
        .vcm_enable     = 0,
        .pdata            = &msm_camera_device_data,
        .flash_data     = &flash_ov2655
    };

    static struct msm_camera_sensor_flash_data flash_ov2655 = {
    //    .flash_type = MSM_CAMERA_FLASH_LED,
        .flash_type = MSM_CAMERA_FLASH_NONE,
        .flash_src    = &msm_flash_src
    //yuebao
    };

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.