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 <mailto: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
    <mailto: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 <mailto: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
            <mailto: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

------------------------------------------------------------------------------
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

Reply via email to