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
pci
ctxfi
ctamixer.h
Go to the documentation of this file.
1
19
#ifndef CTAMIXER_H
20
#define CTAMIXER_H
21
22
#include "
ctresource.h
"
23
#include <
linux/spinlock.h
>
24
25
/* Define the descriptor of a summation node resource */
26
struct
sum
{
27
struct
rsc
rsc
;
/* Basic resource info */
28
unsigned
char
idx
[8];
29
};
30
31
/* Define sum resource request description info */
32
struct
sum_desc
{
33
unsigned
int
msr
;
34
};
35
36
struct
sum_mgr
{
37
struct
rsc_mgr
mgr
;
/* Basic resource manager info */
38
spinlock_t
mgr_lock
;
39
40
/* request one sum resource */
41
int
(*
get_sum
)(
struct
sum_mgr
*
mgr
,
42
const
struct
sum_desc
*
desc
,
struct
sum
**rsum);
43
/* return one sum resource */
44
int
(*
put_sum
)(
struct
sum_mgr
*
mgr
,
struct
sum
*
sum
);
45
};
46
47
/* Constructor and destructor of daio resource manager */
48
int
sum_mgr_create
(
void
*
hw
,
struct
sum_mgr
**rsum_mgr);
49
int
sum_mgr_destroy
(
struct
sum_mgr
*
sum_mgr
);
50
51
/* Define the descriptor of a amixer resource */
52
struct
amixer_rsc_ops
;
53
54
struct
amixer
{
55
struct
rsc
rsc
;
/* Basic resource info */
56
unsigned
char
idx
[8];
57
struct
rsc
*
input
;
/* pointer to a resource acting as source */
58
struct
sum
*
sum
;
/* Put amixer output to this summation node */
59
struct
amixer_rsc_ops
*
ops
;
/* AMixer specific operations */
60
};
61
62
struct
amixer_rsc_ops
{
63
int
(*
set_input
)(
struct
amixer
*
amixer
,
struct
rsc
*
rsc
);
64
int
(*
set_scale
)(
struct
amixer
*
amixer
,
unsigned
int
scale);
65
int
(*
set_invalid_squash
)(
struct
amixer
*
amixer
,
unsigned
int
iv
);
66
int
(*
set_sum
)(
struct
amixer
*
amixer
,
struct
sum
*
sum
);
67
int
(*
commit_write
)(
struct
amixer
*
amixer
);
68
/* Only for interleaved recording */
69
int
(*
commit_raw_write
)(
struct
amixer
*
amixer
);
70
int
(*
setup
)(
struct
amixer
*
amixer
,
struct
rsc
*
input
,
71
unsigned
int
scale,
struct
sum
*
sum
);
72
int
(*
get_scale
)(
struct
amixer
*
amixer
);
73
};
74
75
/* Define amixer resource request description info */
76
struct
amixer_desc
{
77
unsigned
int
msr
;
78
};
79
80
struct
amixer_mgr
{
81
struct
rsc_mgr
mgr
;
/* Basic resource manager info */
82
spinlock_t
mgr_lock
;
83
84
/* request one amixer resource */
85
int
(*
get_amixer
)(
struct
amixer_mgr
*
mgr
,
86
const
struct
amixer_desc
*
desc
,
87
struct
amixer
**ramixer);
88
/* return one amixer resource */
89
int
(*
put_amixer
)(
struct
amixer_mgr
*
mgr
,
struct
amixer
*
amixer
);
90
};
91
92
/* Constructor and destructor of amixer resource manager */
93
int
amixer_mgr_create
(
void
*
hw
,
struct
amixer_mgr
**ramixer_mgr);
94
int
amixer_mgr_destroy
(
struct
amixer_mgr
*
amixer_mgr
);
95
96
#endif
/* CTAMIXER_H */
Generated on Thu Jan 10 2013 15:06:01 for Linux Kernel by
1.8.2