Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 778dcf27 authored by Haofan Wang's avatar Haofan Wang
Browse files

Add sent default picture/audio parameter API

Add the API that will send the picture default parameter and sound
default parameter to vendor code or HAL to apply the parameter on the
TV devices.

Bug: 375472716
Flag: android.media.tv.flags.media_quality_fw
Test: atest VtsHalMediaQualityTargetTest

Change-Id: I9d3ccc40eca3dba7edd4ab7164e92e3c88a96650
parent 1979606f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -50,9 +50,11 @@ interface IMediaQuality {
  android.hardware.tv.mediaquality.IPictureProfileChangedListener getPictureProfileListener();
  void setPictureProfileAdjustmentListener(android.hardware.tv.mediaquality.IPictureProfileAdjustmentListener listener);
  android.hardware.tv.mediaquality.PictureParameters getPictureParameters(long pictureProfileId);
  void sendDefaultPictureParameters(in android.hardware.tv.mediaquality.PictureParameters pictureParameters);
  android.hardware.tv.mediaquality.ISoundProfileChangedListener getSoundProfileListener();
  void setSoundProfileAdjustmentListener(android.hardware.tv.mediaquality.ISoundProfileAdjustmentListener listener);
  android.hardware.tv.mediaquality.SoundParameters getSoundParameters(long soundProfileId);
  void sendDefaultSoundParameters(in android.hardware.tv.mediaquality.SoundParameters soundParameters);
  void getParamCaps(in android.hardware.tv.mediaquality.ParameterName[] paramNames, out android.hardware.tv.mediaquality.ParamCapability[] caps);
  void getVendorParamCaps(in android.hardware.tv.mediaquality.VendorParameterIdentifier[] names, out android.hardware.tv.mediaquality.VendorParamCapability[] caps);
}
+17 −0
Original line number Diff line number Diff line
@@ -161,6 +161,15 @@ interface IMediaQuality {
     */
    PictureParameters getPictureParameters(long pictureProfileId);

    /**
     * Send the default picture parameters to the vendor code or HAL to apply the picture
     * parameters.
     *
     * @param pictureParameters PictureParameters with pre-defined parameters and vendor defined
     * parameters.
     */
    void sendDefaultPictureParameters(in PictureParameters pictureParameters);

    /**
     * Get sound profile changed listener.
     *
@@ -183,6 +192,14 @@ interface IMediaQuality {
     */
    SoundParameters getSoundParameters(long soundProfileId);

    /**
     * Send the default sound parameters to the vendor code or HAL to apply the sound parameters.
     *
     * @param soundParameters SoundParameters with pre-defined parameters and vendor defined
     * parameters.
     */
    void sendDefaultSoundParameters(in SoundParameters soundParameters);

    /**
     * Gets capability information of the given parameters.
     */
+10 −0
Original line number Diff line number Diff line
@@ -243,6 +243,11 @@ impl IMediaQuality for MediaQualityService {
        Ok(picture_params)
    }

    fn sendDefaultPictureParameters(&self, _picture_parameters: &PictureParameters) -> binder::Result<()>{
        println!("Received picture parameters");
        Ok(())
    }

    fn getSoundProfileListener(&self) -> binder::Result<binder::Strong<dyn ISoundProfileChangedListener>> {
        println!("getSoundProfileListener");
        let listener = self.sound_profile_changed_listener.lock().unwrap();
@@ -278,6 +283,11 @@ impl IMediaQuality for MediaQualityService {
        Ok(sound_params)
    }

    fn sendDefaultSoundParameters(&self, _sound_parameters: &SoundParameters) -> binder::Result<()>{
        println!("Received sound parameters");
        Ok(())
    }

    fn getParamCaps(
            &self,
            param_names: &[ParameterName],
+14 −0
Original line number Diff line number Diff line
@@ -169,6 +169,13 @@ TEST_P(MediaQualityAidl, TestGetPictureParameters) {
    ASSERT_EQ(pictureParams.pictureParameters.size(), 2);
}

TEST_P(MediaQualityAidl, TestSendDefaultPictureParameters) {
    PictureParameters pictureParams;
    auto result = mediaquality->getPictureParameters(1, &pictureParams);
    ASSERT_TRUE(result.isOk());
    ASSERT_OK(mediaquality->sendDefaultPictureParameters(pictureParams));
}

TEST_P(MediaQualityAidl, TestSetSoundProfileAdjustmentListener) {
    std::shared_ptr<SoundProfileAdjustmentListener> listener =
            ndk::SharedRefBase::make<SoundProfileAdjustmentListener>(
@@ -183,6 +190,13 @@ TEST_P(MediaQualityAidl, TestGetSoundParameters) {
    ASSERT_EQ(soundParams.soundParameters.size(), 2);
}

TEST_P(MediaQualityAidl, TestSendDefaultSoundParameters) {
    SoundParameters soundParams;
    auto result = mediaquality->getSoundParameters(1, &soundParams);
    ASSERT_TRUE(result.isOk());
    ASSERT_OK(mediaquality->sendDefaultSoundParameters(soundParams));
}

TEST_P(MediaQualityAidl, TestSetAmbientBacklightDetector) {
    AmbientBacklightSettings in_settings = {
            .packageName = "com.android.mediaquality",