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; }
TimerUpdateTrigger UpdateTrigger { get; }
bool IsRenderPaused { get; set; }
///
/// Adds the given device provider to the
///
///
void AddDeviceProvider(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();
}
}