<span class="gmail_quote">On 7/11/07, <b class="gmail_sendername">Maximilian Kossick</b> &lt;<a href="mailto:mkossick@gmx.de">mkossick@gmx.de</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">
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>yep, i realized my error as soon as i actually tried it :) the lastfmevents engine does exactly that.
<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><div><br>true&nbsp;:)&nbsp;</div><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><div><br>this&nbsp;is&nbsp;a&nbsp;good&nbsp;point.&nbsp;on&nbsp;the&nbsp;other&nbsp;hand.&nbsp;all&nbsp;of&nbsp;the&nbsp;work&nbsp;up&nbsp;to&nbsp;now&nbsp;has&nbsp;taken&nbsp;me exactly 2.5 days (or is it 3.5, i lost track), of maybe 6 hours a day. its not that much work to throw away if we decide to go with the linking strategy. and as now i&#39;m writing engines/applets, this is useful for either decision.
<br><br>what i mean is i don&#39;t think i need to &nbsp;halt what i&#39;m doing until we have this figured out, but we can play it by ear as we go along. <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">
SNIP<br><br><br>_______________________________________________<br>Amarok-devel mailing list<br><a href="mailto:Amarok-devel@kde.org">Amarok-devel@kde.org</a><br><a href="https://mail.kde.org/mailman/listinfo/amarok-devel">
https://mail.kde.org/mailman/listinfo/amarok-devel</a><br><br><br></blockquote><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