1 | Index: null_multi.c
|
---|
2 | ===================================================================
|
---|
3 | --- null_multi.c (revision 28814)
|
---|
4 | +++ null_multi.c (working copy)
|
---|
5 | @@ -150,13 +150,48 @@
|
---|
6 | static status_t
|
---|
7 | list_mix_controls(device_t* device, multi_mix_control_info * data)
|
---|
8 | {
|
---|
9 | - int32 parent;
|
---|
10 | + int32 parent, i;
|
---|
11 | + const char* srcs[] = {"1", "2", "3"};
|
---|
12 | +
|
---|
13 | dprintf("null_audio: %s\n" , __func__ );
|
---|
14 |
|
---|
15 | parent = create_group_control(data->controls +0, 0, 0, 0, "Record");
|
---|
16 | parent = create_group_control(data->controls +1, 1, 0, 0, "Playback");
|
---|
17 | - data->control_count = 2;
|
---|
18 | +
|
---|
19 | + data->controls[2].id = MULTI_AUDIO_BASE_ID + 100;
|
---|
20 | + data->controls[2].parent = parent;
|
---|
21 | + data->controls[2].flags = B_MULTI_MIX_GAIN;
|
---|
22 | + data->controls[2].master = MULTI_AUDIO_MASTER_ID;
|
---|
23 | + data->controls[2].string = S_GAIN;
|
---|
24 | + data->controls[2].u.gain.min_gain = 0.;
|
---|
25 | + data->controls[2].u.gain.max_gain = 100.;
|
---|
26 | + data->controls[2].u.gain.granularity = 1.;
|
---|
27 | +
|
---|
28 | + data->controls[3].id = MULTI_AUDIO_BASE_ID + 200;
|
---|
29 | + data->controls[3].parent = parent;
|
---|
30 | + data->controls[3].flags = B_MULTI_MIX_GAIN;
|
---|
31 | + data->controls[3].master = data->controls[2].id;
|
---|
32 | + data->controls[3].string = S_GAIN;
|
---|
33 | + data->controls[3].u.gain.min_gain = 0.;
|
---|
34 | + data->controls[3].u.gain.max_gain = 100.;
|
---|
35 | + data->controls[3].u.gain.granularity = 1.;
|
---|
36 |
|
---|
37 | + data->controls[4].id = MULTI_AUDIO_BASE_ID + 300;
|
---|
38 | + data->controls[4].parent = parent;
|
---|
39 | + data->controls[4].flags = B_MULTI_MIX_MUX;
|
---|
40 | + data->controls[4].string = S_GAIN;
|
---|
41 | +
|
---|
42 | + for(i = 0; i < 3; i++) {
|
---|
43 | + data->controls[i + 5].id = data->controls[4].id + i + 10;
|
---|
44 | + data->controls[i + 5].flags = B_MULTI_MIX_MUX_VALUE;
|
---|
45 | + data->controls[i + 5].master = 0;
|
---|
46 | + data->controls[i + 5].string = S_null;
|
---|
47 | + data->controls[i + 5].parent = data->controls[4].id;
|
---|
48 | + strncpy(data->controls[i + 5].name, srcs[i], sizeof(data->controls[i + 5].name));
|
---|
49 | + }
|
---|
50 | +
|
---|
51 | + data->control_count = 8;
|
---|
52 | +
|
---|
53 | return B_OK;
|
---|
54 | }
|
---|
55 |
|
---|
56 | @@ -334,8 +369,16 @@
|
---|
57 | case B_MULTI_SET_GLOBAL_FORMAT: return set_global_format(cookie, arg);
|
---|
58 | case B_MULTI_GET_CHANNEL_FORMATS: return B_ERROR;
|
---|
59 | case B_MULTI_SET_CHANNEL_FORMATS: return B_ERROR;
|
---|
60 | - case B_MULTI_GET_MIX: return B_ERROR;
|
---|
61 | - case B_MULTI_SET_MIX: return B_ERROR;
|
---|
62 | + case B_MULTI_GET_MIX: return B_OK;
|
---|
63 | + case B_MULTI_SET_MIX:
|
---|
64 | + {
|
---|
65 | + multi_mix_value_info *info = (multi_mix_value_info *)arg;
|
---|
66 | + int i = 0;
|
---|
67 | + for(i=0; i < info->item_count; i++) {
|
---|
68 | + dprintf("SET_MIX:item #%d id:%d\n", i, info->values[i].id);
|
---|
69 | + }
|
---|
70 | + return B_OK;
|
---|
71 | + }
|
---|
72 | case B_MULTI_LIST_MIX_CHANNELS: return list_mix_channels(cookie, arg);
|
---|
73 | case B_MULTI_LIST_MIX_CONTROLS: return list_mix_controls(cookie, arg);
|
---|
74 | case B_MULTI_LIST_MIX_CONNECTIONS: return list_mix_connections(cookie, arg);
|
---|