安卓11-设置HDMI分辨率流程

安卓11中从设置-显示设置hdmi分辨率流程:framework层通过jni控制底层驱动实现,标准驱动模型


packages\apps\Settings\src\com\android\settings\display\HdmiSettings.java
     private void updateResolution(final ITEM_CONTROL control, final int index) {
   
        showWaitingDialog(R.string.dialog_update_resolution);
        mEnableDisplayListener = false;
        new Thread() {
   
            @Override
            public void run() {
   
                if (ITEM_CONTROL.CHANGE_RESOLUTION == control) {
   
                    synchronized (mLock) {
   
                        int display = mSelectDisplayInfo.getDisplayNo();
                        DrmDisplaySetting.updateDisplayInfos();
                        DrmDisplaySetting.updateDisplayModesInfo(mSelectDisplayInfo);
                        int status = DrmDisplaySetting.getCurrentDpyConnState(display);
                        mSelectDisplayInfo.setStatus(status);
                        String[] modes = mSelectDisplayInfo.getOrginModes();
                        Log.v(TAG, "display " + display + ", status=" + status + ", modes=" + modes);
                        if (DPY_STATUS_CONNECTED == status && null != modes && modes.length > 0) {
   
                            DrmDisplaySetting.setDisplayModeTemp(mSelectDisplayInfo, index);
//                            String mode = Arrays.asList(modes).get(index);
//                            DrmDisplaySetting.setMode(display, mode);
                            if (USED_OFFON_RESOLUTION) {
   
                                sendSwitchDeviceOffOnMsg(control, SWITCH_STATUS_OFF_ON);
                            } else {
   
                                Message message = new Message();
                                message.what = MSG_SHOW_CONFIRM_DIALOG;
                                message.obj = control;
                                mHandler.sendMessageDelayed(message, 300);
                            }
                        } else {
   
                            Message message = new Message();
                            message.what = MSG_UPDATE_STATUS_UI;
                            message.obj = ITEM_CONTROL.REFRESH_DISPLAY_STATUS_INFO;
                            mHandler.sendMessage(message);
                        }
                    }
                }
            }
        }.start();
    }

packages/apps/Settings/src/com/android/settings/display/DrmDisplaySetting.java
     public static void setDisplayModeTemp(DisplayInfo di, int index) {
   
        String mode = Arrays.asList(di.getOrginModes()).get(index);
        setMode(di.getDisplayNo(), mode);
        tmpSetMode = mode;
    }
    public static void setDisplayModeTemp(DisplayInfo di, int index) {
   
        String mode = Arrays.asList(di.getOrginModes()).get(index);
        setMode(di.getDisplayNo(), mode);
        tmpSetMode = mode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术求索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值