using System;
using System.Windows.Controls;
namespace MassiveKnob.Plugin
{
///
/// Base interface for actions assigned to a knob or button. Implement one of the descendant
/// interfaces to provide input or output.
///
public interface IMassiveKnobActionInstance : IDisposable
{
///
/// Called right after this instance is created.
///
///
/// Do not perform anything but basic initialization until this method is called, as the action
/// instance will be created temporarily at startup to verify it is correctly implemented!
///
/// Provides an interface to the Massive Knob settings and device. Can be stored until the action instance is disposed.
void Initialize(IMassiveKnobActionContext context);
///
/// Called when an action 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 action.
///
UserControl CreateSettingsControl();
}
}