using System; using System.Windows.Controls; namespace MassiveKnob.Plugin { /// /// Represents a connection to a Massive Knob device. /// public interface IMassiveKnobDeviceInstance : IDisposable { /// /// Called right after this instance is created. /// /// Provides an interface to the Massive Knob settings and device. Can be stored until the device instance is disposed. void Initialize(IMassiveKnobDeviceContext context); /// /// Called when a device should display it's settings. Assume the width is variable, height is /// determined by the UserControl. Return null to indicate there are no settings for this device. /// UserControl CreateSettingsControl(); /// /// Called when the state of an analog output should be changed. /// /// The index of the analog output to set. /// The analog value in the range of 0 to 100. void SetAnalogOutput(int analogOutputIndex, byte value); /// /// Called when the state of a digital output should be changed. /// /// The index of the digital output to set. /// Whether the signal is on or off. void SetDigitalOutput(int digitalOutputIndex, bool on); } }