Home | History | Annotate | Download | only in server
      1 /* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
      2  * Use of this source code is governed by a BSD-style license that can be
      3  * found in the LICENSE file.
      4  */
      5 
      6 #ifndef _CRAS_ALSA_CARD_H
      7 #define _CRAS_ALSA_CARD_H
      8 
      9 #include "cras_types.h"
     10 
     11 /* cras_alsa_card represents an alsa sound card.  It adds all the devices for
     12  * this card to the system when it is created, and removes them when it is
     13  * destroyed.  It will create an alsa_mixer object that can control the volume
     14  * and mute settings for the card.
     15  */
     16 
     17 struct cras_alsa_card;
     18 struct cras_device_blacklist;
     19 
     20 /* Creates a cras_alsa_card instance for the given alsa device.  Enumerates the
     21  * devices for the card and adds them to the system as possible playback or
     22  * capture endpoints.
     23  * Args:
     24  *    card_info - Contains the card index, type, and priority.
     25  *    device_config_dir - The directory of device configs which contains the
     26  *                        volume curves.
     27  *    blacklist - List of devices that should be ignored.
     28  *    ucm_suffix - The ucm config name is formed as <card-name>.<suffix>
     29  * Returns:
     30  *    A pointer to the newly created cras_alsa_card which must later be freed
     31  *    by calling cras_alsa_card_destroy or NULL on error.
     32  */
     33 struct cras_alsa_card *cras_alsa_card_create(
     34 		struct cras_alsa_card_info *info,
     35 		const char *device_config_dir,
     36 		struct cras_device_blacklist *blacklist,
     37 		const char *ucm_suffix);
     38 
     39 /* Destroys a cras_alsa_card that was returned from cras_alsa_card_create.
     40  * Args:
     41  *    alsa_card - The cras_alsa_card pointer returned from
     42  *        cras_alsa_card_create.
     43  */
     44 void cras_alsa_card_destroy(struct cras_alsa_card *alsa_card);
     45 
     46 /* Returns the alsa card index for the given card.
     47  * Args:
     48  *    alsa_card - The cras_alsa_card pointer returned from
     49  *        cras_alsa_card_create.
     50  */
     51 size_t cras_alsa_card_get_index(const struct cras_alsa_card *alsa_card);
     52 
     53 #endif /* _CRAS_ALSA_CARD_H */
     54