* The volume now listens to parameter changes, and adapts itself automatically.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30061 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2009-04-09 11:26:19 +00:00
parent 3d2abd1bc8
commit bc608ebf93
2 changed files with 19 additions and 0 deletions

View File

@ -103,6 +103,17 @@ VolumeControl::AttachedToWindow()
BSlider::AttachedToWindow();
SetEventMask(_IsReplicant() ? 0 : B_POINTER_EVENTS, B_NO_POINTER_HISTORY);
BMediaRoster::CurrentRoster()->StartWatching(this,
fMixerControl->GainNode(), B_MEDIA_NEW_PARAMETER_VALUE);
}
void
VolumeControl::DetachedFromWindow()
{
BMediaRoster::CurrentRoster()->StopWatching(this, fMixerControl->GainNode(),
B_MEDIA_NEW_PARAMETER_VALUE);
}
@ -164,6 +175,13 @@ VolumeControl::MessageReceived(BMessage* msg)
break;
}
case B_MEDIA_NEW_PARAMETER_VALUE:
if (IsTracking())
break;
SetValue((int32)fMixerControl->Volume());
break;
default:
return BView::MessageReceived(msg);
}

View File

@ -28,6 +28,7 @@ public:
protected:
virtual void AttachedToWindow();
virtual void DetachedFromWindow();
virtual void MouseDown(BPoint where);
virtual void MessageReceived(BMessage* message);
virtual status_t Invoke(BMessage* message = NULL);