<br><br><div><span class="gmail_quote">On 7/11/07, <b class="gmail_sendername">Leo Franchi</b> &lt;<a href="mailto:lfranchi@gmail.com">lfranchi@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
<span class="q"><span class="gmail_quote">On 7/11/07, <b class="gmail_sendername">Maximilian Kossick</b> &lt;<a href="mailto:mkossick@gmx.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">mkossick@gmx.de
</a>&gt; wrote:</span></span><span class="q"><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 SNIP<br><br>&gt; &gt; Um, no. I just checked plasma in kdebase, and both applets and data<br>&gt; &gt; engines<br>&gt; &gt; are just plugins. And it&#39;s no problem to link plugins to libamarok.<br>&gt; &gt; That&#39;s what i&#39;m doing for the&nbsp;&nbsp;collection plguins for example. 
<br>&gt;<br>&gt; you&#39;re most probably right. i&#39;ll take a look at your collection plugins to<br>&gt; see how you&#39;re doing it.<br>&gt; maybe i just don&#39;t get something fundamental about how these plugins<br>
 &gt; work, but if we query<br>&gt;&nbsp;&nbsp;KTrader for plugins that fulfill a certain constraint, and then tell<br>&gt; KTrader to load one, how can that<br>&gt; plugin have access to internals of the currently running amarok instance? 
<br>&gt;<br>plugins are just dynamically loaded code. plugins can use any class/method<br>that is exported by libamarok using the AMAROK_EXPORT macro&nbsp;</blockquote><br></span>yep, i realized my error as soon as i actually tried it :) the lastfmevents engine does exactly that. 
<span class="q"><br><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 &gt; &gt; see above, we can link data engine plugins to libamarok. And I don&#39;t see<br>&gt; &gt; any<br>&gt; &gt; other reasons for forking plasma atm. Of course, I didn&#39;t actually work<br>&gt; &gt; on it<br>&gt; &gt; as much as you did, so I&#39;m probably missing something. 
<br>&gt;<br>&gt; i probably need to investigate this further. it seems to me at least that<br>&gt; we would&nbsp;&nbsp;need to extend<br>&gt; plasma&#39;s functionality to fit us. on track changes, for example, we need to<br>&gt; notify plugins. we want to have saved 
<br>&gt; &quot;states&quot; of plugins, e.g. when a track ends our context area should return<br>&gt; to how the home screen looked last.<br>&gt; that way a user can add a plugin to the home screen and then it would be<br>
 &gt; shown every time the home screen is<br>&gt; shown---and if he moves it around, that is where it will appear on the next<br>&gt; showing of the home screen. right now<br>&gt; that doesn&#39;t exist in plasma (because there is no use case for it). at 
<br>&gt; least, i don&#39;t see anything like that.<br>&gt;<br>Because data engines can have basically full access to all important<br>components of libamarok, it&#39;s no problem to make them EngineObservers or<br>TrackObservers and notify the applets if the underlying data changes( 
<br>assuming data engines can notify applets, otherwise the applets would have to<br>poll)</blockquote></span><div><br>true&nbsp;:)&nbsp;</div><span class="q"><br><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 I&#39;m not sure how to save and restore the contents and layout of the context<br>view. I suppose there&#39;s some support for it in plasma because it&#39;s probably<br>able to restore the layout of the desktop after a reboot. We probably need to 
<br>talk to the plasma guys about this if we can&#39;t figure out a way to do it<br>ourselves. still, i think forking plasma should be the *very* last resort.<br>And i&#39;m pretty sure we&#39;ll be able to get some support for this from the 
<br>plasma guys if we ask nicely :)</blockquote></span></blockquote><div><br>so&nbsp;i&nbsp;went&nbsp;ahead&nbsp;and&nbsp;tried&nbsp;to&nbsp;import&nbsp;plasma&nbsp;with&nbsp;an&nbsp;svn&nbsp;extern&nbsp;entry&nbsp;and&nbsp;link&nbsp;to&nbsp;it&nbsp;as&nbsp;a&nbsp;shared&nbsp;library,&nbsp;but&nbsp;i&#39;m&nbsp;running&nbsp;into&nbsp;issues&nbsp;re-implementing&nbsp;what&nbsp;i&nbsp;need.&nbsp;for&nbsp;example,&nbsp;at&nbsp;the&nbsp;least,&nbsp;we&nbsp;need&nbsp;to&nbsp;reimplement&nbsp;the&nbsp;parts&nbsp;where&nbsp;it&nbsp;looks&nbsp;for&nbsp;plasma&nbsp;widgets,&nbsp;
e.g.&nbsp;when&nbsp;it&nbsp;specifies&nbsp;the&nbsp;KTrader&nbsp;type&nbsp;Plasma/Applet&nbsp;for&nbsp;example.&nbsp;the&nbsp;problem&nbsp;is&nbsp;that,&nbsp;as&nbsp;some&nbsp;of&nbsp;the&nbsp;functions&nbsp;that&nbsp;do&nbsp;this&nbsp;rely&nbsp;on&nbsp;private&nbsp;object&nbsp;data,&nbsp;subclassing&nbsp;and&nbsp;reimplementing&nbsp;does&nbsp;not&nbsp;work.&nbsp;<br><br>one&nbsp;option&nbsp;would&nbsp;be&nbsp;to&nbsp;talk&nbsp;to&nbsp;the&nbsp;plasma&nbsp;guys&nbsp;and&nbsp;get&nbsp;them&nbsp;to&nbsp;abstract&nbsp;the&nbsp;code&nbsp;a&nbsp;little&nbsp;more&nbsp;so&nbsp;we&nbsp;could specify the plugin type etc.
<br><br>leo<br></div><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
<blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 SNIP<br><br><br>_______________________________________________<span class="q"><br>Amarok-devel mailing list<br><a href="mailto:Amarok-devel@kde.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Amarok-devel@kde.org</a><br><a href="https://mail.kde.org/mailman/listinfo/amarok-devel" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> https://mail.kde.org/mailman/listinfo/amarok-devel</a><br><br>
<br></span></blockquote><div><span class="e" id="q_113b5a5c5e8ce730_9"><br><br clear="all"><br>-- <br>______________________________________________________<br>Leo Franchi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:angel666@myrealbox.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
 angel666@myrealbox.com</a><br>4305 Charlemagne Ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:lfranchi@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">lfranchi@gmail.com</a> <br>Austin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell: (650) 704 3680
<br>TX, USA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;home: (650) 329 0125  </span></div></blockquote></div><br><br clear="all"><br>-- <br>______________________________________________________<br>Leo Franchi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:angel666@myrealbox.com">
angel666@myrealbox.com</a><br>4305 Charlemagne Ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:lfranchi@gmail.com">lfranchi@gmail.com</a> <br>Austin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell: (650) 704 3680<br>TX, USA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;home: (650) 329 0125