Properties like Beat, Key, KeyCount are used pretty frequently, and they have some validation logic to them. That validation logic is duplicated across several classes. This PR moves those properties and their logic into their own class, and replaces any usage of that property with an instance of the new class.
Each class has a .Value property for getting its corresponding value
Each class automatically converts primitives to object instances (e.g. Beat beat = 5; is valid)
Each class has an *OnChanged event that is fired when its value changes.
Closes #29
Properties like
Beat
,Key
,KeyCount
are used pretty frequently, and they have some validation logic to them. That validation logic is duplicated across several classes. This PR moves those properties and their logic into their own class, and replaces any usage of that property with an instance of the new class..Value
property for getting its corresponding valueBeat beat = 5;
is valid)*OnChanged
event that is fired when its value changes.