11# MIT License
22
3- # Copyright (c) 2021 Pablo Peral
3+ # Copyright (c) 2024 Pablo Peral
44
55# Permission is hereby granted, free of charge, to any person obtaining a copy
66# of this software and associated documentation files (the "Software"), to deal
@@ -585,12 +585,17 @@ def OnMidiMsgAdd(self, event):
585585 # Mute button - S-Series
586586 if event .data1 == nihia .buttons .button_list .get ("MUTE" ):
587587 event .handled = True
588- self .mixerMuteSoloHandler ("MUTE" , event .data2 , mixer .trackNumber ())
588+ self .mixerCommandHandler ("MUTE" , event .data2 , mixer .trackNumber ())
589589
590590 # Solo button - S-Series
591591 elif event .data1 == nihia .buttons .button_list .get ("SOLO" ):
592592 event .handled = True
593- self .mixerMuteSoloHandler ("SOLO" , event .data2 , mixer .trackNumber ())
593+ self .mixerCommandHandler ("SOLO" , event .data2 , mixer .trackNumber ())
594+
595+ # Track selection (top white buttons) - S-Series
596+ elif event .data1 == nihia .buttons .button_list .get ("TRACK_SELECT" ):
597+ event .handled = True
598+ self .mixerCommandHandler ("TRACK_SELECTION" , event .data2 , mixer .trackNumber ())
594599
595600 # 4D Encoder up
596601 elif event .data1 == nihia .buttons .button_list .get ("ENCODER_Y_S" ) and event .data2 == nihia .buttons .button_list .get ("UP" ):
@@ -631,11 +636,11 @@ def OnMidiMsgAdd(self, event):
631636 def OnUpdateMeters (self ):
632637 self .mixer .sendPeakInfo ()
633638
634- def mixerMuteSoloHandler (self , action : str , targetTrack : int , selectedTrack : int ):
635- """ Handles the way mixer and solo commands are sent from S-Series keyboards.
639+ def mixerCommandHandler (self , action : str , targetTrack : int , selectedTrack : int ):
640+ """ Handles the way mute, solo and track selection commands are sent from S-Series keyboards.
636641 ### Parameters
637642
638- - action: MUTE or SOLO .
643+ - action: MUTE, SOLO or TRACK_SELECTION .
639644 - targetTrack: From 0 to 7, the track that the user is trying to mute or solo from the ones showing on the device's mixer.
640645 - selectedTrack: The currently selected track that is used to calculate the track group.
641646 """
@@ -651,3 +656,6 @@ def mixerMuteSoloHandler(self, action: str, targetTrack: int, selectedTrack: int
651656
652657 elif action == "SOLO" :
653658 mixer .soloTrack (trackFirst + targetTrack )
659+
660+ elif action == "TRACK_SELECTION" :
661+ mixer .selectTrack (trackFirst + targetTrack )
0 commit comments