Table of Contents

Namespace Artemis.Core

Namespaces

Artemis.Core.ColorScience
Artemis.Core.DeviceProviders
Artemis.Core.DryIoc
Artemis.Core.Events
Artemis.Core.LayerBrushes
Artemis.Core.LayerEffects
Artemis.Core.Modules
Artemis.Core.Nodes
Artemis.Core.Providers
Artemis.Core.ScriptingProviders
Artemis.Core.Services
Artemis.Core.SkiaSharp

Classes

AlwaysOnCondition

Represents a condition that is always true.

ArtemisCoreException

Represents errors that occur within the Artemis Core

ArtemisDevice

Represents an RGB device usable by Artemis, provided by a DeviceProvider

ArtemisDeviceInputIdentifier

Represents a device input identifier used by a specific InputProvider to identify the device

ArtemisGraphicsContextException

Represents SkiaSharp graphics-context related errors

ArtemisLayout

Represents a device layout decorated with extra Artemis-specific data

ArtemisLed

Represents an RGB LED contained in an ArtemisDevice

ArtemisLedLayout

Represents a LED layout decorated with extra Artemis-specific data

ArtemisPluginException

An exception thrown when a plugin-related error occurs

ArtemisPluginFeatureException

An exception thrown when a plugin feature-related error occurs

ArtemisPluginLockException

An exception thrown when a plugin lock file error occurs

ArtemisPluginPrerequisiteException

An exception thrown when a plugin prerequisite-related error occurs

BoolLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

BreakableModel

Provides a default implementation for models that can have a broken state

CategoryAdaptionHint

Represents a hint that adapts layers to a certain category of devices

ColorGradient

A gradient containing a list of ColorGradientStops

ColorGradientLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

ColorGradientStop

A color with a position, usually contained in a ColorGradient

Constants

A few useful constant values

CopyFolderAction

Represents a plugin prerequisite action that copies a folder

CoreJson

A static helper class that serializes and deserializes JSON with the Artemis Core JSON settings

DataBindingEventArgs

Provides data for data binding events.

DataBindingPropertyUpdatedEvent<T>

Provides data for the DataBindingPropertyUpdatedEvent event.

DataBindingProperty<TProperty>

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

DataBinding<TLayerProperty>

Supports all classes in the .NET class hierarchy and provides low-level services to derived classes. This is the ultimate base class of all .NET classes; it is the root of the type hierarchy.

DataModelEvent

Represents a data model event without event arguments

DataModelEventArgs

Represents the base class for data model events that contain event data

DataModelEvent<T>

Represents a data model event with event arguments of type T

DataModelPath

Represents a path that points to a property in data model

DataModelPathEventArgs

Provides data about data model path related events

DataModelPathSegment

Represents a segment of a data model path

DataModelRegistration

Represents a data model registration

DefaultNode

Represents a kind of node that cannot be deleted inside a NodeScript.

DeleteFileAction

Represents a plugin prerequisite action that deletes a file

DeleteFolderAction

Represents a plugin prerequisite action that recursively deletes a folder

DeviceAdaptionHint

Represents a hint that adapts layers to a certain type of devices

DeviceEventArgs

Provides data about device related events

DeviceProviderEventArgs

Provides data about device provider related events

DoubleExtensions

A static class providing double extensions

DownloadFileAction

Represents a plugin prerequisite action that downloads a file

DynamicDataModelChildEventArgs

Provides data about dynamic data model child related events

Easings
EllipseShape

Represents an ellipse layer shape

EnumLayerProperty<T>

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

EnumUtilities

Provides utilities for display enums in a human readable form

EventCondition

Represents a condition that is based on a DataModelEvent

ExecuteFileAction

Represents a plugin prerequisite action that executes a file

ExtractArchiveAction

Represents a plugin prerequisite action that extracts a ZIP file

FloatExtensions

A static class providing float extensions

FloatLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

FloatRangeLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

Folder

Represents a folder in a Profile

FrameRenderedEventArgs

Provides data about frame rendering related events

FrameRenderingEventArgs

Provides data about frame rendered related events

Hotkey

Represents a key or combination of keys that changes the suspension status of a ProfileConfiguration

IEnumerableExtensions

A static class providing IEnumerable<T> extensions

InputPin

Represents an input pin on a INode

InputPinCollection

Represents a collection of input pins

InputPinCollection<T>

Represents a collection of input pins containing values of type T

InputPin<T>

Represents an input pin containing a value of type T on a INode

IntLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

IntRangeLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

KeyboardSectionAdaptionHint

Represents a hint that adapts layers to a certain region of keyboards

Layer

Represents a layer in a Profile

LayerAdapter

Represents an adapter that adapts a layer to a certain set of devices using IAdaptionHints

LayerAdapterHintEventArgs

Provides data for layer adapter hint events.

LayerBrushReference

A reference to a LayerBrushDescriptor

LayerBrushReferenceLayerProperty

A special layer property used to configure the selected layer brush

LayerBrushRegistration

Represents a layer brush registration returned by calling RegisterLayerBrush(LayerBrushDescriptor)

LayerEffectPropertyGroup

Represents a property group on a layer

Note: You cannot initialize property groups yourself. If properly placed and annotated, the Artemis core will initialize these for you.

LayerEffectRegistration

Represents a layer effect registration

LayerGeneralProperties

Represents the general properties of a layer

LayerPropertyEventArgs

Provides data for layer property events.

LayerPropertyGroup

Represents a property group on a layer

Note: You cannot initialize property groups yourself. If properly placed and annotated, the Artemis core will initialize these for you.

LayerPropertyIgnoreAttribute

Represents an attribute that marks a layer property to be ignored

LayerPropertyKeyframeEventArgs

Provides data for layer property events.

LayerPropertyKeyframe<T>

Represents a keyframe on a LayerProperty<T> containing a value and a timestamp

LayerPropertyPreview<T>

Represents a container for a preview value of a LayerProperty<T> that can be used to update and discard a temporary value.

LayerProperty<T>

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

LayerShape

Represents the shape of a layer

LayerTransformProperties

Represents the transform properties of a layer

LayoutCustomDeviceData

Represents extra Artemis-specific information stored in RGB.NET layouts

LayoutCustomLedData

Represents extra Artemis-specific information stored in RGB.NET layouts

LayoutCustomLedDataLogicalLayout

Represents extra Artemis-specific information stored in RGB.NET layouts

LayoutSelection

Represents a reference to a layout for a device.

LogEventEventArgs

Contains log event related data

LogStore

A static store containing the last 500 logging events

ModuleEventArgs

Provides data about module events

Node

Represents a kind of node inside a NodeScript

NodeAttribute

Represents an attribute that can be used to provide metadata on a node

NodeData

Represents node data describing a certain INode

NodeExtension

Provides extension methods for nodes.

NodeScript

Represents a node script

NodeScriptExtension

Provides extension methods for node scripts.

NodeScript<T>

Represents a node script with a result value of type T

NodeTypeRegistration

Represents a registration for a type of INode

NumericExtensions

Provides Numeric alternatives for common number-type extensions

ObjectOutputPins

Represents a collection of output pins for a node capable of outputting the properties of an object or value type.

OutputPin

Represents an output pin on a INode

OutputPinCollection<T>

Represents a collection of output pins containing values of type T

OutputPin<T>

Represents an output pin containing a value of type T on a INode

Pin

Represents a pin containing a value on a INode

PinCollection

Represents a collection of IPins on a INode

PlayOnceCondition

Represents a condition that plays once when its script evaluates to true.

Plugin

Represents a plugin

PluginBootstrapper

An optional entry point for your plugin

PluginEventArgs

Provides data about plugin related events

PluginFeature

Represents an feature of a certain type provided by a plugin

PluginFeatureAttribute

Represents an attribute that describes a plugin feature

PluginFeatureEventArgs

Provides data about plugin feature related events

PluginFeatureInfo

Represents basic info about a plugin feature and contains a reference to the instance of said feature

PluginFeatureInfoEventArgs

Provides data about plugin feature info related events

PluginInfo

Represents basic info about a plugin and contains a reference to the instance of said plugin

PluginPrerequisite

Represents a prerequisite for a Plugin or PluginFeature

PluginPrerequisiteAction

Represents an action that must be taken to install or uninstall a plugin prerequisite

PluginSetting<T>

Represents a setting tied to a plugin of type T

PluginSettings

This contains all the settings for your plugin. To access a setting use GetSetting<T>(string, T?).

To use this class, inject it into the constructor of your plugin.

PrerequisiteActionProgress

Represents progress on a plugin prerequisite action

ProcessExtensions

A static class providing Process extensions

Profile

Represents a profile containing folders and layers

ProfileCategory

Represents a category containing ProfileConfigurations

ProfileCategoryEventArgs

Provides data for profile configuration events.

ProfileConfiguration

Represents the configuration of a profile, contained in a ProfileCategory

ProfileConfigurationEventArgs

Provides data for profile configuration events.

ProfileConfigurationIcon

Represents the icon of a ProfileConfiguration

ProfileElement

Represents an element of a Profile

ProfileElementEventArgs

Provides data for profile element events.

Profiler

Represents a profiler that can measure time between calls distinguished by identifiers

ProfilingMeasurement

Represents a set of profiling measurements

PropertyDescriptionAttribute

Represents a description attribute used to decorate layer properties

PropertyGroupDescriptionAttribute

Represents a description attribute used to decorate layer property groups

RectangleShape

Represents a rectangular layer shape

RenderProfileElement

Represents an element of a Profile that has advanced rendering capabilities

RestartEventArgs

Provides data about application restart events

RunInlinePowerShellAction

Represents a plugin prerequisite action runs inline powershell

RunPowerShellAction

Represents a plugin prerequisite action that runs a PowerShell script

Note: To run an inline script instead, use RunInlinePowerShellAction

SKColorExtensions

A static class providing SKColor extensions

SKColorLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

SKPaintExtensions

A static class providing SKPaint extensions

SKPointLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

SKSizeLayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

SKTexture

Represents a SkiaSharp-based RGB.NET PixelTexture

SingleLedAdaptionHint

Represents a hint that adapts layers to a single LED of one or more devices

StaticCondition

Represents a condition that is based on a data model value

StringUtilities

Provides some random string utilities.

SurfaceConfigurationEventArgs

Provides data about device configuration related events

TimedUpdateRegistration

Represents a registration for a timed plugin update

Timeline

Represents a timeline used by profile elements

TypeColorRegistration

Represents a registration for a SKColor to associate with a certain Type

UpdateEventArgs

Provides data about application update events

Utilities

Provides a few general utilities for ease of use

WriteBytesToFileAction

Represents a plugin prerequisite action that copies a folder

WriteStringToFileAction

Represents a plugin prerequisite action that copies a folder

Structs

FloatRange

Represents a range between two single-precision floating point numbers

IntRange

Represents a range between two signed integers

Numeric

Represents a number, either decimal or not, with arbitrary precision.

Note: This struct is intended to be used by the node system when implementing your own Node. Usage outside that context is not recommended due to conversion overhead.

Interfaces

IAdaptionHint

Represents an adaption hint that's used to adapt a layer to a set of devices

IBreakableModel

Represents a model that can have a broken state

ICondition

Represents a condition applied to a ProfileElement

ICustomNodeViewModel

Represents a custom view model for a INode

ICustomViewModelNode

Represents a node that has a custom view model.

IDataBinding

Represents a data binding that binds a certain LayerProperty<T> to a value inside a DataModel

IDataBindingProperty

Represents a data binding registration

IDataModelEvent

Represents an event that is part of a data model

ILayerProperty

Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.

Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will initialize these for you.

ILayerPropertyKeyframe

Represents a keyframe on a ILayerProperty containing a value and a timestamp

INode

Represents a kind of node inside a INodeScript

INodeScript

Represents a node script

INodeScriptCondition

Represents a condition applied to a ProfileElement using a INodeScript

INodeScript<T>

Represents a node script with a result value of type T

IPin

Represents a pin containing a value on a INode

IPinCollection

Represents a collection of IPins on a INode

IPluginConfigurationDialog

Represents a configuration dialog for a Plugin

IPluginConfigurationViewModel

Represents a view model for a plugin configuration window

IPluginFeatureDependent

Represents a class that depends on plugin features

IPluginSetting

Represents a setting tied to a plugin

IPrerequisitesSubject

Represents a type that has prerequisites

IStorageModel

Represents a model that can be loaded and saved to persistent storage

IUpdateModel

Represents a model that updates using a delta time

Enums

ActivationBehaviour

Represents a type of behaviour when this profile is activated

CustomNodeViewModelPosition

Represents the position of a node's custom view model.

DataModelPathSegmentType

Represents a type of data model path

DefaultCategoryName

Represents a name of one of the default categories

DeviceCategory

Represents a device category

Easings.Functions

Easing Functions enumeration

EventOverlapMode

Represents a mode for render elements to configure the behaviour of events that overlap i.e. trigger again before the timeline finishes.

EventToggleOffMode

Represents a mode for render elements when toggling off the event when using Toggle .

EventTriggerMode

Represents a mode for render elements to start their timeline when display conditions events are fired.

KeyboardLayoutType

Represents a physical layout type for a keyboard

KeyboardSection

Represents a section of LEDs on a keyboard

LayerShapeType

Represents a type of layer shape

LayerTransformMode

Represents a layer transform mode

PinDirection

Represents a direction in which pin data flows

PluginPlatform

Specifies OS platforms a plugin may support.

PluginServiceScope

Represents a scope in which a plugin service is injected by the IOC container.

ProfileConfigurationHotkeyMode

Represents a hotkey mode for a profile configuration

ProfileConfigurationIconType

Represents a type of profile icon

ProfileRightSideType

An enum defining the right side type of a profile entity

StaticPlayMode

Represents a mode for render elements to start their timeline when display conditions are met

StaticStopMode

Represents a mode for render elements to stop their timeline when display conditions are no longer met