2021-02-21 14:04:24 +01:00
|
|
|
|
using System;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
|
|
|
|
namespace MassiveKnob.Plugin
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Base interface for actions assigned to a knob or button. Implement one of the descendant
|
|
|
|
|
/// interfaces to provide input or output.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface IMassiveKnobActionInstance : IDisposable
|
|
|
|
|
{
|
2021-02-24 09:05:11 +01:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Called right after this instance is created.
|
|
|
|
|
/// </summary>
|
2021-02-28 14:40:51 +01:00
|
|
|
|
/// <remarks>
|
|
|
|
|
/// 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!
|
|
|
|
|
/// </remarks>
|
2021-02-24 09:05:11 +01:00
|
|
|
|
/// <param name="context">Provides an interface to the Massive Knob settings and device. Can be stored until the action instance is disposed.</param>
|
|
|
|
|
void Initialize(IMassiveKnobActionContext context);
|
|
|
|
|
|
2021-02-21 14:04:24 +01:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 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.
|
|
|
|
|
/// </summary>
|
|
|
|
|
UserControl CreateSettingsControl();
|
|
|
|
|
}
|
|
|
|
|
}
|