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...<div><br></div><div>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).</div>
<div><br></div><div>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 *).</div>
<div><br></div><div>So here's the simplest version...</div><div><br></div><div>class AbstractionPlug</div><div> AbstractionSocket *qptr</div><div> QObject *m_backendObject</div><div><br></div><div>class AbstractionSocket</div>
<div> AbstractionPlug *dptr</div><div><br></div><div>With the Player class you then get:</div><div><br></div><div>Player : public AbstractionSocket {};</div><div>PlayerPrivate : public AbstractonPlug{};</div><div><br></div>
<div>If better names come to mind, please share ;)</div><div><br></div><div>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 ;)).</div>
<div><br></div><div>HS</div>