]>
code.delx.au - pulseaudio/blob - src/pulsecore/card.h
1 #ifndef foopulsecardhfoo
2 #define foopulsecardhfoo
5 This file is part of PulseAudio.
7 Copyright 2009 Lennart Poettering
9 PulseAudio is free software; you can redistribute it and/or modify
10 it under the terms of the GNU Lesser General Public License as published
11 by the Free Software Foundation; either version 2 of the License,
12 or (at your option) any later version.
14 PulseAudio is distributed in the hope that it will be useful, but
15 WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 General Public License for more details.
19 You should have received a copy of the GNU Lesser General Public License
20 along with PulseAudio; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
25 typedef struct pa_card pa_card
;
27 #include <pulse/proplist.h>
28 #include <pulsecore/core.h>
29 #include <pulsecore/module.h>
30 #include <pulsecore/idxset.h>
32 typedef struct pa_card_profile
{
38 /* We probably want to have different properties later on here */
42 unsigned max_sink_channels
;
43 unsigned max_source_channels
;
45 /* .. followed by some implementation specific data */
48 #define PA_CARD_PROFILE_DATA(d) ((void*) ((uint8_t*) d + PA_ALIGN(sizeof(pa_card_profile))))
56 pa_proplist
*proplist
;
64 pa_card_profile
*active_profile
;
68 int (*set_profile
)(pa_card
*c
, pa_card_profile
*profile
);
71 typedef struct pa_card_new_data
{
75 pa_proplist
*proplist
;
82 pa_bool_t namereg_fail
:1;
85 pa_card_profile
*pa_card_profile_new(const char *name
, const char *description
, size_t extra
);
86 void pa_card_profile_free(pa_card_profile
*c
);
88 pa_card_new_data
*pa_card_new_data_init(pa_card_new_data
*data
);
89 void pa_card_new_data_set_name(pa_card_new_data
*data
, const char *name
);
90 void pa_card_new_data_set_profile(pa_card_new_data
*data
, const char *profile
);
91 void pa_card_new_data_done(pa_card_new_data
*data
);
93 pa_card
*pa_card_new(pa_core
*c
, pa_card_new_data
*data
);
94 void pa_card_free(pa_card
*c
);
96 int pa_card_set_profile(pa_card
*c
, const char *name
);
98 int pa_card_suspend(pa_card
*c
, pa_bool_t suspend
);