From c6e951f4e612d5b80705697604984af903414cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 14 Dec 2008 14:05:36 +0000 Subject: [PATCH] use control index as parameter id, instead of control id git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28811 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../multi_audio/MultiAudioNode.cpp | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp index 7b21f6355d..97264a97b8 100644 --- a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp +++ b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp @@ -1190,25 +1190,25 @@ MultiAudioNode::GetParameterValue(int32 id, bigtime_t* lastChange, void* value, multi_mix_value values[2]; info.values = values; info.item_count = 0; - - id = id - 100; + multi_mix_control* controls = fDevice->MixControlInfo().controls; + int32 control_id = controls[id - 100].id; if (*size < sizeof(float)) return B_ERROR; if (parameter->Type() == BParameter::B_CONTINUOUS_PARAMETER) { info.item_count = 1; - values[0].id = id; + values[0].id = control_id; if (parameter->CountChannels() == 2) { if (*size < 2*sizeof(float)) return B_ERROR; info.item_count = 2; - values[1].id = id + 1; + values[1].id = controls[id + 1 - 100].id; } } else if(parameter->Type() == BParameter::B_DISCRETE_PARAMETER) { info.item_count = 1; - values[0].id = id; + values[0].id = control_id; } if (info.item_count > 0) { @@ -1268,20 +1268,20 @@ MultiAudioNode::SetParameterValue(int32 id, bigtime_t performanceTime, multi_mix_value values[2]; info.values = values; info.item_count = 0; - - id = id - 100; + multi_mix_control* controls = fDevice->MixControlInfo().controls; + int32 control_id = controls[id - 100].id; if (parameter->Type() == BParameter::B_CONTINUOUS_PARAMETER) { for (uint32 i = 0; i < size / sizeof(float); i++) { PRINT(("SetParameterValue B_CONTINUOUS_PARAMETER value[%li] : %f\n", i, ((float*)value)[i])); } info.item_count = 1; - values[0].id = id; + values[0].id = control_id; values[0].gain = ((float*)value)[0]; if (parameter->CountChannels() == 2) { info.item_count = 2; - values[1].id = id + 1; + values[1].id = controls[id + 1 - 100].id; values[1].gain = ((float*)value)[1]; } } else if (parameter->Type() == BParameter::B_DISCRETE_PARAMETER) { @@ -1292,11 +1292,11 @@ MultiAudioNode::SetParameterValue(int32 id, bigtime_t performanceTime, BDiscreteParameter* discrete = (BDiscreteParameter*)parameter; if (discrete->CountItems() <= 2) { info.item_count = 1; - values[0].id = id; + values[0].id = control_id; values[0].enable = ((int32*)value)[0] == 1; } else { info.item_count = 1; - values[0].id = id; + values[0].id = control_id; values[0].mux = ((uint32*)value)[0]; } } @@ -1362,7 +1362,7 @@ MultiAudioNode::_ProcessGroup(BParameterGroup* group, int32 index, if (controls[i].flags & B_MULTI_MIX_GROUP) { PRINT(("NEW_GROUP\n")); BParameterGroup* child = group->MakeGroup(name); - child->MakeNullParameter(controls[i].id, B_MEDIA_RAW_AUDIO, name, + child->MakeNullParameter(100 + i, B_MEDIA_RAW_AUDIO, name, B_WEB_BUFFER_OUTPUT); int32 num = 1; @@ -1379,7 +1379,7 @@ MultiAudioNode::_ProcessGroup(BParameterGroup* group, int32 index, _ProcessMux(parameter, i); } else if (controls[i].flags & B_MULTI_MIX_GAIN) { PRINT(("NEW_GAIN\n")); - group->MakeContinuousParameter(100 + controls[i].id, + group->MakeContinuousParameter(100 + i, B_MEDIA_RAW_AUDIO, "", B_MASTER_GAIN, "dB", controls[i].gain.min_gain, controls[i].gain.max_gain, controls[i].gain.granularity); @@ -1401,10 +1401,10 @@ MultiAudioNode::_ProcessGroup(BParameterGroup* group, int32 index, } else if (controls[i].flags & B_MULTI_MIX_ENABLE) { PRINT(("NEW_ENABLE\n")); if (controls[i].string == S_MUTE) { - group->MakeDiscreteParameter(100 + controls[i].id, + group->MakeDiscreteParameter(100 + i, B_MEDIA_RAW_AUDIO, name, B_MUTE); } else { - group->MakeDiscreteParameter(100 + controls[i].id, + group->MakeDiscreteParameter(100 + i, B_MEDIA_RAW_AUDIO, name, B_ENABLE); } if (numParameters > 0) {