summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/quality/MediaQualityContract.java28
-rw-r--r--services/core/java/com/android/server/media/quality/MediaQualityService.java35
-rw-r--r--services/core/java/com/android/server/media/quality/MediaQualityUtils.java493
3 files changed, 555 insertions, 1 deletions
diff --git a/media/java/android/media/quality/MediaQualityContract.java b/media/java/android/media/quality/MediaQualityContract.java
index e558209420e0..e4de3e4420fe 100644
--- a/media/java/android/media/quality/MediaQualityContract.java
+++ b/media/java/android/media/quality/MediaQualityContract.java
@@ -341,6 +341,13 @@ public class MediaQualityContract {
public static final String PARAMETER_FILM_MODE = "film_mode";
/**
+ * Enable/disable black color auto stretch
+ *
+ * @hide
+ */
+ public static final String PARAMETER_BLACK_STRETCH = "black_stretch";
+
+ /**
* Enable/disable blue color auto stretch
*
* <p>Type: BOOLEAN
@@ -457,6 +464,27 @@ public class MediaQualityContract {
* @hide
*
*/
+ public static final String PARAMETER_COLOR_TEMPERATURE_RED_GAIN =
+ "color_temperature_red_gain";
+
+ /**
+ * @hide
+ *
+ */
+ public static final String PARAMETER_COLOR_TEMPERATURE_GREEN_GAIN =
+ "color_temperature_green_gain";
+
+ /**
+ * @hide
+ *
+ */
+ public static final String PARAMETER_COLOR_TEMPERATURE_BLUE_GAIN =
+ "color_temperature_blue_gain";
+
+ /**
+ * @hide
+ *
+ */
public static final String PARAMETER_COLOR_TEMPERATURE_RED_OFFSET =
"color_temperature_red_offset";
diff --git a/services/core/java/com/android/server/media/quality/MediaQualityService.java b/services/core/java/com/android/server/media/quality/MediaQualityService.java
index 43fb8d0c97e0..d00ac4d9cd11 100644
--- a/services/core/java/com/android/server/media/quality/MediaQualityService.java
+++ b/services/core/java/com/android/server/media/quality/MediaQualityService.java
@@ -35,6 +35,7 @@ import android.hardware.tv.mediaquality.IPictureProfileChangedListener;
import android.hardware.tv.mediaquality.ISoundProfileAdjustmentListener;
import android.hardware.tv.mediaquality.ISoundProfileChangedListener;
import android.hardware.tv.mediaquality.ParamCapability;
+import android.hardware.tv.mediaquality.ParameterRange;
import android.hardware.tv.mediaquality.PictureParameter;
import android.hardware.tv.mediaquality.PictureParameters;
import android.hardware.tv.mediaquality.SoundParameter;
@@ -1133,7 +1134,39 @@ public class MediaQualityService extends SystemService {
@Override
public List<ParameterCapability> getParameterCapabilities(
List<String> names, UserHandle user) {
- return new ArrayList<>();
+ byte[] byteArray = MediaQualityUtils.convertParameterToByteArray(names);
+ ParamCapability[] caps = new ParamCapability[byteArray.length];
+ try {
+ mMediaQuality.getParamCaps(byteArray, caps);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Failed to get parameter capabilities", e);
+ }
+
+ return getListParameterCapability(caps);
+ }
+
+ private List<ParameterCapability> getListParameterCapability(ParamCapability[] caps) {
+ List<ParameterCapability> pcList = new ArrayList<>();
+ for (ParamCapability pcHal : caps) {
+ String name = MediaQualityUtils.getParameterName(pcHal.name);
+ boolean isSupported = pcHal.isSupported;
+ int type = pcHal.defaultValue == null ? 0 : pcHal.defaultValue.getTag() + 1;
+ Bundle bundle = convertToCaps(pcHal.range);
+
+ pcList.add(new ParameterCapability(name, isSupported, type, bundle));
+ }
+ return pcList;
+ }
+
+ private Bundle convertToCaps(ParameterRange range) {
+ Bundle bundle = new Bundle();
+ bundle.putObject("INT_MIN_MAX", range.numRange.getIntMinMax());
+ bundle.putObject("INT_VALUES_SUPPORTED", range.numRange.getIntValuesSupported());
+ bundle.putObject("DOUBLE_MIN_MAX", range.numRange.getDoubleMinMax());
+ bundle.putObject("DOUBLE_VALUES_SUPPORTED", range.numRange.getDoubleValuesSupported());
+ bundle.putObject("LONG_MIN_MAX", range.numRange.getLongMinMax());
+ bundle.putObject("LONG_VALUES_SUPPORTED", range.numRange.getLongValuesSupported());
+ return bundle;
}
@GuardedBy("mPictureProfileLock")
diff --git a/services/core/java/com/android/server/media/quality/MediaQualityUtils.java b/services/core/java/com/android/server/media/quality/MediaQualityUtils.java
index a74f977132a7..5bd4420e9944 100644
--- a/services/core/java/com/android/server/media/quality/MediaQualityUtils.java
+++ b/services/core/java/com/android/server/media/quality/MediaQualityUtils.java
@@ -20,6 +20,7 @@ import android.content.ContentValues;
import android.database.Cursor;
import android.hardware.tv.mediaquality.DolbyAudioProcessing;
import android.hardware.tv.mediaquality.DtsVirtualX;
+import android.hardware.tv.mediaquality.ParameterName;
import android.hardware.tv.mediaquality.PictureParameter;
import android.hardware.tv.mediaquality.SoundParameter;
import android.media.quality.MediaQualityContract.BaseParameters;
@@ -37,8 +38,11 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
/**
@@ -1012,6 +1016,495 @@ public final class MediaQualityUtils {
);
}
+ /**
+ * Convert parameter to byte array.
+ */
+ public static byte[] convertParameterToByteArray(List<String> names) {
+ /**
+ * TODO Add following to ParameterName & add conversion here.
+ * - PICTURE_QUALITY_EVENT_TYPE
+ * - PANEL_INIT_MAX_LUMINCE_NITS
+ */
+
+ HashSet<String> nameMap = new HashSet<>(names);
+
+ List<Byte> bytes = new ArrayList<>();
+ // Picture Quality parameters
+ if (nameMap.contains(PictureQuality.PARAMETER_BRIGHTNESS)) {
+ bytes.add(ParameterName.BRIGHTNESS);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_BRIGHTNESS)) {
+ bytes.add(ParameterName.BRIGHTNESS);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_CONTRAST)) {
+ bytes.add(ParameterName.CONTRAST);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_SHARPNESS)) {
+ bytes.add(ParameterName.SHARPNESS);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_SATURATION)) {
+ bytes.add(ParameterName.SATURATION);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_HUE)) {
+ bytes.add(ParameterName.HUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_BRIGHTNESS)) {
+ bytes.add(ParameterName.BRIGHTNESS);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_BRIGHTNESS)) {
+ bytes.add(ParameterName.COLOR_TUNER_BRIGHTNESS);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_SATURATION)) {
+ bytes.add(ParameterName.SATURATION);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_HUE)) {
+ bytes.add(ParameterName.HUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_RED_OFFSET)) {
+ bytes.add(ParameterName.COLOR_TUNER_RED_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_GREEN_OFFSET)) {
+ bytes.add(ParameterName.COLOR_TUNER_GREEN_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_BLUE_OFFSET)) {
+ bytes.add(ParameterName.COLOR_TUNER_BLUE_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_RED_GAIN)) {
+ bytes.add(ParameterName.COLOR_TUNER_RED_GAIN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_GREEN_GAIN)) {
+ bytes.add(ParameterName.COLOR_TUNER_GREEN_GAIN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_BLUE_GAIN)) {
+ bytes.add(ParameterName.COLOR_TUNER_BLUE_GAIN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_NOISE_REDUCTION)) {
+ bytes.add(ParameterName.NOISE_REDUCTION);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_MPEG_NOISE_REDUCTION)) {
+ bytes.add(ParameterName.MPEG_NOISE_REDUCTION);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_FLESH_TONE)) {
+ bytes.add(ParameterName.FLASH_TONE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_DECONTOUR)) {
+ bytes.add(ParameterName.DE_CONTOUR);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_DYNAMIC_LUMA_CONTROL)) {
+ bytes.add(ParameterName.DYNAMIC_LUMA_CONTROL);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_FILM_MODE)) {
+ bytes.add(ParameterName.FILM_MODE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_BLUE_STRETCH)) {
+ bytes.add(ParameterName.BLUE_STRETCH);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNE)) {
+ bytes.add(ParameterName.COLOR_TUNE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TEMPERATURE)) {
+ bytes.add(ParameterName.COLOR_TEMPERATURE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_GLOBAL_DIMMING)) {
+ bytes.add(ParameterName.GLOBE_DIMMING);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_AUTO_PICTURE_QUALITY_ENABLED)) {
+ bytes.add(ParameterName.AUTO_PICTUREQUALITY_ENABLED);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_AUTO_SUPER_RESOLUTION_ENABLED)) {
+ bytes.add(ParameterName.AUTO_SUPER_RESOLUTION_ENABLED);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_LEVEL_RANGE)) {
+ bytes.add(ParameterName.LEVEL_RANGE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_GAMUT_MAPPING)) {
+ bytes.add(ParameterName.GAMUT_MAPPING);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_PC_MODE)) {
+ bytes.add(ParameterName.PC_MODE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_LOW_LATENCY)) {
+ bytes.add(ParameterName.LOW_LATENCY);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_VRR)) {
+ bytes.add(ParameterName.VRR);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_CVRR)) {
+ bytes.add(ParameterName.CVRR);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_HDMI_RGB_RANGE)) {
+ bytes.add(ParameterName.HDMI_RGB_RANGE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_SPACE)) {
+ bytes.add(ParameterName.COLOR_SPACE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_PANEL_INIT_MAX_LUMINCE_VALID)) {
+ bytes.add(ParameterName.PANEL_INIT_MAX_LUMINCE_VALID);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_GAMMA)) {
+ bytes.add(ParameterName.GAMMA);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TEMPERATURE_RED_OFFSET)) {
+ bytes.add(ParameterName.COLOR_TEMPERATURE_RED_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TEMPERATURE_GREEN_OFFSET)) {
+ bytes.add(ParameterName.COLOR_TEMPERATURE_GREEN_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TEMPERATURE_BLUE_OFFSET)) {
+ bytes.add(ParameterName.COLOR_TEMPERATURE_BLUE_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_ELEVEN_POINT_RED)) {
+ bytes.add(ParameterName.ELEVEN_POINT_RED);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_ELEVEN_POINT_GREEN)) {
+ bytes.add(ParameterName.ELEVEN_POINT_GREEN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_ELEVEN_POINT_BLUE)) {
+ bytes.add(ParameterName.ELEVEN_POINT_BLUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_LOW_BLUE_LIGHT)) {
+ bytes.add(ParameterName.LOW_BLUE_LIGHT);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_LD_MODE)) {
+ bytes.add(ParameterName.LD_MODE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_RED_GAIN)) {
+ bytes.add(ParameterName.OSD_RED_GAIN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_GREEN_GAIN)) {
+ bytes.add(ParameterName.OSD_GREEN_GAIN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_BLUE_GAIN)) {
+ bytes.add(ParameterName.OSD_BLUE_GAIN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_RED_OFFSET)) {
+ bytes.add(ParameterName.OSD_RED_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_GREEN_OFFSET)) {
+ bytes.add(ParameterName.OSD_GREEN_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_BLUE_OFFSET)) {
+ bytes.add(ParameterName.OSD_BLUE_OFFSET);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_HUE)) {
+ bytes.add(ParameterName.OSD_HUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_SATURATION)) {
+ bytes.add(ParameterName.OSD_SATURATION);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_OSD_CONTRAST)) {
+ bytes.add(ParameterName.OSD_CONTRAST);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SWITCH)) {
+ bytes.add(ParameterName.COLOR_TUNER_SWITCH);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_RED)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_RED);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_GREEN)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_GREEN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_BLUE)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_BLUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_CYAN)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_CYAN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_MAGENTA)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_MAGENTA);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_YELLOW)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_YELLOW);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_HUE_FLESH)) {
+ bytes.add(ParameterName.COLOR_TUNER_HUE_FLESH);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_RED)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_RED);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_GREEN)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_GREEN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_BLUE)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_BLUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_CYAN)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_CYAN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_MAGENTA)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_MAGENTA);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_YELLOW)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_YELLOW);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_FLESH)) {
+ bytes.add(ParameterName.COLOR_TUNER_SATURATION_FLESH);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_RED)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_RED);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_GREEN)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_GREEN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_BLUE)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_BLUE);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_CYAN)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_CYAN);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_MAGENTA)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_MAGENTA);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_YELLOW)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_YELLOW);
+ }
+ if (nameMap.contains(PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_FLESH)) {
+ bytes.add(ParameterName.COLOR_TUNER_LUMINANCE_FLESH);
+ }
+
+ // Sound Quality parameters
+ if (nameMap.contains(SoundQuality.PARAMETER_BALANCE)) {
+ bytes.add(ParameterName.BALANCE);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_BASS)) {
+ bytes.add(ParameterName.BASS);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_TREBLE)) {
+ bytes.add(ParameterName.TREBLE);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_SURROUND_SOUND)) {
+ bytes.add(ParameterName.SURROUND_SOUND_ENABLED);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_EQUALIZER_DETAIL)) {
+ bytes.add(ParameterName.EQUALIZER_DETAIL);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_SPEAKERS)) {
+ bytes.add(ParameterName.SPEAKERS_ENABLED);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_SPEAKERS_DELAY_MILLIS)) {
+ bytes.add(ParameterName.SPEAKERS_DELAY_MS);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_EARC)) {
+ bytes.add(ParameterName.ENHANCED_AUDIO_RETURN_CHANNEL_ENABLED);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_AUTO_VOLUME_CONTROL)) {
+ bytes.add(ParameterName.AUTO_VOLUME_CONTROL);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DOWN_MIX_MODE)) {
+ bytes.add(ParameterName.DOWNMIX_MODE);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DTS_DRC)) {
+ bytes.add(ParameterName.DTS_DRC);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DOLBY_AUDIO_PROCESSING)) {
+ bytes.add(ParameterName.DOLBY_AUDIO_PROCESSING);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DIALOGUE_ENHANCER)) {
+ bytes.add(ParameterName.DOLBY_DIALOGUE_ENHANCER);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DTS_VIRTUAL_X)) {
+ bytes.add(ParameterName.DTS_VIRTUAL_X);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DIGITAL_OUTPUT_DELAY_MILLIS)) {
+ bytes.add(ParameterName.DIGITAL_OUTPUT_DELAY_MS);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_DIGITAL_OUTPUT_MODE)) {
+ bytes.add(ParameterName.DIGITAL_OUTPUT);
+ }
+ if (nameMap.contains(SoundQuality.PARAMETER_SOUND_STYLE)) {
+ bytes.add(ParameterName.SOUND_STYLE);
+ }
+
+ byte[] byteArray = new byte[bytes.size()];
+ for (int i = 0; i < bytes.size(); i++) {
+ byteArray[i] = bytes.get(i);
+ }
+ return byteArray;
+ }
+
+ /**
+ * Get Parameter Name based on byte.
+ */
+ public static String getParameterName(byte pn) {
+ Map<Byte, String> parameterNameMap = new HashMap<>();
+ parameterNameMap.put(ParameterName.BRIGHTNESS, PictureQuality.PARAMETER_BRIGHTNESS);
+ parameterNameMap.put(ParameterName.CONTRAST, PictureQuality.PARAMETER_CONTRAST);
+ parameterNameMap.put(ParameterName.SHARPNESS, PictureQuality.PARAMETER_SHARPNESS);
+ parameterNameMap.put(ParameterName.SATURATION, PictureQuality.PARAMETER_SATURATION);
+ parameterNameMap.put(ParameterName.HUE, PictureQuality.PARAMETER_HUE);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_BRIGHTNESS,
+ PictureQuality.PARAMETER_COLOR_TUNER_BRIGHTNESS);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_RED_OFFSET,
+ PictureQuality.PARAMETER_COLOR_TUNER_RED_OFFSET);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_GREEN_OFFSET,
+ PictureQuality.PARAMETER_COLOR_TUNER_GREEN_OFFSET);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_BLUE_OFFSET,
+ PictureQuality.PARAMETER_COLOR_TUNER_BLUE_OFFSET);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_RED_GAIN,
+ PictureQuality.PARAMETER_COLOR_TUNER_RED_GAIN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_GREEN_GAIN,
+ PictureQuality.PARAMETER_COLOR_TUNER_GREEN_GAIN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_BLUE_GAIN,
+ PictureQuality.PARAMETER_COLOR_TUNER_BLUE_GAIN);
+ parameterNameMap.put(ParameterName.NOISE_REDUCTION,
+ PictureQuality.PARAMETER_NOISE_REDUCTION);
+ parameterNameMap.put(ParameterName.MPEG_NOISE_REDUCTION,
+ PictureQuality.PARAMETER_MPEG_NOISE_REDUCTION);
+ parameterNameMap.put(ParameterName.FLASH_TONE, PictureQuality.PARAMETER_FLESH_TONE);
+ parameterNameMap.put(ParameterName.DE_CONTOUR, PictureQuality.PARAMETER_DECONTOUR);
+ parameterNameMap.put(ParameterName.DYNAMIC_LUMA_CONTROL,
+ PictureQuality.PARAMETER_DYNAMIC_LUMA_CONTROL);
+ parameterNameMap.put(ParameterName.FILM_MODE,
+ PictureQuality.PARAMETER_FILM_MODE);
+ parameterNameMap.put(ParameterName.BLACK_STRETCH,
+ PictureQuality.PARAMETER_BLACK_STRETCH);
+ parameterNameMap.put(ParameterName.BLUE_STRETCH,
+ PictureQuality.PARAMETER_BLUE_STRETCH);
+ parameterNameMap.put(ParameterName.COLOR_TUNE,
+ PictureQuality.PARAMETER_COLOR_TUNE);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE);
+ parameterNameMap.put(ParameterName.GLOBE_DIMMING,
+ PictureQuality.PARAMETER_GLOBAL_DIMMING);
+ parameterNameMap.put(ParameterName.AUTO_PICTUREQUALITY_ENABLED,
+ PictureQuality.PARAMETER_AUTO_PICTURE_QUALITY_ENABLED);
+ parameterNameMap.put(ParameterName.AUTO_SUPER_RESOLUTION_ENABLED,
+ PictureQuality.PARAMETER_AUTO_SUPER_RESOLUTION_ENABLED);
+ parameterNameMap.put(ParameterName.LEVEL_RANGE, PictureQuality.PARAMETER_LEVEL_RANGE);
+ parameterNameMap.put(ParameterName.GAMUT_MAPPING,
+ PictureQuality.PARAMETER_GAMUT_MAPPING);
+ parameterNameMap.put(ParameterName.PC_MODE, PictureQuality.PARAMETER_PC_MODE);
+ parameterNameMap.put(ParameterName.LOW_LATENCY, PictureQuality.PARAMETER_LOW_LATENCY);
+ parameterNameMap.put(ParameterName.VRR, PictureQuality.PARAMETER_VRR);
+ parameterNameMap.put(ParameterName.CVRR, PictureQuality.PARAMETER_CVRR);
+ parameterNameMap.put(ParameterName.HDMI_RGB_RANGE,
+ PictureQuality.PARAMETER_HDMI_RGB_RANGE);
+ parameterNameMap.put(ParameterName.COLOR_SPACE, PictureQuality.PARAMETER_COLOR_SPACE);
+ parameterNameMap.put(ParameterName.PANEL_INIT_MAX_LUMINCE_VALID,
+ PictureQuality.PARAMETER_PANEL_INIT_MAX_LUMINCE_VALID);
+ parameterNameMap.put(ParameterName.GAMMA, PictureQuality.PARAMETER_GAMMA);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE_RED_GAIN,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE_RED_GAIN);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE_GREEN_GAIN,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE_GREEN_GAIN);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE_BLUE_GAIN,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE_BLUE_GAIN);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE_RED_OFFSET,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE_RED_OFFSET);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE_GREEN_OFFSET,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE_GREEN_OFFSET);
+ parameterNameMap.put(ParameterName.COLOR_TEMPERATURE_BLUE_OFFSET,
+ PictureQuality.PARAMETER_COLOR_TEMPERATURE_BLUE_OFFSET);
+ parameterNameMap.put(ParameterName.ELEVEN_POINT_RED,
+ PictureQuality.PARAMETER_ELEVEN_POINT_RED);
+ parameterNameMap.put(ParameterName.ELEVEN_POINT_GREEN,
+ PictureQuality.PARAMETER_ELEVEN_POINT_GREEN);
+ parameterNameMap.put(ParameterName.ELEVEN_POINT_BLUE,
+ PictureQuality.PARAMETER_ELEVEN_POINT_BLUE);
+ parameterNameMap.put(ParameterName.LOW_BLUE_LIGHT,
+ PictureQuality.PARAMETER_LOW_BLUE_LIGHT);
+ parameterNameMap.put(ParameterName.LD_MODE, PictureQuality.PARAMETER_LD_MODE);
+ parameterNameMap.put(ParameterName.OSD_RED_GAIN, PictureQuality.PARAMETER_OSD_RED_GAIN);
+ parameterNameMap.put(ParameterName.OSD_GREEN_GAIN,
+ PictureQuality.PARAMETER_OSD_GREEN_GAIN);
+ parameterNameMap.put(ParameterName.OSD_BLUE_GAIN,
+ PictureQuality.PARAMETER_OSD_BLUE_GAIN);
+ parameterNameMap.put(ParameterName.OSD_RED_OFFSET,
+ PictureQuality.PARAMETER_OSD_RED_OFFSET);
+ parameterNameMap.put(ParameterName.OSD_GREEN_OFFSET,
+ PictureQuality.PARAMETER_OSD_GREEN_OFFSET);
+ parameterNameMap.put(ParameterName.OSD_BLUE_OFFSET,
+ PictureQuality.PARAMETER_OSD_BLUE_OFFSET);
+ parameterNameMap.put(ParameterName.OSD_HUE, PictureQuality.PARAMETER_OSD_HUE);
+ parameterNameMap.put(ParameterName.OSD_SATURATION,
+ PictureQuality.PARAMETER_OSD_SATURATION);
+ parameterNameMap.put(ParameterName.OSD_CONTRAST,
+ PictureQuality.PARAMETER_OSD_CONTRAST);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SWITCH,
+ PictureQuality.PARAMETER_COLOR_TUNER_SWITCH);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_RED,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_RED);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_GREEN,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_GREEN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_BLUE,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_BLUE);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_CYAN,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_CYAN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_MAGENTA,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_MAGENTA);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_YELLOW,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_YELLOW);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_HUE_FLESH,
+ PictureQuality.PARAMETER_COLOR_TUNER_HUE_FLESH);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_RED,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_RED);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_GREEN,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_GREEN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_BLUE,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_BLUE);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_CYAN,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_CYAN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_MAGENTA,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_MAGENTA);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_YELLOW,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_YELLOW);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_SATURATION_FLESH,
+ PictureQuality.PARAMETER_COLOR_TUNER_SATURATION_FLESH);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_RED,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_RED);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_GREEN,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_GREEN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_BLUE,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_BLUE);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_CYAN,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_CYAN);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_MAGENTA,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_MAGENTA);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_YELLOW,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_YELLOW);
+ parameterNameMap.put(ParameterName.COLOR_TUNER_LUMINANCE_FLESH,
+ PictureQuality.PARAMETER_COLOR_TUNER_LUMINANCE_FLESH);
+ parameterNameMap.put(ParameterName.BALANCE, SoundQuality.PARAMETER_BALANCE);
+ parameterNameMap.put(ParameterName.BASS, SoundQuality.PARAMETER_BASS);
+ parameterNameMap.put(ParameterName.TREBLE, SoundQuality.PARAMETER_TREBLE);
+ parameterNameMap.put(ParameterName.SURROUND_SOUND_ENABLED,
+ SoundQuality.PARAMETER_SURROUND_SOUND);
+ parameterNameMap.put(ParameterName.EQUALIZER_DETAIL,
+ SoundQuality.PARAMETER_EQUALIZER_DETAIL);
+ parameterNameMap.put(ParameterName.SPEAKERS_ENABLED, SoundQuality.PARAMETER_SPEAKERS);
+ parameterNameMap.put(ParameterName.SPEAKERS_DELAY_MS,
+ SoundQuality.PARAMETER_SPEAKERS_DELAY_MILLIS);
+ parameterNameMap.put(ParameterName.ENHANCED_AUDIO_RETURN_CHANNEL_ENABLED,
+ SoundQuality.PARAMETER_EARC);
+ parameterNameMap.put(ParameterName.AUTO_VOLUME_CONTROL,
+ SoundQuality.PARAMETER_AUTO_VOLUME_CONTROL);
+ parameterNameMap.put(ParameterName.DOWNMIX_MODE, SoundQuality.PARAMETER_DOWN_MIX_MODE);
+ parameterNameMap.put(ParameterName.DTS_DRC, SoundQuality.PARAMETER_DTS_DRC);
+ parameterNameMap.put(ParameterName.DOLBY_AUDIO_PROCESSING,
+ SoundQuality.PARAMETER_DOLBY_AUDIO_PROCESSING);
+ parameterNameMap.put(ParameterName.DOLBY_DIALOGUE_ENHANCER,
+ SoundQuality.PARAMETER_DIALOGUE_ENHANCER);
+ parameterNameMap.put(ParameterName.DTS_VIRTUAL_X,
+ SoundQuality.PARAMETER_DTS_VIRTUAL_X);
+ parameterNameMap.put(ParameterName.DIGITAL_OUTPUT,
+ SoundQuality.PARAMETER_DIGITAL_OUTPUT_MODE);
+ parameterNameMap.put(ParameterName.DIGITAL_OUTPUT_DELAY_MS,
+ SoundQuality.PARAMETER_DIGITAL_OUTPUT_DELAY_MILLIS);
+ parameterNameMap.put(ParameterName.SOUND_STYLE, SoundQuality.PARAMETER_SOUND_STYLE);
+
+ return parameterNameMap.get(pn);
+ }
+
private static String getTempId(BiMap<Long, String> map, Cursor cursor) {
int colIndex = cursor.getColumnIndex(BaseParameters.PARAMETER_ID);
Long dbId = colIndex != -1 ? cursor.getLong(colIndex) : null;