Latest WACUP public preview for x86 & x64 is build #20202 (September 28th 2024) (x86 & x64 changelogs)
Latest restricted WACUP beta release is build #20202 (September 28th 2024) (x86 & x64 changelogs)


NOTE: Beta testers are added in a limited & subjective manner as I can only support so many people as part of the beta test program to keep it useful for my needs.

Unless I think you're going to be helpful, not all requests will be accepted but might still be later on. Remember that beta testing is to help me & the limitations currently works for my needs for this project.

Author Topic: plugin development ressources  (Read 8273 times)

Benco

  • Beta Tester
  • Sr. Member
  • ****
  • Posts: 41
    • 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
  • *****
  • Posts: 4768
    • 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
  • Sr. Member
  • ****
  • Posts: 41
    • 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
  • *****
  • Posts: 4768
    • 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
  • Sr. Member
  • ****
  • Posts: 41
    • 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
  • Sr. Member
  • ****
  • Posts: 41
    • 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
  • *****
  • Posts: 4768
    • 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
  • Sr. Member
  • ****
  • Posts: 41
    • 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
  • *****
  • Posts: 4768
    • 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
  • Sr. Member
  • ****
  • Posts: 41
    • 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!

Benco

  • Beta Tester
  • Sr. Member
  • ****
  • Posts: 41
    • View Profile
Re: plugin development ressources
« Reply #10 on: March 08, 2020, 12:22:04 PM »
Hi DrO,

is there any chance you found time to work on this?

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 4768
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #11 on: March 10, 2020, 01:13:13 PM »
Am getting it sorted out later this week now the dust is settling on the builds.

-dro

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 4768
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #12 on: March 16, 2020, 03:34:38 PM »
You've got mail.

-dro

WackaMold

  • Beta Tester
  • Full Member
  • ***
  • Posts: 23
    • View Profile
Re: plugin development ressources
« Reply #13 on: December 10, 2021, 09:29:13 PM »
Any update on this? I'm ready to look into making a plugin, so a blank project is necessary. Do you know where any how-to is posted?

Goals:
 - restore the ability to export + update + re-import the music library. This is to correct wrong playcounts or playdates etc.
 - learn how plugins are developed

Basic info needed before even trying to get started:
 - what compiler / IDE to installs
 - what dependencies to download

dro

  • Admin / WACUP Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 4768
    • View Profile
    • WACUP (Winamp Community Update Project)
Re: plugin development ressources
« Reply #14 on: December 10, 2021, 10:10:12 PM »
The old Winamp SDKs included the very minimum basics of what different plug-in types would be like but as things are still in flux I've not provided anything towards doing wacup specific versions & tbqh it's low on my list vs doing wacup coding (probably a mistake but I just don't have the time to prepare such things as it stands).

Compiler/IDE is completely dependent on the language as various ones can technically be used though I've only used c/c++ but I know that delphi/pascal/vb/c#/some others have been used over the years to make winamp plug-ins.

As for the goals, there might have been a basic example for exporting in one of the sdks but I need to note that it's something that is going to be added into the replacement local library plug-in & it's already present in history plug-in to allow for the changing of the playcount (the played date isn't something that's currently editable & probably is something I need to think about adding).

tl;dr: dev resources is a mess, try what you want to, some things are already on the todo list.

-dro
« Last Edit: December 10, 2021, 10:11:00 PM by dro »