1
0
Fork 0

android: Settings: Add support for hdmi output mode

Signed-off-by: hmz007 <hmz007@gmail.com>
master
hmz007 4 years ago
parent 8ea6e9bdab
commit 7215afc044

@ -5591,6 +5591,7 @@
<string name="screen_aux_title">"副屏"</string>
<string name="screen_switch">"开关"</string>
<string name="screen_resolution">"分辨率设置"</string>
<string name="screen_output_mode">"输出格式"</string>
<string name="screen_scale">"屏幕缩放"</string>
<string name="screen_rotation">"屏幕旋转"</string>
<string name="screen_full_vh">"满屏显示"</string>

@ -13707,7 +13707,8 @@
<string name="screen_aux_title">Aux Screen</string>
<string name="screen_switch">Turn on/off</string>
<string name="screen_resolution">Resolution</string>
<string name="screen_scale">Screen Zoom</string>
<string name="screen_scale">Screen zoom</string>
<string name="screen_output_mode">Output mode</string>
<string name="screen_rotation">Screen Rotation</string>
<string name="screen_full_vh">screen full display</string>
<string name="confirm_dialog_title">Save Confirm</string>

@ -74,6 +74,24 @@ public class DrmDisplaySetting {
manager.setOverScan(display, direction, value);
}
public static void setColorMode(int displayid, String format) {
RkDisplayOutputManager manager = new RkDisplayOutputManager();
int type = manager.getCurrentInterface(displayid);
manager.setColorMode(displayid, type, format);
}
public static String getColorMode(int displayid) {
RkDisplayOutputManager manager = new RkDisplayOutputManager();
int type = manager.getCurrentInterface(displayid);
return manager.getCurrentColorMode(displayid, type);
}
public static String[] getColorModeList(int displayid) {
RkDisplayOutputManager manager = new RkDisplayOutputManager();
int type = manager.getCurrentInterface(displayid);
return manager.getSupportCorlorList(displayid, type);
}
public static int getDisplayNumber() {
RkDisplayOutputManager manager = new RkDisplayOutputManager();
return manager.getDisplayNumber();

@ -49,6 +49,7 @@ public class HdmiSettings extends SettingsPreferenceFragment
private static final String TAG = "HdmiSettings";
private static final String KEY_PRE_CATE = "Display";
private static final String KEY_PRE_RESOLUTION = "Resolution";
private static final String KEY_PRE_COLOR_MODE = "ColorMode";
private static final String KEY_PRE_SCREEN_SCALE = "ScreenScale";
private static final String KEY_AUX_CATEGORY = "aux_category";
private static final String KEY_AUX_SCREEN_VH = "aux_screen_vh";
@ -347,6 +348,21 @@ public class HdmiSettings extends SettingsPreferenceFragment
DisplayInfo displayInfo = new DisplayInfo();
displayInfo.setDisplayNo(display);
mDisplayInfoList.put(display, displayInfo);
//add color preference for HDMI-A
if ("HDMIA".equals(typeName)) {
String curColorMode = DrmDisplaySetting.getColorMode(display);
String[] colorList = DrmDisplaySetting.getColorModeList(display);
Log.v(TAG, "Current mode " + curColorMode + " of " + colorList.length);
ListPreference colorPreference = new ListPreference(mContext);
colorPreference.setEntries(colorList);
colorPreference.setEntryValues(colorList);
colorPreference.setKey(KEY_PRE_COLOR_MODE + display);
colorPreference.setTitle(mContext.getString(R.string.screen_output_mode));
colorPreference.setValue(curColorMode);
colorPreference.setOnPreferenceChangeListener(this);
category.addPreference(colorPreference);
}
}
sendUpdateStateMsg(ITEM_CONTROL.REFRESH_DISPLAY_STATUS_INFO, 0);
@ -589,6 +605,14 @@ public class HdmiSettings extends SettingsPreferenceFragment
}
preference.getParent().setEnabled(false);
updateResolution(ITEM_CONTROL.CHANGE_RESOLUTION, index);
} else if (key.startsWith(KEY_PRE_COLOR_MODE)) {
int display = Integer.parseInt(key.replace(KEY_PRE_COLOR_MODE, ""));
ListPreference colorPreference = (ListPreference) preference;
String curColorMode = DrmDisplaySetting.getColorMode(display);
String newColorMode = (String) obj;
if (!newColorMode.equals(curColorMode)) {
DrmDisplaySetting.setColorMode(display, newColorMode);
}
} else if (preference == mAuxScreenVH) {
mEnableDisplayListener = false;
showWaitingDialog(R.string.dialog_wait_screen_connect);

Loading…
Cancel
Save