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
include
sound
jack.h
Go to the documentation of this file.
1
#ifndef __SOUND_JACK_H
2
#define __SOUND_JACK_H
3
4
/*
5
* Jack abstraction layer
6
*
7
* Copyright 2008 Wolfson Microelectronics plc
8
*
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public License
21
* along with this program; if not, write to the Free Software
22
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
*
24
*/
25
26
#include <
sound/core.h
>
27
28
struct
input_dev;
29
37
enum
snd_jack_types
{
38
SND_JACK_HEADPHONE
= 0x0001,
39
SND_JACK_MICROPHONE
= 0x0002,
40
SND_JACK_HEADSET
=
SND_JACK_HEADPHONE
|
SND_JACK_MICROPHONE
,
41
SND_JACK_LINEOUT
= 0x0004,
42
SND_JACK_MECHANICAL
= 0x0008,
/* If detected separately */
43
SND_JACK_VIDEOOUT
= 0x0010,
44
SND_JACK_AVOUT
=
SND_JACK_LINEOUT
|
SND_JACK_VIDEOOUT
,
45
SND_JACK_LINEIN
= 0x0020,
46
47
/* Kept separate from switches to facilitate implementation */
48
SND_JACK_BTN_0
= 0x4000,
49
SND_JACK_BTN_1
= 0x2000,
50
SND_JACK_BTN_2
= 0x1000,
51
SND_JACK_BTN_3
= 0x0800,
52
SND_JACK_BTN_4
= 0x0400,
53
SND_JACK_BTN_5
= 0x0200,
54
};
55
56
/* Keep in sync with definitions above */
57
#define SND_JACK_SWITCH_TYPES 6
58
59
struct
snd_jack
{
60
struct
input_dev
*
input_dev
;
61
int
registered
;
62
int
type
;
63
const
char
*
id
;
64
char
name
[100];
65
unsigned
int
key
[6];
/* Keep in sync with definitions above */
66
void
*
private_data
;
67
void
(*
private_free
)(
struct
snd_jack
*);
68
};
69
70
#ifdef CONFIG_SND_JACK
71
72
int
snd_jack_new
(
struct
snd_card
*
card
,
const
char
*
id
,
int
type
,
73
struct
snd_jack
**jack);
74
void
snd_jack_set_parent
(
struct
snd_jack
*jack,
struct
device
*parent);
75
int
snd_jack_set_key
(
struct
snd_jack
*jack,
enum
snd_jack_types
type
,
76
int
keytype);
77
78
void
snd_jack_report
(
struct
snd_jack
*jack,
int
status
);
79
80
#else
81
82
static
inline
int
snd_jack_new
(
struct
snd_card
*
card
,
const
char
*
id
,
int
type
,
83
struct
snd_jack
**jack)
84
{
85
return
0;
86
}
87
88
static
inline
void
snd_jack_set_parent
(
struct
snd_jack
*jack,
89
struct
device
*parent)
90
{
91
}
92
93
static
inline
void
snd_jack_report
(
struct
snd_jack
*jack,
int
status
)
94
{
95
}
96
97
#endif
98
99
#endif
Generated on Thu Jan 10 2013 14:53:34 for Linux Kernel by
1.8.2