<br><br><div><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">
On Wednesday 11 July 2007, Leo Franchi wrote:<br>&gt; On 7/10/07, Maximilian Kossick &lt;<a href="mailto:mkossick@gmx.de">mkossick@gmx.de</a>&gt; wrote:<br>&gt; &gt; SNIP<br>&gt; &gt;<br>&gt; &gt; &gt; &gt; So I guess the plan is to make Amarok::ContextView another formfactor
<br>&gt; &gt; &gt; &gt; (like desktop, panel, mediacenter). Does that mean we need to expend<br>&gt; &gt; &gt; &gt; some enum in plasma?<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Is there drag and drop support already? Some day I want to be able to
<br>&gt; &gt; &gt; &gt; drag plasmoids out of CV to plasma.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Do we need a data engine inside of Amarok, the same process. It seems<br>&gt; &gt; &gt; &gt; kind of strange that the CV widgets talk to Amarok through an
<br>&gt; &gt; &gt; &gt; external process.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; well, not exactly. the way you are thinking of the new contextview is<br>&gt; &gt; &gt; like simply<br>&gt; &gt; &gt; another facet of plasma, 
e.g<br>&gt; &gt; &gt; . plasma &quot;extended&quot; into amarok. thats not actually how it (currently)<br>&gt; &gt; &gt; works.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; right now i&#39;ve copied/modified the relevant source files from the
<br>&gt; &gt; &gt; plasma source tree into amarok. so we have our &quot;own&quot;<br>&gt; &gt; &gt; plasma. we will have our own plugins, with our own servicetype. now,<br>&gt; &gt; &gt; it would be cool<br>&gt; &gt; &gt; if we could just drag and drop from plasma&lt;-&gt;amarok, but that i think
<br>&gt; &gt; &gt; is something to think about in the future.&nbsp;&nbsp;we can&#39;t have amarok be<br>&gt; &gt; &gt; another<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; another formfactor of plasma for a few reasons:<br>&gt; &gt;<br>&gt; &gt; I know that there are formfactors for putting plasmoids into horizontal
<br>&gt; &gt; or vertical task bars. Amarok&#39;s context view has some space constraints<br>&gt; &gt; too. Did<br>&gt; &gt; you already investigate which plasma formfactor we should use when<br>&gt; &gt; putting stuff into the context view?
<br>&gt;<br>&gt; yes, there are form factors for plasmoids.<br>&gt; but they are not exactly applicable to us. basically, the planar form<br>&gt; factor mean you have 2 degrees of freedom (like normal). there is then<br>&gt; a mediacenter form factor which assumes tha the user is ~10ft away
<br>&gt;<br>&gt; &gt;from the screen---not exactly applicable to us. and then there is a<br>&gt;<br>&gt; horizontal/vertical form factor that constrain the applet&#39;s movement<br>&gt; in one of the two directions.<br>&gt;
<br>&gt;<br>&gt; it seems to me that we have less of a use for the formfactors than plasma<br>&gt; itself, as we don&#39;t have to deal with such a broad spectrum of use cases.<br>&gt;<br>&gt; &gt; a) we need a slightly different architecture. plasma is designed to be as
<br>&gt; &gt;<br>&gt; &gt; &gt; extensible and decentralized as possible, but we need to handle events<br>&gt; &gt;<br>&gt; &gt; like<br>&gt; &gt;<br>&gt; &gt; &gt; track changes, showHome, etc, which requires manual&nbsp;&nbsp;involvement in
<br>&gt; &gt;<br>&gt; &gt; plasma.<br>&gt; &gt;<br>&gt; &gt; &gt; and that is just one example.<br>&gt; &gt;<br>&gt; &gt; I&#39;m not sure what exactly you mean by &quot;manual involvement in plasma&quot;. can<br>&gt; &gt; you
<br>&gt; &gt; create a branch with your code so that we can have a look? Shouldn&#39;t the<br>&gt; &gt; data<br>&gt; &gt; engine be able to tell the applets to hide themselves (by applets i mean<br>&gt; &gt; the<br>&gt; &gt; stuff which draws on the screen...i&#39;m not very familiar with the plasma
<br>&gt; &gt; terminology yet). The data engine (or maybe more than one, we&#39;ll see)<br>&gt; &gt; will be<br>&gt; &gt; tightly tied to Amarok and will use our internal API, so it&#39;s not a<br>&gt; &gt; problem<br>&gt; &gt; to integrate all the events you mentioned there.
<br>&gt;<br>&gt; first of all, there is a branch :) there still isn&#39;t any of my code<br>&gt; there, because i&#39;m wrestling with svn to get all my of changes<br>&gt; registered and all that. you<br>&gt; can find it here
<br>&gt; <a href="https://svn.kde.org/home/kde/branches/work/amarok-plasmify">https://svn.kde.org/home/kde/branches/work/amarok-plasmify</a><br>&gt;<br>&gt; the biggest obstacle that i foresee right now regards the data engines. the
<br>&gt; way plasma is structures both data engines and plasmoids are KTrader<br>&gt; plugins. that means that they are separately linked applications that<br>&gt; communicate at runtime. we want to be able to have &quot;internal&quot; data engines
<br>&gt; that run in the source and have access to amarok&#39;s internals. i&#39;m still in<br>&gt; the progress of figuring out how to best implement that.<br><br>Um, no. I just checked plasma in kdebase, and both applets and data engines
<br>are just plugins. And it&#39;s no problem to link plugins to libamarok. That&#39;s<br>what i&#39;m doing for the&nbsp;&nbsp;collection plguins for example.&nbsp;</blockquote><br>you&#39;re&nbsp;most&nbsp;probably right. i&#39;ll take a look at your collection plugins to see how you&#39;re doing it. maybe&nbsp;i&nbsp;just&nbsp;don&#39;t&nbsp;get&nbsp;something&nbsp;fundamental&nbsp;about&nbsp;how&nbsp;these&nbsp;plugins&nbsp;work,&nbsp;but&nbsp;if&nbsp;we&nbsp;query
<br>&nbsp;KTrader&nbsp;for&nbsp;plugins&nbsp;that&nbsp;fulfill&nbsp;a&nbsp;certain&nbsp;constraint,&nbsp;and&nbsp;then&nbsp;tell&nbsp;KTrader&nbsp;to&nbsp;load&nbsp;one,&nbsp;how&nbsp;can&nbsp;that&nbsp;<br>plugin&nbsp;have&nbsp;access&nbsp;to&nbsp;internals&nbsp;of&nbsp;the&nbsp;currently&nbsp;running&nbsp;amarok&nbsp;instance?<br><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; b) plasma is kdebase. AFAIK we want to only link to kdelibs, as kdebase<br>&gt; &gt; is<br>&gt; &gt;<br>&gt; &gt; &gt; a pretty steep requirement, and ties us effectively to the KDE desktop.<br>&gt; &gt;<br>&gt; &gt; i
<br>&gt; &gt;<br>&gt; &gt; &gt; mean, if the user isn&#39;t running KDE, amarok should still have an<br>&gt; &gt; &gt; awesome<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; context thingie :)<br>&gt; &gt;<br>&gt; &gt; That&#39;s&nbsp;&nbsp;not a problem. For the time being, we&#39;ll keep a copy of plasma in
<br>&gt; &gt; our<br>&gt; &gt; source tree. As Aaron mentioned in the original mail of this thread, they<br>&gt; &gt; are<br>&gt; &gt; planning to move parts or all of plasma to some place outside of kdebase<br>&gt; &gt; as
<br>&gt; &gt; soon as they can guarantee BC.<br>&gt;<br>&gt; as i said in previous emails, the way it works, at least currently,,<br>&gt; is not by keeping a copy of plasma in our source tree. that would<br>&gt; entail having an svn extern entry and pulling/linking libplasma directly.
<br>&gt; this is probably the most difficult decision/compromise that we have:<br>&gt; on one hand, if we don&#39;t use plasma directly we don&#39;t keep up with plasma<br>&gt; changes and we effectively fork the parts of the code that we have. thats
<br>&gt; not good. because we lose bugfixes and features etc. (this is how it works<br>&gt; now). but on the plus side, we can customize plasma to work for us because<br>&gt; we *do* have different needs than the KDE desktop and need to have more
<br>&gt; control: case in point, with stock plasma we can only register data engines<br>&gt; and plugins via KTrader, so how do you have any data engines which run<br>&gt; internally from amarok?<br><br>see above, we can link data engine plugins to libamarok. And I don&#39;t see any
<br>other reasons for forking plasma atm. Of course, I didn&#39;t actually work on it<br>as much as you did, so I&#39;m probably missing something.&nbsp;</blockquote><br>i probably need to investigate this further. it seems to me at least that we would &nbsp;need to extend
<br>plasma&#39;s functionality to fit us. on track changes, for example, we need to notify plugins. we want to have saved<br>&quot;states&quot; of plugins, e.g. when a track ends our context area should return to how the home screen looked last.
<br> that way a user can add a plugin to the home screen and then it would be shown every time the home screen is<br> shown---and if he moves it around, that is where it will appear on the next showing of the home screen. right now
<br> that doesn&#39;t exist in plasma (because there is no use case for it). at least, i don&#39;t see anything like 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; on the other hand, we could embed libplasma for now into our source, and<br>&gt; eventually just link to libplasma once its been released. but then we run<br>&gt; into the problems i mentioned above, and it seems to me that we would need
<br>&gt; to write a considerable amount of glue code to make the two parts work ok.<br>&gt;<br>&gt; but of course there are just my opinions... i&#39;m completely open to being<br>&gt; convinced :)<br>&gt;<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></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