using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
public static class DisplayFusionFunction
{
    public static void Run(IntPtr windowHandle)
    {
        string[] hdrOnProfiles = { "HDR Gaming", "HDR Movie", "HDR Work" };
        string[] hdrOffProfiles = { "Standard", "Night Mode", "Reading" };
        string hdrCmdPath = @"C:\Path\To\HDRCmd.exe";
        string currentProfile = BFS.DisplayFusion.GetCurrentMonitorProfile();
        if (!File.Exists(hdrCmdPath))
        {
            BFS.Dialog.ShowMessageError("HDRCmd utility not found at: " + hdrCmdPath);
            return;
        }
        bool shouldTurnOnHDR = Array.Exists(hdrOnProfiles, profile => profile.Equals(currentProfile, StringComparison.OrdinalIgnoreCase));
        bool shouldTurnOffHDR = Array.Exists(hdrOffProfiles, profile => profile.Equals(currentProfile, StringComparison.OrdinalIgnoreCase));
        if (shouldTurnOnHDR)
        {
            ExecuteHDRCommand("on");
        }
        else if (shouldTurnOffHDR)
        {
            ExecuteHDRCommand("off");
        }
        else
        {
            BFS.Dialog.ShowMessageInfo("Current profile '" + currentProfile + "' is not configured for HDR changes.");
        }
    }
    private static void ExecuteHDRCommand(string command)
    {
        string hdrCmdPath = @"C:\Path\To\HDRCmd.exe";
        
        try
        {
            Process.Start(hdrCmdPath, command);
        }
        catch (Exception ex)
        {
            BFS.Dialog.ShowMessageError("Error executing HDRCmd: " + ex.Message);
        }
    }
}