Phonon Five: Plugs and Sockets

Harald Sitter sitter at
Sun Nov 18 13:39:57 GMT 2012

Having done some random work on the Phonon Five API these past couple of
days, I came to realize that we probably need two rather important classes
that were not mentioned at all up until now...

MediaNodePrivate & MediaNode in Phonon 4 did not only enable the graph
building they were more importantly providing base classes for the
pluggable object (backend objects are managed/held by MediaNodePrivate) as
well as the API comprising frontend object (MediaNode).

We most likely need exactly the same for Phonon Five. Most importantly
because we most likely want to have a solid base class to have all frontend
objects hold a backend object (short of using void *).

So here's the simplest version...

class AbstractionPlug
  AbstractionSocket *qptr
  QObject *m_backendObject

class AbstractionSocket
  AbstractionPlug *dptr

With the Player class you then get:

Player : public AbstractionSocket {};
PlayerPrivate : public AbstractonPlug{};

If better names come to mind, please share ;)

Note that the current MediaNode foo also holds object destruction tech
which may be necessary for Phonon Five too (except as the API is right now,
objects are no managed at all... so I left that out ;)).

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
kde-multimedia mailing list
kde-multimedia at

More information about the kde-multimedia mailing list