Re: [jokosher-devel] Modifying a pipeling while in PLAYING state



Lukas wrote:
 Also what's going to happen to the
GP.

The GP is being scrapped. It doesn't do anything except change the state, but we now have a way around that.

I still think its a good idea to have all the pipeline code in one
spot, to keep things organised and such.

This is kinda hard to do. Having *all* the pipeline code in the same spot would mean combining instruments, events, effects, playback and recording all in one class. That would be a little much.

As for putting all the pipeline state changes in one place, they are already supposed to be. Only Project.play(), Project.record(), Project.stop() and TransportManager.play() should change the pipeline state. Everyone else should learn to deal with a pipeline in any state.

What we really have to do is start enforcing a pipeline policy, and review everyone else's patches to make sure they keep it. So far our tentative policy is everything should expect the pipeline to be in PAUSED or PLAYING (they're basically the same thing) but still be able to handle the occasional READY. This means:

1) The pipeline must always be in a playable state. If you unlink something, immediately link it to something else. Currently we do a whole lot of preparation for playing in Project.play() which will no longer work. 2) Whenever you unlink two elements, you must block the pad first so it doesn't complain about a non linking error. I still have to figure out the details of this, but it should be something like pad.set_blocked(True).

Laszlo



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]