[openbeosmediakit] Re: BroadcastNewParameterValue - issues, solutions?

  • From: "David Shipman" <unlyrn@xxxxxxxxxxxxxxx>
  • To: openbeosmediakit@xxxxxxxxxxxxx
  • Date: Fri, 23 Aug 2002 15:30:15 NZST (+1200)

Hi Marcus,

> I *assume* that the BView that is presenting the controls
> (which is the defualt BMediaTheme) uses BMediaRoster::StartWatching
> to be notified when someone calls BroadcastNewParameterValue.

This is correct... it is sent as B=5FMEDIA=5FNEW=5FPARAMETER=5FVALUE
message (although usually the view would be using a wildcard to receive
other ParameterWeb updates).

> > Only nodes that implement BroadcastNewParameterValue() in their 
> > SetParameterValue function update correctly - Be's Audio Mixer is 
> > an 
> > example of one such node.
> Can you explain this a little more=3D3F Who does call the 
> SetParameterValue=3F
> Is it the media theme=3F

SetParameterValue gets called directly when you move controls in a
BMediaTheme generated BView - you can also call it externally if you 
want, 
so its important that the notification happens regardless. 
I suspect that the default media theme also calls the function when it
receives a NewParameterValue notification. What it should be doing is 
just redrawing the display (calling Invalidate() on the control's 
view);

Since I'm playing around with controls and control data a lot at the 
moment
(expect an announcement soon), I'll put together a simple media theme
and see whats actually happening.
 
> [snip].... A thread in the server 
> then does the sending of events to all different notifiers 
> (applications)
> that are monitoring the events.
> The advantage is that the node causing the notification will not be
> stalled because of some slow recevier. Of cause, this may/will 
> slightly
> delay notification messages.

As I mentioned above - if the messages are only for display purposes,
this shouldn't be too much of an issue. Real changes in control values 
=5Fmust=5F be processed quickly tho.

At any rate, I'll let you know what happens with the theme, hopefully
its as simple as a redraw instead of SetValue.

Thanks,
David Shipman


Other related posts: