mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	
		
			
	
	
		
			203 lines
		
	
	
	
		
			6.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			203 lines
		
	
	
	
		
			6.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | /**
 | ||
|  |  * \file include/pcm_plugin.h | ||
|  |  * \brief Common PCM plugin code | ||
|  |  * \author Abramo Bagnara <abramo@alsa-project.org> | ||
|  |  * \author Jaroslav Kysela <perex@perex.cz> | ||
|  |  * \date 2000-2001 | ||
|  |  * | ||
|  |  * Application interface library for the ALSA driver. | ||
|  |  * See the \ref pcm_plugins page for more details. | ||
|  |  * | ||
|  |  * \warning Using of contents of this header file might be dangerous | ||
|  |  *	    in the sense of compatibility reasons. The contents might be | ||
|  |  *	    freely changed in future. | ||
|  |  */ | ||
|  | /*
 | ||
|  |  *   This library is free software; you can redistribute it and/or modify | ||
|  |  *   it under the terms of the GNU Lesser General Public License as | ||
|  |  *   published by the Free Software Foundation; either version 2.1 of | ||
|  |  *   the License, or (at your option) any later version. | ||
|  |  * | ||
|  |  *   This program is distributed in the hope that it will be useful, | ||
|  |  *   but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  |  *   GNU Lesser General Public License for more details. | ||
|  |  * | ||
|  |  *   You should have received a copy of the GNU Lesser General Public | ||
|  |  *   License along with this library; if not, write to the Free Software | ||
|  |  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA | ||
|  |  * | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __ALSA_PCM_PLUGIN_H
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * \defgroup PCM_Plugins PCM Plugins | ||
|  |  * \ingroup PCM | ||
|  |  * See the \ref pcm_plugins page for more details. | ||
|  |  * \{ | ||
|  |  */ | ||
|  |    | ||
|  | #define SND_PCM_PLUGIN_RATE_MIN 4000	/**< minimal rate for the rate plugin */
 | ||
|  | #define SND_PCM_PLUGIN_RATE_MAX 192000	/**< maximal rate for the rate plugin */
 | ||
|  | 
 | ||
|  | /* ROUTE_FLOAT should be set to 0 for machines without FP unit - like iPAQ */ | ||
|  | #ifdef HAVE_SOFT_FLOAT
 | ||
|  | #define SND_PCM_PLUGIN_ROUTE_FLOAT 0	   /**< use integers for route plugin */
 | ||
|  | #else
 | ||
|  | #define SND_PCM_PLUGIN_ROUTE_FLOAT 1	   /**< use floats for route plugin */
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define SND_PCM_PLUGIN_ROUTE_RESOLUTION 16 /**< integer resolution for route plugin */
 | ||
|  | 
 | ||
|  | #if SND_PCM_PLUGIN_ROUTE_FLOAT
 | ||
|  | /** route ttable entry type */ | ||
|  | typedef float snd_pcm_route_ttable_entry_t; | ||
|  | #define SND_PCM_PLUGIN_ROUTE_HALF 0.5	/**< half value */
 | ||
|  | #define SND_PCM_PLUGIN_ROUTE_FULL 1.0	/**< full value */
 | ||
|  | #else
 | ||
|  | /** route ttable entry type */ | ||
|  | typedef int snd_pcm_route_ttable_entry_t; | ||
|  | #define SND_PCM_PLUGIN_ROUTE_HALF (SND_PCM_PLUGIN_ROUTE_RESOLUTION / 2)	/**< half value */
 | ||
|  | #define SND_PCM_PLUGIN_ROUTE_FULL SND_PCM_PLUGIN_ROUTE_RESOLUTION	/**< full value */
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Hardware plugin | ||
|  |  */ | ||
|  | int snd_pcm_hw_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		    int card, int device, int subdevice, | ||
|  | 		    snd_pcm_stream_t stream, int mode, | ||
|  | 		    int mmap_emulation, int sync_ptr_ioctl); | ||
|  | int _snd_pcm_hw_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		     snd_config_t *root ATTRIBUTE_UNUSED, snd_config_t *conf, | ||
|  | 		     snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Copy plugin | ||
|  |  */ | ||
|  | int snd_pcm_copy_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		      snd_pcm_t *slave, int close_slave); | ||
|  | int _snd_pcm_copy_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_config_t *root, snd_config_t *conf, | ||
|  |                        snd_pcm_stream_t stream, int mode); | ||
|  |                                                | ||
|  | /*
 | ||
|  |  *  Linear conversion plugin | ||
|  |  */ | ||
|  | int snd_pcm_linear_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			snd_pcm_format_t sformat, snd_pcm_t *slave, | ||
|  | 			int close_slave); | ||
|  | int _snd_pcm_linear_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			 snd_config_t *root, snd_config_t *conf, | ||
|  | 			 snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Linear<->Float conversion plugin | ||
|  |  */ | ||
|  | int snd_pcm_lfloat_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			snd_pcm_format_t sformat, snd_pcm_t *slave, | ||
|  | 			int close_slave); | ||
|  | int _snd_pcm_lfloat_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			 snd_config_t *root, snd_config_t *conf, | ||
|  | 			 snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Linear<->mu-Law conversion plugin | ||
|  |  */ | ||
|  | int snd_pcm_mulaw_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_pcm_format_t sformat, snd_pcm_t *slave, | ||
|  | 		       int close_slave); | ||
|  | int _snd_pcm_mulaw_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			snd_config_t *root, snd_config_t *conf, | ||
|  |                         snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Linear<->a-Law conversion plugin | ||
|  |  */ | ||
|  | int snd_pcm_alaw_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		      snd_pcm_format_t sformat, snd_pcm_t *slave, | ||
|  | 		      int close_slave); | ||
|  | int _snd_pcm_alaw_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_config_t *root, snd_config_t *conf, | ||
|  | 		       snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Linear<->Ima-ADPCM conversion plugin | ||
|  |  */ | ||
|  | int snd_pcm_adpcm_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_pcm_format_t sformat, snd_pcm_t *slave, | ||
|  | 		       int close_slave); | ||
|  | int _snd_pcm_adpcm_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			snd_config_t *root, snd_config_t *conf, | ||
|  | 			snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Route plugin for linear formats | ||
|  |  */ | ||
|  | int snd_pcm_route_load_ttable(snd_config_t *tt, snd_pcm_route_ttable_entry_t *ttable, | ||
|  | 			      unsigned int tt_csize, unsigned int tt_ssize, | ||
|  | 			      unsigned int *tt_cused, unsigned int *tt_sused, | ||
|  | 			      int schannels); | ||
|  | int snd_pcm_route_determine_ttable(snd_config_t *tt, | ||
|  | 				   unsigned int *tt_csize, | ||
|  | 				   unsigned int *tt_ssize); | ||
|  | int snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_pcm_format_t sformat, int schannels, | ||
|  | 		       snd_pcm_route_ttable_entry_t *ttable, | ||
|  | 		       unsigned int tt_ssize, | ||
|  | 		       unsigned int tt_cused, unsigned int tt_sused, | ||
|  | 		       snd_pcm_t *slave, int close_slave); | ||
|  | int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			snd_config_t *root, snd_config_t *conf, | ||
|  | 			snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Rate plugin for linear formats | ||
|  |  */ | ||
|  | int snd_pcm_rate_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		      snd_pcm_format_t sformat, unsigned int srate, | ||
|  | 		      const snd_config_t *converter, | ||
|  | 		      snd_pcm_t *slave, int close_slave); | ||
|  | int _snd_pcm_rate_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_config_t *root, snd_config_t *conf, | ||
|  | 		       snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Hooks plugin | ||
|  |  */ | ||
|  | int snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 		       snd_pcm_t *slave, int close_slave); | ||
|  | int _snd_pcm_hooks_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			snd_config_t *root, snd_config_t *conf, | ||
|  | 			snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  LADSPA plugin | ||
|  |  */ | ||
|  | int snd_pcm_ladspa_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			const char *ladspa_path, | ||
|  | 			unsigned int channels, | ||
|  | 			snd_config_t *ladspa_pplugins, | ||
|  | 			snd_config_t *ladspa_cplugins, | ||
|  | 			snd_pcm_t *slave, int close_slave); | ||
|  | int _snd_pcm_ladspa_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 			 snd_config_t *root, snd_config_t *conf, | ||
|  | 			 snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | /*
 | ||
|  |  *  Jack plugin | ||
|  |  */ | ||
|  | int snd_pcm_jack_open(snd_pcm_t **pcmp, const char *name, | ||
|  | 					snd_config_t *playback_conf, | ||
|  | 					snd_config_t *capture_conf, | ||
|  | 		      snd_pcm_stream_t stream, int mode); | ||
|  | int _snd_pcm_jack_open(snd_pcm_t **pcmp, const char *name, | ||
|  |                        snd_config_t *root, snd_config_t *conf, | ||
|  |                        snd_pcm_stream_t stream, int mode); | ||
|  | 
 | ||
|  | 
 | ||
|  | /** \} */ | ||
|  | 
 | ||
|  | #endif /* __ALSA_PCM_PLUGIN_H */
 |