2019-05-27 08:55:05 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2005-04-16 15:20:36 -07:00
# ifndef __OPL3_VOICE_H
# define __OPL3_VOICE_H
/*
* Copyright ( c ) 2000 Uros Bizjak < uros @ kss - loka . si >
*/
# include <sound/opl3.h>
/* Prototypes for opl3_seq.c */
2005-11-17 14:13:14 +01:00
int snd_opl3_synth_use_inc ( struct snd_opl3 * opl3 ) ;
void snd_opl3_synth_use_dec ( struct snd_opl3 * opl3 ) ;
int snd_opl3_synth_setup ( struct snd_opl3 * opl3 ) ;
void snd_opl3_synth_cleanup ( struct snd_opl3 * opl3 ) ;
2005-04-16 15:20:36 -07:00
/* Prototypes for opl3_midi.c */
void snd_opl3_note_on ( void * p , int note , int vel , struct snd_midi_channel * chan ) ;
void snd_opl3_note_off ( void * p , int note , int vel , struct snd_midi_channel * chan ) ;
void snd_opl3_key_press ( void * p , int note , int vel , struct snd_midi_channel * chan ) ;
2005-11-17 14:13:14 +01:00
void snd_opl3_terminate_note ( void * p , int note , struct snd_midi_channel * chan ) ;
2005-04-16 15:20:36 -07:00
void snd_opl3_control ( void * p , int type , struct snd_midi_channel * chan ) ;
2005-11-17 14:13:14 +01:00
void snd_opl3_nrpn ( void * p , struct snd_midi_channel * chan , struct snd_midi_channel_set * chset ) ;
void snd_opl3_sysex ( void * p , unsigned char * buf , int len , int parsed , struct snd_midi_channel_set * chset ) ;
2005-04-16 15:20:36 -07:00
2005-11-17 14:13:14 +01:00
void snd_opl3_calc_volume ( unsigned char * reg , int vel , struct snd_midi_channel * chan ) ;
2017-10-24 08:34:29 -07:00
void snd_opl3_timer_func ( struct timer_list * t ) ;
2005-04-16 15:20:36 -07:00
/* Prototypes for opl3_drums.c */
2005-11-17 14:13:14 +01:00
void snd_opl3_load_drums ( struct snd_opl3 * opl3 ) ;
2019-03-17 23:21:24 +00:00
void snd_opl3_drum_switch ( struct snd_opl3 * opl3 , int note , int vel , int on_off , struct snd_midi_channel * chan ) ;
2005-04-16 15:20:36 -07:00
/* Prototypes for opl3_oss.c */
2017-06-09 14:06:46 +02:00
# if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
2005-11-17 14:13:14 +01:00
void snd_opl3_init_seq_oss ( struct snd_opl3 * opl3 , char * name ) ;
void snd_opl3_free_seq_oss ( struct snd_opl3 * opl3 ) ;
2017-06-09 14:06:46 +02:00
# else
# define snd_opl3_init_seq_oss(opl3, name) /* NOP */
# define snd_opl3_free_seq_oss(opl3) /* NOP */
2005-04-16 15:20:36 -07:00
# endif
2018-07-25 23:00:52 +02:00
extern char snd_opl3_regmap [ MAX_OPL2_VOICES ] [ 4 ] ;
extern bool use_internal_drums ;
2020-01-03 09:16:45 +01:00
extern const struct snd_midi_op opl3_ops ;
2018-07-25 23:00:52 +02:00
2005-04-16 15:20:36 -07:00
# endif