Skip to content

Commit

Permalink
Bug fixes, mute button for xtm
Browse files Browse the repository at this point in the history
Also error dialog boxes
  • Loading branch information
ho0ber committed Jan 28, 2019
1 parent 6c6a55d commit 274bbe7
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 20 deletions.
25 changes: 18 additions & 7 deletions NK2Tray/Fader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,16 @@ public class FaderDef
public MidiCommandCode selectCode;
public MidiCommandCode muteCode;
public MidiCommandCode recordCode;
public int faderChannelOverride;
public int selectChannelOverride;
public int muteChannelOverride;
public int recordChannelOverride;

public FaderDef(bool _delta, float _range, int _channel,
bool _selectPresent, bool _mutePresent, bool _recordPresent,
int _faderOffset, int _selectOffset, int _muteOffset, int _recordOffset,
MidiCommandCode _faderCode, MidiCommandCode _selectCode, MidiCommandCode _muteCode, MidiCommandCode _recordCode)
MidiCommandCode _faderCode, MidiCommandCode _selectCode, MidiCommandCode _muteCode, MidiCommandCode _recordCode,
int _faderChannelOverride = -1, int _selectChannelOverride = -1, int _muteChannelOverride = -1, int _recordChannelOverride = -1)
{
delta = _delta;
range = _range;
Expand All @@ -39,6 +44,10 @@ public FaderDef(bool _delta, float _range, int _channel,
selectCode = _selectCode;
muteCode = _muteCode;
recordCode = _recordCode;
faderChannelOverride = _faderChannelOverride;
selectChannelOverride = _selectChannelOverride;
muteChannelOverride = _muteChannelOverride;
recordChannelOverride = _recordChannelOverride;
}
}

Expand Down Expand Up @@ -125,9 +134,11 @@ public void SetRecordLight( bool state)
parent.SetLight(recordController, state);
}

public bool Match(int faderNumber, MidiEvent midiEvent, MidiCommandCode code, int offset)
public bool Match(int faderNumber, MidiEvent midiEvent, MidiCommandCode code, int offset, int channel=-1)
{
if (midiEvent.Channel != faderDef.channel)
if (channel < 0)
channel = faderDef.channel;
if (midiEvent.Channel != channel)
return false;
if (midiEvent.CommandCode != code)
return false;
Expand Down Expand Up @@ -175,7 +186,7 @@ public int GetValue(MidiEvent midiEvent)
public bool HandleEvent(MidiInMessageEventArgs e)
{
// Fader match
if (assigned && Match(faderNumber, e.MidiEvent, faderDef.faderCode, faderDef.faderOffset))
if (assigned && Match(faderNumber, e.MidiEvent, faderDef.faderCode, faderDef.faderOffset, faderDef.faderChannelOverride))
{
if (faderDef.delta)
{
Expand All @@ -199,7 +210,7 @@ public bool HandleEvent(MidiInMessageEventArgs e)
}

// Select match
if (Match(faderNumber, e.MidiEvent, faderDef.selectCode, faderDef.selectOffset))
if (Match(faderNumber, e.MidiEvent, faderDef.selectCode, faderDef.selectOffset, faderDef.selectChannelOverride))
{
if (GetValue(e.MidiEvent) != 127) // Only on button-down
return true;
Expand All @@ -226,7 +237,7 @@ public bool HandleEvent(MidiInMessageEventArgs e)
}

// Mute match
if (assigned && Match(faderNumber, e.MidiEvent, faderDef.muteCode, faderDef.muteOffset))
if (assigned && Match(faderNumber, e.MidiEvent, faderDef.muteCode, faderDef.muteOffset, faderDef.muteChannelOverride))
{
if (GetValue(e.MidiEvent) != 127) // Only on button-down
return true;
Expand All @@ -238,7 +249,7 @@ public bool HandleEvent(MidiInMessageEventArgs e)
}

// Record match
if (assigned && Match(faderNumber, e.MidiEvent, faderDef.recordCode, faderDef.recordOffset))
if (assigned && Match(faderNumber, e.MidiEvent, faderDef.recordCode, faderDef.recordOffset, faderDef.recordChannelOverride))
{
SetRecordLight(assignment.IsDead());
return true;
Expand Down
21 changes: 16 additions & 5 deletions NK2Tray/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public class SysTrayApp : Form

public SysTrayApp()
{
System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
Console.WriteLine($@"NK2 Tray {DateTime.Now}");
trayIcon = new NotifyIcon
{
Expand All @@ -35,16 +36,26 @@ public SysTrayApp()
midiDevice = new XtouchMini(audioDevice);

audioDevice.midiDevice = midiDevice;

System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
}

private void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e)
{
Console.WriteLine(e.ExceptionObject.ToString());
midiDevice.ResetAllLights();
midiDevice.faders.Last().SetRecordLight(true);
Environment.Exit(1);
MessageBox.Show(e.ExceptionObject.ToString(), "NK2 Tray Error", MessageBoxButtons.OK);

if (midiDevice != null)
{
try
{
midiDevice.ResetAllLights();
midiDevice.faders.Last().SetRecordLight(true);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Application.Exit();
}

private void OnPopup(object sender, EventArgs e)
Expand Down
4 changes: 2 additions & 2 deletions NK2Tray/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.12.0")]
[assembly: AssemblyFileVersion("0.0.12.0")]
[assembly: AssemblyVersion("0.0.13.0")]
[assembly: AssemblyFileVersion("0.0.13.0")]
13 changes: 7 additions & 6 deletions NK2Tray/XtouchMini.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,19 @@ public class XtouchMini : MidiDevice
public FaderDef MasterFaderDef => new FaderDef(
false, // delta
16383f, // range
9, // channel
false, // selectPresent
false, // mutePresent
1, // channel
true, // selectPresent
true, // mutePresent
false, // recordPresent
0, // faderOffset
0, // selectOffset
0, // muteOffset
76, // selectOffset
77, // muteOffset
0, // recordOffset
MidiCommandCode.PitchWheelChange, // faderCode
MidiCommandCode.NoteOn, // selectCode
MidiCommandCode.NoteOn, // muteCode
MidiCommandCode.ControlChange // recordCode
MidiCommandCode.ControlChange, // recordCode
9 // faderChannelOverride
);

public XtouchMini(AudioDevice audioDev)
Expand Down

0 comments on commit 274bbe7

Please sign in to comment.