Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
sound
core
ctljack.c
Go to the documentation of this file.
1
/*
2
* Helper functions for jack-detection kcontrols
3
*
4
* Copyright (c) 2011 Takashi Iwai <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the Free
8
* Software Foundation; either version 2 of the License, or (at your option)
9
* any later version.
10
*/
11
12
#include <linux/kernel.h>
13
#include <linux/export.h>
14
#include <
sound/core.h
>
15
#include <
sound/control.h
>
16
17
#define jack_detect_kctl_info snd_ctl_boolean_mono_info
18
19
static
int
jack_detect_kctl_get(
struct
snd_kcontrol
*kcontrol,
20
struct
snd_ctl_elem_value
*ucontrol)
21
{
22
ucontrol->
value
.integer.value[0] = kcontrol->
private_value
;
23
return
0;
24
}
25
26
static
struct
snd_kcontrol_new
jack_detect_kctl = {
27
/* name is filled later */
28
.iface =
SNDRV_CTL_ELEM_IFACE_CARD
,
29
.access =
SNDRV_CTL_ELEM_ACCESS_READ
,
30
.info =
jack_detect_kctl_info
,
31
.get = jack_detect_kctl_get,
32
};
33
34
struct
snd_kcontrol
*
35
snd_kctl_jack_new
(
const
char
*
name
,
int
idx
,
void
*
private_data
)
36
{
37
struct
snd_kcontrol
*kctl;
38
kctl =
snd_ctl_new1
(&jack_detect_kctl, private_data);
39
if
(!kctl)
40
return
NULL
;
41
snprintf
(kctl->
id
.name,
sizeof
(kctl->
id
.name),
"%s Jack"
, name);
42
kctl->
id
.index =
idx
;
43
kctl->
private_value
= 0;
44
return
kctl;
45
}
46
EXPORT_SYMBOL_GPL
(
snd_kctl_jack_new
);
47
48
void
snd_kctl_jack_report
(
struct
snd_card
*
card
,
49
struct
snd_kcontrol
*kctl,
bool
status
)
50
{
51
if
(kctl->
private_value
== status)
52
return
;
53
kctl->
private_value
=
status
;
54
snd_ctl_notify
(card,
SNDRV_CTL_EVENT_MASK_VALUE
, &kctl->
id
);
55
}
56
EXPORT_SYMBOL_GPL
(
snd_kctl_jack_report
);
Generated on Thu Jan 10 2013 15:03:41 for Linux Kernel by
1.8.2