using System; using System.Collections.Generic; using Artemis.Core.Events; using Artemis.Core.RGB.NET; using RGB.NET.Core; namespace Artemis.Core.Services.Interfaces { public interface IRgbService : IArtemisService { /// /// Gets or sets the RGB surface rendering is performed on /// RGBSurface Surface { get; set; } /// /// Gets the bitmap brush used to convert the rendered frame to LED-colors /// BitmapBrush BitmapBrush { get; } /// /// Gets the scale the frames are rendered on, a scale of 1.0 means 1 pixel = 1mm /// double RenderScale { get; } /// /// Gets all loaded RGB devices /// IReadOnlyCollection LoadedDevices { get; } /// /// Adds the given device provider to the /// /// void AddDeviceProvider(IRGBDeviceProvider deviceProvider); /// /// Removes the given device provider from the by recreating it without the device provider /// /// void RemoveDeviceProvider(IRGBDeviceProvider deviceProvider); void Dispose(); /// /// Occurs when a single device has loaded /// event EventHandler DeviceLoaded; /// /// Occurs when a single device has reloaded /// event EventHandler DeviceReloaded; void UpdateSurfaceLedGroup(); } }