Gates for non-linear scheduling
2012-12-04


Currently, SwitchMan only allows linear scheduling of master modes.

o---->o---->o---->o---->o---->o---->o---->o


However, it would be more general to allow non-linear scheduling like this:


o---->o---->o---->o---->o---->o---->o---->o
       \
        \
         \
          ->o---->o---->o---->o---->o---->o


Or like this:


o---->o---->o---->o---->o---->o---->o---->o
       \                           /
        \                         /
         \                       /
          ->o---->o---->o---->o---->o---->o


The current way of setting the next master mode for a current master mode is:

	void ComputeCore::setMasterModeNextMasterMode(PluginHandle plugin,MasterMode mode,MasterMode next);

So the new prototype is still:

	void CompureCore::setMasterModeNextMasterMode(PluginHandle plugin,MasterMode mode,MasterMode next);

But there is this new method (called somewhere where the decision is made):

	void CompureCore::setSelectNextMasterMode(PluginHandle plugin,MasterMode masterMode, MasterMode selectedNextMasterMode);

