using System.Collections.Generic; using SlimDX.DXGI; using System.Drawing; namespace Aiwaz.Contracts { public interface IDeviceEnumerator { bool HasEnumerated { get; } List DeviceAdapters { get; } bool TryEnumerate(uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); IDisplayAdapter FindBestAdapter(bool argAllowToEnumerate, uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); IOutputDevice FindBestOutput(bool argAllowToEnumerate, uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); IDisplayMode FindBestDisplayMode(bool argAllowToEnumerate, uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); void Verbose(); }; public interface IDisplayAdapter { long DedicatedSystemMemory { get; } long DedicatedVideoMemory { get; } long SharedSystemMemory { get; } List DeviceOutputs { get; } bool HasEnumerated { get; } Adapter Adapter { get; } string Name { get; } bool TryEnumerate(uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); IOutputDevice FindBestOutput(bool argAllowToEnumerate, uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); IDisplayMode FindBestDisplayMode(bool argAllowToEnumerate, uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); }; public interface IOutputDevice { bool IsAttachedToDesktop { get; } object MonitorHandle { get; } Rectangle DesktopCoordinates { get; } List DisplayModes { get; } bool HasEnumerated { get; } string Name { get; } bool TryEnumerate(uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); IDisplayMode FindBestDisplayMode(bool argAllowToEnumerate, uint? argDesiredWidth, uint? argDesiredHeight, uint? argDesiredRefreshRate, DataFormat? argDesiredFormat); }; public interface IDisplayMode { uint Width { get; } uint Height { get; } uint RefreshRate { get; } DataFormat Format { get; } }; }