pcm_external.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * \file include/pcm_external.h
  3. * \brief External PCM plugin SDK
  4. * \author Takashi Iwai <tiwai@suse.de>
  5. * \date 2005
  6. *
  7. * Extern PCM plugin SDK.
  8. */
  9. /*
  10. * This library is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU Lesser General Public License as
  12. * published by the Free Software Foundation; either version 2.1 of
  13. * the License, or (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 Lesser General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU Lesser General Public
  21. * License along with this library; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  23. *
  24. */
  25. #ifndef __ALSA_PCM_EXTERNAL_H
  26. #define __ALSA_PCM_EXTERNAL_H
  27. #include "pcm.h"
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31. /**
  32. * \defgroup Plugin_SDK External PCM plugin SDK
  33. * \{
  34. */
  35. /**
  36. * Define the object entry for external PCM plugins
  37. */
  38. #define SND_PCM_PLUGIN_ENTRY(name) _snd_pcm_##name##_open
  39. /**
  40. * Define the symbols of the given plugin with versions
  41. */
  42. #define SND_PCM_PLUGIN_SYMBOL(name) SND_DLSYM_BUILD_VERSION(SND_PCM_PLUGIN_ENTRY(name), SND_PCM_DLSYM_VERSION);
  43. /**
  44. * Define the plugin
  45. */
  46. #define SND_PCM_PLUGIN_DEFINE_FUNC(plugin) \
  47. int SND_PCM_PLUGIN_ENTRY(plugin) (snd_pcm_t **pcmp, const char *name,\
  48. snd_config_t *root, snd_config_t *conf, \
  49. snd_pcm_stream_t stream, int mode)
  50. #include "pcm_ioplug.h"
  51. #include "pcm_extplug.h"
  52. int snd_pcm_parse_control_id(snd_config_t *conf, snd_ctl_elem_id_t *ctl_id, int *cardp,
  53. int *cchannelsp, int *hwctlp);
  54. /** \} */
  55. #ifdef __cplusplus
  56. }
  57. #endif
  58. #endif /* __ALSA_PCM_EXTERNAL_H */