namespace TIASshot {
    /// <summary>
    /// ゲイン更新比率の計算ロジック（ピュアロジック層）．
    /// ハードウェアに依存しない純粋な計算のみを担う．
    /// </summary>
    internal static class GainCalc {
        /// <summary>
        /// ゲイン値の更新比率を計算する．
        /// value が 255.0f のときは updateRate によらず係数を 1.0 として比率を求める．
        /// </summary>
        /// <param name="value">現在の計測値</param>
        /// <param name="target">目標値</param>
        /// <param name="updateRate">更新レート（0 より大きい値を想定）</param>
        /// <returns>更新比率</returns>
        internal static float CalcRatio(float value, float target, float updateRate) {
            float ratio = target / value;
            ratio = (ratio - 1.0f) * (value == 255.0f ? 1.0f : updateRate) + 1.0f;
            return ratio;
        }
    }
}
