using System; using System.Runtime.InteropServices; using NvAPIWrapper.Native.Attributes; using NvAPIWrapper.Native.General.Structures; using NvAPIWrapper.Native.Helpers; using NvAPIWrapper.Native.Interfaces; using NvAPIWrapper.Native.Interfaces.DRS; namespace NvAPIWrapper.Native.DRS.Structures { /// [StructLayout(LayoutKind.Sequential, Pack = 8)] [StructureVersion(1)] public struct DRSApplicationV1 : IInitializable, IDRSApplication { internal StructureVersion _Version; internal uint _IsPredefined; internal UnicodeString _ApplicationName; internal UnicodeString _FriendlyName; internal UnicodeString _LauncherName; /// /// Creates a new instance of /// /// The application file name. /// The application friendly name. /// The application launcher name. public DRSApplicationV1( string applicationName, string friendlyName = null, string launcherName = null ) { this = typeof(DRSApplicationV1).Instantiate(); IsPredefined = false; ApplicationName = applicationName; FriendlyName = friendlyName ?? string.Empty; LauncherName = launcherName ?? string.Empty; } /// public bool IsPredefined { get => _IsPredefined > 0; private set => _IsPredefined = value ? 1u : 0u; } /// public string ApplicationName { get => _ApplicationName.Value; private set { if (string.IsNullOrEmpty(value)) { throw new ArgumentException("Name can not be empty or null."); } _ApplicationName = new UnicodeString(value); } } /// public string FriendlyName { get => _FriendlyName.Value; private set => _FriendlyName = new UnicodeString(value); } /// public string LauncherName { get => _LauncherName.Value; private set => _LauncherName = new UnicodeString(value); } } }