# Sound Card Filter API
[Sound Card API - manage audio capture/play filters.]

## Functions
MS2_PUBLIC struct _MSFilter * | ms_snd_card_create_reader (MSSndCard *obj)
MS2_PUBLIC struct _MSFilter * | ms_snd_card_create_writer (MSSndCard *obj)
MS2_PUBLIC MSSndCard * | ms_snd_card_new (MSSndCardDesc *desc)
MS2_PUBLIC MSSndCard * | ms_snd_card_new_with_name (MSSndCardDesc *desc, const char *name)
MS2_PUBLIC void | ms_snd_card_destroy (MSSndCard *obj)
MS2_PUBLIC MSSndCard * | ms_snd_card_dup (MSSndCard *card)
MS2_PUBLIC const char * | ms_snd_card_get_driver_type (const MSSndCard *obj)
MS2_PUBLIC const char * | ms_snd_card_get_name (const MSSndCard *obj)
MS2_PUBLIC const char * | ms_snd_card_get_string_id (MSSndCard *obj)
MS2_PUBLIC unsigned int | ms_snd_card_get_capabilities (const MSSndCard *obj)
MS2_PUBLIC void | ms_snd_card_set_level (MSSndCard *obj, MSSndCardMixerElem e, int percent)
MS2_PUBLIC int | ms_snd_card_get_level (MSSndCard *obj, MSSndCardMixerElem e)
MS2_PUBLIC void | ms_snd_card_set_capture (MSSndCard *obj, MSSndCardCapture c)
MS2_PUBLIC int | ms_snd_card_set_control (MSSndCard *obj, MSSndCardControlElem e, int val)
MS2_PUBLIC int | ms_snd_card_get_control (MSSndCard *obj, MSSndCardControlElem e)
MS2_PUBLIC MSSndCard * | ms_alsa_card_new_custom (const char *pcmdev, const char *mixdev)

## Function Documentation

MS2_PUBLIC struct _MSFilter* ms_snd_card_create_reader | ( | MSSndCard * | obj | ) | `[read]`

Create an INPUT filter based on the selected sound card.

Parameters:

  | obj | A sound card object.

Returns: A MSFilter if successfull, NULL otherwise.

MS2_PUBLIC struct _MSFilter* ms_snd_card_create_writer | ( | MSSndCard * | obj | ) | `[read]`

Create an OUPUT filter based on the selected sound card.

Parameters:

  | obj | A sound card object.

Returns: A MSFilter if successfull, NULL otherwise.

MS2_PUBLIC MSSndCard* ms_snd_card_new | ( | MSSndCardDesc * | desc | ) |

Create a new sound card object.

Parameters:

  | desc | A sound card description object.

Returns: MSSndCard if successfull, NULL otherwise.

MS2_PUBLIC MSSndCard* ms_snd_card_new_with_name | ( | MSSndCardDesc * | desc,
|  | const char * | name |
| ) |  |  |

Create a new sound card object.

Parameters:

  | desc | A sound card description object.
  | card | mame

Returns: MSSndCard if successfull, NULL otherwise.

MS2_PUBLIC void ms_snd_card_destroy | ( | MSSndCard * | obj | ) |

Destroy sound card object.

Parameters:

  | obj | A MSSndCard object.

MS2_PUBLIC MSSndCard* ms_snd_card_dup | ( | MSSndCard * | card | ) |

Duplicate a sound card object.

This helps to open several time a sound card.

Parameters:

  | card | A sound card object.

Returns: MSSndCard if successfull, NULL otherwise.

MS2_PUBLIC const char* ms_snd_card_get_driver_type | ( | const MSSndCard * | obj | ) |

Retreive a sound card's driver type string.

Internal driver types are either: "OSS, ALSA, WINSND, PASND, CA"

Parameters:

  | obj | A sound card object.

Returns: a string if successfull, NULL otherwise.

MS2_PUBLIC const char* ms_snd_card_get_name | ( | const MSSndCard * | obj | ) |

Retreive a sound card's name.

Parameters:

  | obj | A sound card object.

Returns: a string if successfull, NULL otherwise.

MS2_PUBLIC const char* ms_snd_card_get_string_id | ( | MSSndCard * | obj | ) |

Retreive sound card's name (

driver_type

name).

Parameters:

  | obj | A sound card object.

Returns: A string if successfull, NULL otherwise.

MS2_PUBLIC unsigned int ms_snd_card_get_capabilities | ( | const MSSndCard * | obj | ) |

Retreive sound card's capabilities.

       MS_SND_CARD_CAP_CAPTURE
       MS_SND_CARD_CAP_PLAYBACK
       MS_SND_CARD_CAP_CAPTURE|MS_SND_CARD_CAP_PLAYBACK

Parameters:

  | obj | A sound card object.

Returns: A unsigned int if successfull, 0 otherwise.

MS2_PUBLIC void ms_snd_card_set_level | ( | MSSndCard * | obj,
|  | MSSndCardMixerElem | e,
|  | int | percent |
| ) |  |  |

Set some mixer level value.

       MS_SND_CARD_MASTER,
       MS_SND_CARD_PLAYBACK,
       MS_SND_CARD_CAPTURE

Note: not implemented on all sound card filters.

Parameters:

  | obj | A sound card object.
  | e | A sound card mixer object.
  | percent | A volume level.

MS2_PUBLIC int ms_snd_card_get_level | ( | MSSndCard * | obj,
|  | MSSndCardMixerElem | e |
| ) |  |  |

Get some mixer level value.

       MS_SND_CARD_MASTER,
       MS_SND_CARD_PLAYBACK,
       MS_SND_CARD_CAPTURE

Note: not implemented on all sound card filters.

Parameters:

  | obj | A sound card object.
  | e | A sound card mixer object.

Returns: A int if successfull, <0 otherwise.

MS2_PUBLIC void ms_snd_card_set_capture | ( | MSSndCard * | obj,
|  | MSSndCardCapture | c |
| ) |  |  |

Set some source for capture.

       MS_SND_CARD_MIC,
       MS_SND_CARD_LINE

Note: not implemented on all sound card filters.

Parameters:

  | obj | A sound card object.
  | c | A sound card capture value.

Returns: A int if successfull, 0 otherwise.

MS2_PUBLIC int ms_snd_card_set_control | ( | MSSndCard * | obj,
|  | MSSndCardControlElem | e,
|  | int | val |
| ) |  |  |

Set some mixer control.

       MS_SND_CARD_MASTER_MUTE, -> 0: unmute, 1: mute
       MS_SND_CARD_PLAYBACK_MUTE, -> 0: unmute, 1: mute
       MS_SND_CARD_CAPTURE_MUTE -> 0: unmute, 1: mute

Note: not implemented on all sound card filters.

Parameters:

  | obj | A sound card object.
  | e | A sound card control object.
  | percent | A value for control.

Returns: 0 if successfull, <0 otherwise.

MS2_PUBLIC int ms_snd_card_get_control | ( | MSSndCard * | obj,
|  | MSSndCardControlElem | e |
| ) |  |  |

Get some mixer control.

       MS_SND_CARD_MASTER_MUTE, -> return 0: unmute, 1: mute
       MS_SND_CARD_PLAYBACK_MUTE, -> return 0: unmute, 1: mute
       MS_SND_CARD_CAPTURE_MUTE -> return 0: unmute, 1: mute

Note: not implemented on all sound card filters.

Parameters:

  | obj | A sound card object.
  | e | A sound card mixer object.

Returns: A int if successfull, <0 otherwise.

MS2_PUBLIC MSSndCard* ms_alsa_card_new_custom | ( | const char * | pcmdev,
|  | const char * | mixdev |
| ) |  |  |

Create a alsa card with user supplied pcm name and mixer name.

Parameters:

  | pcmdev | The pcm device name following alsa conventions (ex: plughw:0)
  | mixdev | The mixer device name following alsa conventions.

Returns: a MSSndCard object, NULL if alsa support is not available.