using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QuikDawEditor.EditingClasses;

public class PanStrategies
{

    //private StereoSamplePair multipliers;
    //internal float leftMultiplier, rightMultiplier, m_pan;
    //internal IPanStrategy m_panStrategy;

    //public IPanStrategy PanStrategy
    //{
    //    get { return m_panStrategy; }
    //    set
    //    {
    //        m_panStrategy = value;
    //        UpdateMultipliers();
    //    }
    //}

    //private void UpdateMultipliers()
    //{
    //    multipliers = m_panStrategy.GetMultipliers(Pan);
    //    leftMultiplier = multipliers.Left;
    //    rightMultiplier = multipliers.Right;
    //}

    //public struct StereoSamplePair
    //{
    //    public float Left { get { return m_Left; } set { m_Left = value; } }
    //    private float m_Left;
    //    public float Right { get { return m_Right; } set { m_Right = value; } }
    //    private float m_Right;
    //}

    //public interface IPanStrategy
    //{
    //    StereoSamplePair GetMultipliers(float pan);
    //}

    //public class SinPanStrategy : IPanStrategy
    //{
    //    private const float HalfPi = 1.570796F;

    //    public StereoSamplePair GetMultipliers(float pan)
    //    {
    //        // -1..+1  -> 1..0
    //        float normPan = (-pan + 1) / 2;
    //        float leftChannel = Convert.ToSingle(Math.Sin(normPan * HalfPi));
    //        float rightChannel = Convert.ToSingle(Math.Cos(normPan * HalfPi));
    //        return new StereoSamplePair() { Left = leftChannel, Right = rightChannel };
    //    }
    //}
}