|
|
|
@ -10,12 +10,14 @@ namespace Lib.Audio.Controls |
|
|
|
{ |
|
|
|
{ |
|
|
|
public class Fader : IFader |
|
|
|
public class Fader : IFader |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
private const float MIN_POSITION = 0; //TODO: calibrate? get from driver? |
|
|
|
|
|
|
|
private const float MAX_POSITION = 16256; //TODO: calibrate? get from driver? |
|
|
|
|
|
|
|
|
|
|
|
private int _position; |
|
|
|
private int _position; |
|
|
|
|
|
|
|
|
|
|
|
public Fader(XmlFader xmlFader) => NoteNumber = xmlFader.NoteNumber; |
|
|
|
public Fader(XmlFader xmlFader) => NoteNumber = xmlFader.NoteNumber; |
|
|
|
|
|
|
|
|
|
|
|
public int NoteNumber { get; } |
|
|
|
public int NoteNumber { get; } |
|
|
|
|
|
|
|
|
|
|
|
public int Position |
|
|
|
public int Position |
|
|
|
{ |
|
|
|
{ |
|
|
|
get => _position; |
|
|
|
get => _position; |
|
|
|
@ -27,7 +29,8 @@ namespace Lib.Audio.Controls |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public bool IsTouched { get; set; } |
|
|
|
public bool IsTouched { get; set; } |
|
|
|
|
|
|
|
public float RelativePosition => Position / (MAX_POSITION - MIN_POSITION); |
|
|
|
|
|
|
|
|
|
|
|
public event EventHandler<float>? PositionChanged; |
|
|
|
public event EventHandler<int>? PositionChanged; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |