14.8. Summary

What KDE 2.0 offers in the multimedia section is more than a few convenient classes. It is way of doing things. After reading this chapter, you should have an impression of how the parts interact and how MCOP helps in solving multimedia tasks.

Next, I'll summarize, in four levels, the key features that were mentioned in this chapter.

The highest level is the theoretical point of view. All multimedia tasks are somehow flow graphs using small modules.

Then, you can look at it from an application level. I am writing an application. What do I need to know? Talking to interfaces, creating and connecting modules, connecting to the soundserver, and similar things are relevant here.

One level below, interfaces themselves become interesting. One side is which standard interfaces does aRts/MCOP provide, and how are they useful? Some important interfaces are the SimpleSoundServer interface, the StereoEffect/StereoEffectStack, and KMedia2 with the PlayObjects.

The other side is the interface definition language itself, IDL, and its interaction with mcopidl. Interfaces in MCOP are oriented toward multimedia. Specifying streams directly in the interface, and thus allowing MCOP to deal with them, is one of the important ways to get the flow graph concept really done nicely.

Finally, the lowest level is implementing the interfaces. After writing the StereoBalanceControl implementation, you should have an impression of how writing the small modules that implement the interfaces in C++ works. The relevant aspects of streaming here are the initialization, the calculateBlock function when you do synchronous streaming, or their equivalents in the case of asynchronous streaming.