plugin development ressources

  • 9 Replies
  • 411 Views
*

Benco

  • Beta Tester
  • Newbie
  • *
  • 20
    • View Profile
plugin development ressources
« on: December 29, 2019, 11:33:46 AM »
Hi,

I plan on developping a winamp plugin, and found this resource:
http://wiki.winamp.com/wiki/Plug-in_Developer

Is it up to date?
And do you know any forum where I could get some help? I'm new to win32 dev, and I guess it will be hard at the beginnning...

Thanks!
« Last Edit: December 29, 2019, 11:49:39 AM by Benco »

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 2008
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #1 on: January 06, 2020, 03:23:48 PM »
Apologies for the delay in replying.

I never found that aspect of the wiki all that helpful. Depending on the type of plug-in you're looking to make it's often much better to have a look at an existing plug-in to get a better idea otherwise some of the older Winamp SDK's included a selection of simpler examples that might also help.

You can ask on here or drop me an email or get on the discord & that might be quicker to help with programming related questions.

-dro

*

Benco

  • Beta Tester
  • Newbie
  • *
  • 20
    • View Profile
Re: plugin development ressources
« Reply #2 on: January 06, 2020, 03:37:12 PM »
Hi DrO,

Best wishes for the new year. Don't worry about the delay, I figured out that, posting between Christmas and new year's eve, I wouldn't get a reply right away ;)

I want to create a plugin that exports all media library playists to a specific network location, and update them whenever there's a change in them. I own a Synology NAS, and my goal is to integrate ML playlists to the DS Audio application. I'm currently working on the NAS side (found out how to integrate a playlist into DS Audio, but not how to pin it on the homepage). What IDE would you recommand, between Visual Studio 2017 and Code::Blocks?

Thanks for your help!

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 2008
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #3 on: January 06, 2020, 04:00:07 PM »
I've not used Code::Blocks in over a decade & only briefly so at the time so it might have to be Visual Studio (really depends on what's needed for the NAS side unless you're just focusing on the plug-in side of things). Though that would allow you to make use of the VS2017 runtime that's shipped with WACUP to help keep the size of the dll & related distributables to a minimum (which is always nice).
I am wondering if there's something I can do from my side that might help you out as it wouldn't be too hard for me to add a command-line option to export the library playlists to a folder (as long as it can be accessed via normal path handling methods) & likewise copying them back but it's more about the files that the playlists relate to that can be the issue depending upon the direction of file transfer.

-dro

*

Benco

  • Beta Tester
  • Newbie
  • *
  • 20
    • View Profile
Re: plugin development ressources
« Reply #4 on: January 08, 2020, 01:06:57 PM »
Thanks for the offer. I don't think adding a command line would be enough, since I want to update the exported playlists as soon as the ML playlist is modified. Plus that's a good start for learning Winamp plugin development, which I wanted to do for some years now ;)

On the NAS side, there is not much to do, since all I need is to upload the m3u file on a known location using ssh. I guess that part is easy. More complicated part would be the event management.

*

Benco

  • Beta Tester
  • Newbie
  • *
  • 20
    • View Profile
Re: plugin development ressources
« Reply #5 on: January 13, 2020, 10:10:02 AM »
Hi,

I didn't manage to find an empty ML plugin that I could compile. The only ML plugin source that I found (included in the Winamp SDK) doesn't work, at least on my environment. It's the ML_XMLEX plugin. Could someone provide me with an empty ML plugin project for VS 2017?

Many thanks!

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 2008
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #6 on: January 14, 2020, 07:58:11 PM »
Before I attempt to sort out an example project (ml_xmlex not compiling isn't too surprising due to its age & the SDK being a mess though it's also fairly basic for a ml_* plug-in), you might not need your plug-in to be ml_*.dll but it can instead have it be a gen_*.dll.

As it really depends on the type of integration that you're aiming for but due to how things work a gen_*.dll can still add itself into the library window (is how the cd ripping is done from an input plug-in & the queue manager view from the JTFE plug-in which is a gen_*.dll) plus the library playlists & what you see is more of just a view of the underlying api that is used to get & manage them which works for any type of plug-in).

-dro

*

Benco

  • Beta Tester
  • Newbie
  • *
  • 20
    • View Profile
Re: plugin development ressources
« Reply #7 on: January 15, 2020, 10:51:29 AM »
What I basically need is to be able to link a method to the events corresponding to the user creating/changing/deleting a library playlist. So if that can be done as a general plugin, that's ok, I already have an empty general plugin that compiles.

*

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • 2008
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #8 on: January 27, 2020, 03:54:09 PM »
If you want to dig into it than wait for me to sort out a (hopefully) working example, you'll need to create a derived WASABI based SysCallback class which is then registered via WASABI_API_SYSCB. Within that registered calback, api_playlists.h (sometimes also named ifc_playlists.h) has some enums to use (e.g. PLAYLIST_ADDED, PLAYLIST_RENAMED & so on) to determine the action & what parameter info you'll be getting.

I've not looked if there's any obvious 3rd party examples out there or in the older SDKs to work with so it might be simpler for me to just give a working example once I've got a new beta build out (it's been dragging on too long now without one).

-dro

*

Benco

  • Beta Tester
  • Newbie
  • *
  • 20
    • View Profile
Re: plugin development ressources
« Reply #9 on: January 27, 2020, 04:34:24 PM »
Wow that would be really nice of you. Thanks a lot!