* 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:
@@ -103,6 +103,17 @@ VolumeControl::AttachedToWindow()
|
|||||||
BSlider::AttachedToWindow();
|
BSlider::AttachedToWindow();
|
||||||
|
|
||||||
SetEventMask(_IsReplicant() ? 0 : B_POINTER_EVENTS, B_NO_POINTER_HISTORY);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case B_MEDIA_NEW_PARAMETER_VALUE:
|
||||||
|
if (IsTracking())
|
||||||
|
break;
|
||||||
|
|
||||||
|
SetValue((int32)fMixerControl->Volume());
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return BView::MessageReceived(msg);
|
return BView::MessageReceived(msg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void AttachedToWindow();
|
virtual void AttachedToWindow();
|
||||||
|
virtual void DetachedFromWindow();
|
||||||
virtual void MouseDown(BPoint where);
|
virtual void MouseDown(BPoint where);
|
||||||
virtual void MessageReceived(BMessage* message);
|
virtual void MessageReceived(BMessage* message);
|
||||||
virtual status_t Invoke(BMessage* message = NULL);
|
virtual status_t Invoke(BMessage* message = NULL);
|
||||||
|
|||||||
Reference in New Issue
Block a user