using UnityEngine;
using UnityEngine.UI;
using FreakoutSDK.Video;

public class VideoShaderController : MonoBehaviour
{
    [Header("Material using the VideoShaderCB")]
    public SdkVideoSource sdkVideoSource;

    [Header("UI Sliders")]
    public Slider gammaSlider;
    public Slider brightnessSlider;
    public Slider contrastSlider;

    private void Start()
    {
        gammaSlider.onValueChanged.AddListener(OnGammaChanged);
        brightnessSlider.onValueChanged.AddListener(OnBrightnessChanged);
        contrastSlider.onValueChanged.AddListener(OnContrastChanged);
    }
    
     private void OnEnable()
    {
        if (sdkVideoSource != null)
        {
            sdkVideoSource.OnMaterialAssigned += HandleMaterialAssigned;

            // Fallback if material was assigned before we subscribed
            if (sdkVideoSource.material != null)
            {
                Debug.Log("Manually assigning already-set material.");
                HandleMaterialAssigned(sdkVideoSource.material);
            }
        }
    }
     private void OnDisable()
    {
        if (sdkVideoSource != null)
        {
            sdkVideoSource.OnMaterialAssigned -= HandleMaterialAssigned;
        }
    }

    private void HandleMaterialAssigned(Material mat)
    {
        Debug.Log("Material received by VideoShaderController.");
        ApplyAll(); // Apply current slider values to the material
    }

    public void OnGammaChanged(float value)
    {
        if (sdkVideoSource.material != null)
            sdkVideoSource.SetGamma(value);
    }

    public void OnBrightnessChanged(float value)
    {
        if (sdkVideoSource.material != null)
        sdkVideoSource.SetBrightness(value); 
    }

    public void OnContrastChanged(float value)
    {
        if (sdkVideoSource.material != null)
         sdkVideoSource.SetContrast(value);
    }

    private void ApplyAll()
    {
        OnGammaChanged(gammaSlider.value);
        OnBrightnessChanged(brightnessSlider.value);
        OnContrastChanged(contrastSlider.value);
    }


}