linux/include/sound/seq_midi_event.h
<<
>>
Prefs
   1#ifndef __SOUND_SEQ_MIDI_EVENT_H
   2#define __SOUND_SEQ_MIDI_EVENT_H
   3
   4/*
   5 *  MIDI byte <-> sequencer event coder
   6 *
   7 *  Copyright (C) 1998,99 Takashi Iwai <tiwai@suse.de>,
   8 *                        Jaroslav Kysela <perex@perex.cz>
   9 *
  10 *   This program is free software; you can redistribute it and/or modify
  11 *   it under the terms of the GNU General Public License as published by
  12 *   the Free Software Foundation; either version 2 of the License, or
  13 *   (at your option) any later version.
  14 *
  15 *   This program is distributed in the hope that it will be useful,
  16 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18 *   GNU General Public License for more details.
  19 *
  20 *   You should have received a copy of the GNU General Public License
  21 *   along with this program; if not, write to the Free Software
  22 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  23 */
  24
  25#include <sound/asequencer.h>
  26
  27#define MAX_MIDI_EVENT_BUF      256
  28
  29/* midi status */
  30struct snd_midi_event {
  31        int qlen;               /* queue length */
  32        int read;               /* chars read */
  33        int type;               /* current event type */
  34        unsigned char lastcmd;  /* last command (for MIDI state handling) */
  35        unsigned char nostat;   /* no state flag */
  36        int bufsize;            /* allocated buffer size */
  37        unsigned char *buf;     /* input buffer */
  38        spinlock_t lock;
  39};
  40
  41int snd_midi_event_new(int bufsize, struct snd_midi_event **rdev);
  42void snd_midi_event_free(struct snd_midi_event *dev);
  43void snd_midi_event_reset_encode(struct snd_midi_event *dev);
  44void snd_midi_event_reset_decode(struct snd_midi_event *dev);
  45void snd_midi_event_no_status(struct snd_midi_event *dev, int on);
  46/* encode from byte stream - return number of written bytes if success */
  47long snd_midi_event_encode(struct snd_midi_event *dev, unsigned char *buf, long count,
  48                           struct snd_seq_event *ev);
  49int snd_midi_event_encode_byte(struct snd_midi_event *dev, int c, struct snd_seq_event *ev);
  50/* decode from event to bytes - return number of written bytes if success */
  51long snd_midi_event_decode(struct snd_midi_event *dev, unsigned char *buf, long count,
  52                           struct snd_seq_event *ev);
  53
  54#endif /* __SOUND_SEQ_MIDI_EVENT_H */
  55