#region Copyright (c) 2011-2023 Technosoftware GmbH. All rights reserved //----------------------------------------------------------------------------- // Copyright (c) 2011-2023 Technosoftware GmbH. All rights reserved // Web: https://www.technosoftware.com // // The source code in this file is covered under a dual-license scenario: // - Owner of a purchased license: SCLA 1.0 // - GPL V3: everybody else // // SCLA license terms accompanied with this source code. // See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf // // GNU General Public License as published by the Free Software Foundation; // version 3 of the License are accompanied with this source code. // See https://technosoftware.com/license/GPLv3License.txt // // This source code is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. //----------------------------------------------------------------------------- #endregion Copyright (c) 2011-2023 Technosoftware GmbH. All rights reserved #region Using Directives using System; #endregion namespace Technosoftware.DaAeHdaClient.Hda { /// /// An offset component of a relative time. /// [Serializable] public struct TsCHdaTimeOffset { #region Properties /// /// A signed value indicated the magnitude of the time offset. /// public int Value { get; set; } /// /// The time interval to use when applying the offset. /// public TsCHdaRelativeTime Type { get; set; } #endregion #region Internal Methods /// /// Converts a offset type to a string token. /// /// The offset type value to convert. /// The string token representing the offset type. internal static string OffsetTypeToString(TsCHdaRelativeTime offsetType) { switch (offsetType) { case TsCHdaRelativeTime.Second: { return "S"; } case TsCHdaRelativeTime.Minute: { return "M"; } case TsCHdaRelativeTime.Hour: { return "H"; } case TsCHdaRelativeTime.Day: { return "D"; } case TsCHdaRelativeTime.Week: { return "W"; } case TsCHdaRelativeTime.Month: { return "MO"; } case TsCHdaRelativeTime.Year: { return "Y"; } } throw new ArgumentOutOfRangeException(nameof(offsetType), offsetType.ToString(), @"Invalid value for relative time offset type."); } #endregion } }