I am not all very familiar with QT, also I haven't written C++ in years(c, java primarily) but I have tried to integrate a simple qt widget into my xmms plugin unsuccessfully. I am thinking of just proxying the data from xmms into a block of shared memory and then develope a QT-CLAM app that reads the shared memory block to get the audio/control data...
<br><br>What do you think about that?<br>Ben<br><br><div><span class="gmail_quote">On 9/5/07, <b class="gmail_sendername">Pau Arumi</b> <<a href="mailto:parumi@iua.upf.edu">parumi@iua.upf.edu</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
En/na Ben Erridge ha escrit:<br>> Hello,<br>> I am trying to write a plugin for xmms which will display the<br>> keyspacemonitor for the currently playing song. xmms provides the music<br>> data in two ways<br>
> 1.)  fequency array (gint16 freq_data[2][256])<br>> 2.) PCM data<br>><br>>  From what I have found the keyspace needs a floatarraydatasource but I<br>> haven't been able to find out exactly how to construct one from the data
<br>> I have.<br><br>Hi Ben,<br>I think that is a great idea!<br><br>Keyspace widget uses a (FloatArray)DataSource polymorphic object<br>to get its data while giving flexibility to connect the widget to<br>sources of different nature, like in NetworkEditor (streaming
<br>data) and Music Annotator (offline data pool).<br><br>See in NetworkEditor/src/ProcessingBox.cxx 130:<br>CLAM::VM::KeySpace * widget = new CLAM::VM::KeySpace(canvas);<br>                widget->setDataSource(<br>*dynamic_cast<KeySpaceMonitor*>(processing) );
<br><br>Here, "processing" parameter is a PortMonitor, an object which is<br>(inherits) both a Processing and a DataSource.<br>Of course, you also need to construct a network like this:<br>AudioSource -> TonalAnalysis -> KeySpaceMonitor
<br>Like in this screenshot:<br><a href="http://iua-share.upf.es/wikis/clam/images/4/4c/NetEditQt4-PolarChromaPeaks.png">http://iua-share.upf.es/wikis/clam/images/4/4c/NetEditQt4-PolarChromaPeaks.png</a><br><br><br>Another useful tool in Clam are NetworkPlayers, which are coupled
<br>with an audio back-end such as JACK, PortAudio or LADSPA, and<br>connects the i/o buffers with the Network Sinks and Sources, and<br>finally, drives the Network execution. See for example:<br>CLAM/src/Flow/Networks/PANetworkPlayer.*xx
<br>As a first thought --though maybe I'm wrong-- it would make sense<br>to have a XmmsNetworkPlayer.<br>Another aspect to be worked out is how to integrate Qt4 widgets<br>to xmms.<br><br>> I'm hoping for some tips on the best way to approach this integration
<br>> from xmms data to data that the keyspace can use. Any help would be<br>> greatly appreciated<br>> Also if there are API docs, I haven't been able to find them and inline<br>> documentation on the source is mostly non existent.
<br><br>Web -> Doc -> API documentation:<br><a href="http://clam.iua.upf.edu/doc/CLAM-devel-doxygen/">http://clam.iua.upf.edu/doc/CLAM-devel-doxygen/</a><br><br>I suggest to move further discussion to the devel-list
<br><br>Cheers!<br>Pau<br><br>> Thanks you in advance!<br>> Ben<br><br><br></blockquote></div><br>