Before the MTF meeting in Berlin, I'd like to raise a couple of
issues concerning the context changing elementary actions (Launch,
Quit,TransitionTo and Spawn).
1. When exactly is the context change said to occur? I assume it
is the point after destruction of a group and before preparation
of another group. However, I can't find a definition anywhere.
Perhaps a new entry in section 3, Terms and Definitions?
2. Why do asynchronous events after the context change get cleared
after the elementary action, and not those before? This makes the
MHEG event handling more complex, and I can't see what good it does.
Wouldn't simply flushing the event queue be simpler and more
predictable?
3. By section 53.3 para 4, synchronous events generated in the
destruction phase of context changing operations are not processed
until after the new group has been activated. This means that
IsStopped and IsDeleted events can never trigger links in their
own scene (all links are deactivated by this point), but they might
inadvertantly trigger links in the target scene for completely
different objects. This seems broken to me. Wouldn't it be better to
process any pending synchronous events before preparation of the
new group?
4. What use is the IsDeleted event? I can see IsStopped being used
for Presentables and Links that are deactivated during a scene,
but IsDeleted only occurs on destruction (i.e. at a context change),
when Links will not be fired (see above).
5. We could avoid some of these problems by establishing action lists
at synchronous event *generation* not at processing. I mean that the
Links to fire on a synchronous event are evaluated as the event occurs.
Links that would be deactivated during the action would still be
fired. This is probably a common implementation optimisation anyway,
as it removes the need for a short-lived synchronous event queue, but
it seems to contradict 53.3 paragraph 4.
Does anyone have an opinion on these points?
Regards,
-- ----------------------------------------------------------------- Richard Houldsworth, Software Engineer, Philips Research Laboratories, Redhill, Daytime phone number: +44 (0)1293 815052 RH1 5HA E-mail: richardh@prl.research.philips.com