Martin Stransky 1f34d9
/* Copyright 2005 Red Hat, Inc.
Martin Stransky 1f34d9
 *
Martin Stransky 1f34d9
 * This software may be freely redistributed under the terms of the GNU
Martin Stransky 1f34d9
 * public license.
Martin Stransky 1f34d9
 *
Martin Stransky 1f34d9
 * You should have received a copy of the GNU General Public License
Martin Stransky 1f34d9
 * along with this program; if not, write to the Free Software
Martin Stransky 1f34d9
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Martin Stransky 1f34d9
 *
Martin Stransky 1f34d9
 */
Martin Stransky 1f34d9
#include <stdio.h>
Martin Stransky 1f34d9
#include <string.h>
Martin Stransky 1f34d9
#include <alsa/asoundlib.h>
Martin Stransky 1f34d9
Martin Stransky 1f34d9
int get_card_device(const char *p_device)
Martin Stransky 1f34d9
{
Martin Stransky 1f34d9
  int err;
Martin Stransky 1f34d9
  snd_ctl_t *handle;
Martin Stransky 1f34d9
  snd_ctl_card_info_t *info;
Martin Stransky 1f34d9
Martin Stransky 1f34d9
  snd_ctl_card_info_alloca(&info;;
Martin Stransky 1f34d9
Martin Stransky 1f34d9
  if ((err = snd_ctl_open(&handle, "default", 0)) < 0) {
Martin Stransky 1f34d9
    fprintf(stderr,"Open error: %s\n", snd_strerror(err));
Martin Stransky 1f34d9
    return(0);
Martin Stransky 1f34d9
  }
Martin Stransky 1f34d9
  if ((err = snd_ctl_card_info(handle, info)) < 0) {
Martin Stransky 1f34d9
    fprintf(stderr,"HW info error: %s\n", snd_strerror(err));
Martin Stransky 1f34d9
    return(0);
Martin Stransky 1f34d9
  }
Martin Stransky 1f34d9
Martin Stransky 1f34d9
  return (snd_ctl_card_info_get_card(info));
Martin Stransky 1f34d9
}
Martin Stransky 1f34d9
Martin Stransky 1f34d9
int main(int argc, char *argv[])
Martin Stransky 1f34d9
{
Martin Stransky 1f34d9
  char *p_device = "default";
Martin Stransky 1f34d9
  int   card;
Martin Stransky 1f34d9
Martin Stransky 1f34d9
  if (argc > 1 && argv[1])
Martin Stransky 1f34d9
    p_device = argv[1];
Martin Stransky 1f34d9
Martin Stransky 1f34d9
  card = get_card_device(p_device);
Martin Stransky 1f34d9
  printf("%d",card);
Martin Stransky 1f34d9
  return (card);
Martin Stransky 1f34d9
}