1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * OSS compatible sequencer driver
5 * seq_oss_event.h - OSS event queue record
10 #ifndef __SEQ_OSS_EVENT_H
11 #define __SEQ_OSS_EVENT_H
13 #include "seq_oss_device.h"
15 #define SHORT_EVENT_SIZE 4
16 #define LONG_EVENT_SIZE 8
18 /* short event (4bytes) */
26 /* short note events (4bytes) */
34 /* long timer events (8bytes) */
38 unsigned char dummy1, dummy2;
42 /* long extended events (8bytes) */
43 struct evrec_extended {
48 unsigned char p1, p2, p3, p4;
51 /* long channel events (8bytes) */
61 /* channel voice events (8bytes) */
67 unsigned char note, parm;
71 /* sysex events (8bytes) */
85 struct evrec_extended e;
88 unsigned char c[LONG_EVENT_SIZE];
91 #define ev_is_long(ev) ((ev)->s.code >= 128)
92 #define ev_length(ev) ((ev)->s.code >= 128 ? LONG_EVENT_SIZE : SHORT_EVENT_SIZE)
94 int snd_seq_oss_process_event(struct seq_oss_devinfo *dp, union evrec *q, struct snd_seq_event *ev);
95 int snd_seq_oss_process_timer_event(struct seq_oss_timer *rec, union evrec *q);
96 int snd_seq_oss_event_input(struct snd_seq_event *ev, int direct, void *private_data, int atomic, int hop);
99 #endif /* __SEQ_OSS_EVENT_H */