Plugin system

Bug #279503 reported by Vitaliy Okulov on 2008-10-07
2
Affects Status Importance Assigned to Milestone
LinuxDC++
Wishlist
Unassigned
Nominated for Trunk by Vitaliy Okulov
1.1
Undecided
Unassigned

Bug Description

Please add intergration with music players, like audacious.

Razzloss (razzloss) wrote :

Not likely to happen. Unless some sort of plugin system is implemented. Then features like this can be implemented without cluttering and bloating the main program.

--RZ
.... hrmh plugin system... where did I put that damn prototype...

Vitaliy Okulov (vitaliy-okulov) wrote :

Plugin system will be very usefull.

Steven Sheehy (steven-sheehy) wrote :

A plugin system would be nice. If someone wants to take it, I recommend they look at glib's gmodule functionality.

Changed in linuxdcpp:
importance: Undecided → Wishlist
status: New → Confirmed
Vitaliy Okulov (vitaliy-okulov) wrote :

I think plugin interface must be some kind of wrapper over high level languages, python, perl, lua, etc.

lys (lys) wrote :

allready implimented by curse in his mod of this client, see http://www.crzdc.net/

Vitaliy Okulov (vitaliy-okulov) wrote :

Domain www.crzdc.net not found. Or it`s spam? +)

Steven Sheehy (steven-sheehy) wrote :

I've looked at crzdc's implementation of a plugin system before and was not impressed. They basically invoke a shell script and print its output to chat. It is highly insecure and not very flexible. I would like to see a plugin system using gobject or possibly python scripts.

tags: added: plugin
Steven Sheehy (steven-sheehy) wrote :

Characteristics that a plug-in system must have (notes to myself or anyone else that wants to implement it):

- Load plug-ins from a directory in the user's home (e.g. ~/.dc++/plugins/) for user-added plug-ins
- Load plug-ins from the installed prefix (e.g. /usr/share/linuxdcpp/plugins) so we can ship some plug-ins with the program
- Use gmodule to load the plug-ins dynamically from either directory, user plug-ins overriding shipped plug-ins
- Create an interface that plug-ins would have to implement
- Support C++ plug-ins
- Possibly support python plug-ins in addition to C++
- Allow for dynamic replacement of UI elements like menu items (this will require conversion of glade files to GtkBuilder files and thus a minimum of 2.12 for GTK+)
- Support versioning of plug-ins
- For additional ideas see http://www.nuclex.org/articles/building-a-better-plugin-architecture

Any other ideas feel free to add them here.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers