root/include/sound/seq_oss.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 #ifndef __SOUND_SEQ_OSS_H
   3 #define __SOUND_SEQ_OSS_H
   4 
   5 /*
   6  * OSS compatible sequencer driver
   7  *
   8  * Copyright (C) 1998,99 Takashi Iwai
   9  */
  10 
  11 #include <sound/asequencer.h>
  12 #include <sound/seq_kernel.h>
  13 
  14 /*
  15  * argument structure for synthesizer operations
  16  */
  17 struct snd_seq_oss_arg {
  18         /* given by OSS sequencer */
  19         int app_index;  /* application unique index */
  20         int file_mode;  /* file mode - see below */
  21         int seq_mode;   /* sequencer mode - see below */
  22 
  23         /* following must be initialized in open callback */
  24         struct snd_seq_addr addr;       /* opened port address */
  25         void *private_data;     /* private data for lowlevel drivers */
  26 
  27         /* note-on event passing mode: initially given by OSS seq,
  28          * but configurable by drivers - see below
  29          */
  30         int event_passing;
  31 };
  32 
  33 
  34 /*
  35  * synthesizer operation callbacks
  36  */
  37 struct snd_seq_oss_callback {
  38         struct module *owner;
  39         int (*open)(struct snd_seq_oss_arg *p, void *closure);
  40         int (*close)(struct snd_seq_oss_arg *p);
  41         int (*ioctl)(struct snd_seq_oss_arg *p, unsigned int cmd, unsigned long arg);
  42         int (*load_patch)(struct snd_seq_oss_arg *p, int format, const char __user *buf, int offs, int count);
  43         int (*reset)(struct snd_seq_oss_arg *p);
  44         int (*raw_event)(struct snd_seq_oss_arg *p, unsigned char *data);
  45 };
  46 
  47 /* flag: file_mode */
  48 #define SNDRV_SEQ_OSS_FILE_ACMODE               3
  49 #define SNDRV_SEQ_OSS_FILE_READ         1
  50 #define SNDRV_SEQ_OSS_FILE_WRITE                2
  51 #define SNDRV_SEQ_OSS_FILE_NONBLOCK     4
  52 
  53 /* flag: seq_mode */
  54 #define SNDRV_SEQ_OSS_MODE_SYNTH                0
  55 #define SNDRV_SEQ_OSS_MODE_MUSIC                1
  56 
  57 /* flag: event_passing */
  58 #define SNDRV_SEQ_OSS_PROCESS_EVENTS    0       /* key == 255 is processed as velocity change */
  59 #define SNDRV_SEQ_OSS_PASS_EVENTS               1       /* pass all events to callback */
  60 #define SNDRV_SEQ_OSS_PROCESS_KEYPRESS  2       /* key >= 128 will be processed as key-pressure */
  61 
  62 /* default control rate: fixed */
  63 #define SNDRV_SEQ_OSS_CTRLRATE          100
  64 
  65 /* default max queue length: configurable by module option */
  66 #define SNDRV_SEQ_OSS_MAX_QLEN          1024
  67 
  68 
  69 /*
  70  * data pointer to snd_seq_register_device
  71  */
  72 struct snd_seq_oss_reg {
  73         int type;
  74         int subtype;
  75         int nvoices;
  76         struct snd_seq_oss_callback oper;
  77         void *private_data;
  78 };
  79 
  80 /* device id */
  81 #define SNDRV_SEQ_DEV_ID_OSS            "seq-oss"
  82 
  83 #endif /* __SOUND_SEQ_OSS_H */

/* [<][>][^][v][top][bottom][index][help] */