ALSA project - the C library reference
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
seq_event.h
Go to the documentation of this file.
1 
11 /*
12  * This library is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU Lesser General Public License as
14  * published by the Free Software Foundation; either version 2.1 of
15  * the License, or (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public
23  * License along with this library; if not, write to the Free Software
24  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25  *
26  */
27 
28 #ifndef __ALSA_SEQ_EVENT_H
29 #define __ALSA_SEQ_EVENT_H
30 
41 typedef unsigned char snd_seq_event_type_t;
42 
49 
58 
73 
84 
105 
112 
117 
130 
135 
156 
171 
174 };
175 
176 
178 typedef struct snd_seq_addr {
179  unsigned char client;
180  unsigned char port;
182 
184 typedef struct snd_seq_connect {
188 
189 
191 typedef struct snd_seq_real_time {
192  unsigned int tv_sec;
193  unsigned int tv_nsec;
195 
197 typedef unsigned int snd_seq_tick_time_t;
198 
200 typedef union snd_seq_timestamp {
202  struct snd_seq_real_time time;
204 
205 
211 #define SND_SEQ_TIME_STAMP_TICK (0<<0)
212 #define SND_SEQ_TIME_STAMP_REAL (1<<0)
213 #define SND_SEQ_TIME_STAMP_MASK (1<<0)
215 #define SND_SEQ_TIME_MODE_ABS (0<<1)
216 #define SND_SEQ_TIME_MODE_REL (1<<1)
217 #define SND_SEQ_TIME_MODE_MASK (1<<1)
219 #define SND_SEQ_EVENT_LENGTH_FIXED (0<<2)
220 #define SND_SEQ_EVENT_LENGTH_VARIABLE (1<<2)
221 #define SND_SEQ_EVENT_LENGTH_VARUSR (2<<2)
222 #define SND_SEQ_EVENT_LENGTH_MASK (3<<2)
224 #define SND_SEQ_PRIORITY_NORMAL (0<<4)
225 #define SND_SEQ_PRIORITY_HIGH (1<<4)
226 #define SND_SEQ_PRIORITY_MASK (1<<4)
230 typedef struct snd_seq_ev_note {
231  unsigned char channel;
232  unsigned char note;
233  unsigned char velocity;
234  unsigned char off_velocity;
235  unsigned int duration;
237 
239 typedef struct snd_seq_ev_ctrl {
240  unsigned char channel;
241  unsigned char unused[3];
242  unsigned int param;
243  signed int value;
245 
247 typedef struct snd_seq_ev_raw8 {
248  unsigned char d[12];
250 
252 typedef struct snd_seq_ev_raw32 {
253  unsigned int d[3];
255 
258  unsigned int len;
259  void *ptr;
260 } __attribute__((packed));
263 #ifdef DOC_HIDDEN
264 /* redefine typedef for stupid doxygen */
266 #endif
267 
269 typedef struct snd_seq_result {
270  int event;
271  int result;
273 
275 typedef struct snd_seq_queue_skew {
276  unsigned int value;
277  unsigned int base;
279 
281 typedef struct snd_seq_ev_queue_control {
282  unsigned char queue;
283  unsigned char unused[3];
284  union {
285  signed int value;
287  unsigned int position;
289  unsigned int d32[2];
290  unsigned char d8[8];
291  } param;
293 
294 
296 typedef struct snd_seq_event {
298  unsigned char flags;
299  unsigned char tag;
301  unsigned char queue;
307  union {
312  snd_seq_ev_ext_t ext;
314  snd_seq_timestamp_t time;
318  } data;
320 
321 
324 #endif /* __ALSA_SEQ_EVENT_H */
325