Hi Daniel,
Why would adding support for commercial services not fit to Mixxx's FOSS
nature? Would you plan to use proprietary code? I don't see any conflict
with adding support to cloud services into Mixxx itself -- we've had user
requests for this for years.
Before we jump into pros and cons of QPluginLoader vs roll our own, I think
we still haven't resolved why a plugin system is necessary. I think this
would introduce significant technical complexity where there was previously
none for reasons that are speculative. This GSoC project is already hard
enough without this added challenge! It also makes me very nervous to hear
that LibraryFeatures will no longer be created by the Library class. Making
things more modular / independent than they already are is surely a plus,
but I think you can do that and we can enforce boundaries via intra-binary
C++ and code review, not via an ABI.
On Mon, Jun 27, 2016, 3:20 PM Daniel Schürmann <dasch...@mixxx.org> wrote:
> Hi RJ, Hi Joan, Hi Mixxx-Developers,
>
> here some background info:
>
> this week of Joans GSoC project is dedicated to polishing the written code
> for the fist Master pull request.
> It works already very nice, but it's code is not quite easy to understand
> and to maintain. This is currently
> improved by Joan, required to be prepared for the second half of the
> project and cool new Library features.
>
> The Library should also be prepared to show views of commercial online
> services like Mixcloude and Spotify.
> These are highly requested extensions, but itself not part of Joan's
> project.
> Since they do not fit quite well to the FOSS nature of Mixxx, we cannot
> distribute such features as part of a standard
> Mixxx installation, but we can allow to add them later as Plug-In.
>
> That's the reason why Joan evaluates Plug-In solution. It is not decided
> if Mixxx actually will get such a Plug-In
> interface or not. In any case we want to make sure that It is not hard to
> introduce a Plug-In API later.
>
> Two solutions are good candidates, the QPlugInLoader or a custom solution,
> based on the SoundSource PlugIn API.
> The later was recently polished by Uwe, who has took most of the pain from
> it.
>
> What are the pros and cons of both solutions?
> Has one experience with the QPlugInLoader?
>
> Any comment or Idea is welcome.
>
> Thank you
>
> Kind regards
>
> Daniel
>
>
>
>
>
> Am 27.06.2016 um 19:08 schrieb RJ Ryan:
>
>
> On Mon, Jun 27, 2016 at 9:57 AM, Joan Marcè i Igual <
> j.marce.ig...@gmail.com> wrote:
>
>> Hi RJ,
>> the current idea that we thought with Daniel is to separate each
>> LibraryFeature into a plugin that can be loaded when needed (e.g. Rhythmbox
>> plugin does not have to be loaded always). and only interact with the
>> features via the LibraryFeature interface. This will allow us to do a more
>> cleaner code too.
>>
>
> By "does not have to be loaded" -- do you mean that there is some cost to
> instantiation of the features that you would like to avoid?
>
> By and large, the Library already interacts with LibraryFeatures primarily
> via the LibraryFeature interface. In the cases where it doesn't -- there is
> usually good reason (i.e. it needs to know that it's talking to the feature
> of a specific kind -- e.g. when connecting feature-specific signals).
> Looking at library.cpp, there is very little special-casing.
>
> I think Qt plugins here would only make sense if we wanted to make the
> library extensible by third parties. There is a significant trade-off in
> additional complexity introduced by introducing a plugin API. If we intend
> to support backwards/forwards compatibility, we would need to worry ABI/API
> compatibility. We have a lot of painful experience with this via
> SoundSource and VAMP plugins. I am trying to remove both of these plugin
> APIs and I would prefer that we not introduce another.
>
> Best regards,
> RJ
>
>
>> I once saw my professors use the Qt plugins and it seemed easy so that's
>> why am asking.
>>
>> Best regards,
>> Joan
>>
>> On Mon, 27 Jun 2016 at 18:50 RJ Ryan <rr...@mixxx.org> wrote:
>>
>>> Hi Joan,
>>>
>>> Could you explain a little bit what Qt plugins would help you do here
>>> that you're having trouble doing with pure C++?
>>>
>>> Why do you need to separate LibaryFeatures from the library?
>>>
>>> Best regards
>>> RJ
>>>
>>> On Mon, Jun 27, 2016 at 9:46 AM, Joan Marcè i Igual <
>>> j.marce.ig...@gmail.com> wrote:
>>>
>>>> Hello everyone,
>>>>
>>>> I'm currently working in the Library Layout Redesign and one of the
>>>> things that I'm doing is changing many Library's class code. One thing that
>>>> is pending from long time ago is to separate the LibraryFeatures from the
>>>> Library (avoid using all the LibraryFeatures' constructors) and to do this
>>>> I thought in using the Qt Plugins feature. Has anyone experience with it?
>>>> Will it be a benefit or a detriment?
>>>>
>>>> I will be waiting for your answer,
>>>> Joan
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
>>>> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
>>>> present their vision of the future. This family event has something for
>>>> everyone, including kids. Get more information and register today.
>>>> http://sdm.link/attshape
>>>> _______________________________________________
>>>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>>> http://mixxx.org
>>>>
>>>>
>>>> Mixxx-devel mailing list
>>>> Mixxx-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>>
>>>
>>>
>
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register
> today.http://sdm.link/attshape
>
>
>
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Todayhttp://mixxx.org
>
>
> Mixxx-devel mailing
> listMixxx-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/mixxx-devel
>
>
>
> ------------------------------------------------------------------------------
> Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
> Francisco, CA to explore cutting-edge tech and listen to tech luminaries
> present their vision of the future. This family event has something for
> everyone, including kids. Get more information and register today.
> http://sdm.link/attshape_______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
>
>
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel