ALSA: fireface: update UAPI for data of knob control
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Thu, 12 Jan 2023 12:09:52 +0000 (21:09 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 13 Jan 2023 08:56:37 +0000 (09:56 +0100)
This commit adds a new event of knob control specific to RME Fireface 400.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20230112120954.500692-5-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/uapi/sound/firewire.h

index 3532ac7..5091758 100644 (file)
@@ -14,6 +14,7 @@
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL    0x7473636d
 #define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE  0x4d545244
+#define SNDRV_FIREWIRE_EVENT_FF400_MESSAGE     0x4f6c6761
 
 struct snd_firewire_event_common {
        unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
@@ -72,6 +73,28 @@ struct snd_firewire_event_motu_register_dsp_change {
        __u32 changes[];        /* Encoded event for change of register DSP. */
 };
 
+/**
+ * struct snd_firewire_event_ff400_message - the container for message from Fireface 400 when
+ *                                          operating hardware knob.
+ *
+ * @type: Fixed to SNDRV_FIREWIRE_EVENT_FF400_MESSAGE.
+ * @messages.message: The messages expressing hardware knob operation.
+ * @messages.tstamp: The isochronous cycle at which the request subaction of asynchronous
+ *                  transaction was sent to deliver the message. It has 16 bit unsigned integer
+ *                  value. The higher 3 bits of value expresses the lower three bits of second
+ *                  field in the format of CYCLE_TIME, up to 7. The rest 13 bits expresses cycle
+ *                  field up to 7999.
+ *
+ * The structure expresses message transmitted by Fireface 400 when operating hardware knob.
+ */
+struct snd_firewire_event_ff400_message {
+       unsigned int type;
+       struct {
+               __u32 message;
+               __u32 tstamp;
+       } messages[];
+};
+
 union snd_firewire_event {
        struct snd_firewire_event_common            common;
        struct snd_firewire_event_lock_status       lock_status;
@@ -81,6 +104,7 @@ union snd_firewire_event {
        struct snd_firewire_event_tascam_control    tascam_control;
        struct snd_firewire_event_motu_notification motu_notification;
        struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
+       struct snd_firewire_event_ff400_message     ff400_message;
 };