Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.9.4.
 1/*
 2 * Line6 Linux USB driver - 0.9.1beta
 3 *
 4 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
 5 *
 6 *	This program is free software; you can redistribute it and/or
 7 *	modify it under the terms of the GNU General Public License as
 8 *	published by the Free Software Foundation, version 2.
 9 *
10 */
11
12#include <sound/core.h>
13#include <sound/initval.h>
14#include <linux/export.h>
15
16#include "driver.h"
17#include "audio.h"
18
19/*
20	Initialize the Line6 USB audio system.
21*/
22int line6_init_audio(struct usb_line6 *line6)
23{
24	struct snd_card *card;
25	int err;
26
27	err = snd_card_new(line6->ifcdev,
28			   SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1,
29			   THIS_MODULE, 0, &card);
30	if (err < 0)
31		return err;
32
33	line6->card = card;
34
35	strcpy(card->id, line6->properties->id);
36	strcpy(card->driver, DRIVER_NAME);
37	strcpy(card->shortname, line6->properties->name);
38	/* longname is 80 chars - see asound.h */
39	sprintf(card->longname, "Line6 %s at USB %s", line6->properties->name,
40		dev_name(line6->ifcdev));
41	return 0;
42}
43
44/*
45	Register the Line6 USB audio system.
46*/
47int line6_register_audio(struct usb_line6 *line6)
48{
49	int err;
50
51	err = snd_card_register(line6->card);
52	if (err < 0)
53		return err;
54
55	return 0;
56}
57
58/*
59	Cleanup the Line6 USB audio system.
60*/
61void line6_cleanup_audio(struct usb_line6 *line6)
62{
63	struct snd_card *card = line6->card;
64
65	if (card == NULL)
66		return;
67
68	snd_card_disconnect(card);
69	snd_card_free(card);
70	line6->card = NULL;
71}