Skip to content
⌘ NSIS Forum Archive

WAInfo NSIS Plugin

19 posts

Pawel#edited

WAInfo NSIS Plugin

I created a plugin for NSIS. It is called WAInfo

WAInfo plugin for NSIS provides a set of functions to get basic info about Winamp Media Player. It can be useful for Winamp add-ons creators (skins, plugins, etc). You can check Winamp related info to be able to install Winamp Plugins/Skins/Icon Packs/Color Themes/Lang packs, etc into proper directory.

Name: WAInfo 2.1
License: Freeware
Min. OS: Win7
Min. NSIS: 3.0 (Win32/Win64 Unicode)

Current version of plugin (tested with NSIS 3.8) allows you to get information about most important Winamp Directories and Configuration Files, information about Winamp Version, information about current (default) Winamp Plugins (Output, Visualisation and DSP/Effects) or components (Language Pack, Skin, Icon Pack, TrayIcon Pack.
Additionaly, you can also set default Winamp Plugin (Output, Visualisation and DSP/Effects) and detect (and Close) any running Winamp instances (from Winamp Installation Directory).

INFORMATION AND DOWNLOAD: WAInfo 2.1

More information and example usage of all supported functions can be found in demo script (WAInfoDemo.nsi) included in plugin zip package.

-Pawel
thinktink#
VERY nice.

I wonder if it would be possible for the plugin to detect if a file is in use by one or more running instances of Winamp with the ability to gracefully close the affecting instances for install?
Anders#
Originally Posted by thinktink View Post
...detect if a file is in use by one or more running instances...
https://nsis.sourceforge.io/LockedList_plug-in
Pawel#
Yeah... This is information plugin... However, it can be done.
As @Anders said, there is a great plugin for that.

First, I need to finish plugin website page.
Then I will add similar functionality (plugin will check all Winamp running instances and close that one from given path (Winamp Installation Directory) - so, we will close only target Winamp, not others.
thinktink#edited
Originally Posted by Anders View Post
Thank you. Getting ready to update a plugin so I have a reason to check this out now.


Originally Posted by Pawel View Post
Yeah... This is information plugin... However, it can be done.
As @Anders said, there is a great plugin for that.

First, I need to finish plugin website page.
Then I will add similar functionality (plugin will check all Winamp running instances and close that one from given path (Winamp Installation Directory) - so, we will close only target Winamp, not others.
Since a number of my plugins are intended for use by streamers I just want to make sure that an option to abort the install/update exists in case a user is unable or unwilling to update while they're streaming or to put it off for a more convenient time.
thinktink#
So I just tested WAInfo. The WAInfoDemo.nsi file clearly indicates that the minimum supported OS is Windows 7 ("Minimum OS: Win7") but it still seems to work fine on Windows XP. Are there any actual incompatibilities with Windows XP or are you just deciding not to support XP officially?
Pawel#
I didn't test it on XP and older. It should work, however I use some functions (to detect non-standard Winamp Installation Directory) that might not be present on XP (would have to check it).

The following functions (I think minimum is XP):
SHGetSpecialFolderPath
GetEnvironmentVariable
thinktink#
Originally Posted by Pawel View Post
I didn't test it on XP and older. It should work, however I use some functions (to detect non-standard Winamp Installation Directory) that might not be present on XP (would have to check it).

The following functions (I think minimum is XP):
SHGetSpecialFolderPath
GetEnvironmentVariable
Makes sense.

So far it seems to be working fine on XP and Win10. Tested with multiple installation paths as selected by the user.
Anders#
Originally Posted by Pawel View Post
The following functions (I think minimum is XP):
You can't trust MSDN.

SHGetSpecialFolderPath: IE4 or IE5
GetEnvironmentVariable: All versions
Yathosho#
Originally Posted by Pawel View Post
Winamp Paths.ini Configuration File
This function allows You to get Winamp paths.ini configuration file (it allows you to read Winamp Configuration Files Directory).

Winamp Configuration Files Directory
This function allows You to get Winamp Configuration Files Directory (this directory stores all Winamp configuration files and plugins settings).
Does this map the paths inside paths.ini to something more meaningful? For example, it uses {26} as a "placeholder" for %APPDATA%. So will this return $APPDATA or the expanded equivalent?
Pawel#
It returns final directory.
{26} --> %APPDATA% --> C:\Users\YOUR_LOGIN\AppData\Roaming\Winamp
Pawel#
I am going to add few other info to the plugin.
- Winamp Version Information (file version, product version, copyright, company etc...)
- Some basic info like Current Output Plugin/Vis Plugin/DSP Plugin
- Current Language Pack
- Current Skin

I think I will also add simple function to detect if Winamp instance is running.
I know, LockedList plugin by Stu is great (also with interface mode), but I can detect only Winamp Process (from installation directory). Plugin will display message with question what to do - for example. Ignere, Kill or Abort.
thinktink#
Originally Posted by Pawel View Post
I am going to add few other info to the plugin.
- Winamp Version Information (file version, product version, copyright, company etc...)
- Some basic info like Current Output Plugin/Vis Plugin/DSP Plugin
- Current Language Pack
- Current Skin

I think I will also add simple function to detect if Winamp instance is running.
I know, LockedList plugin by Stu is great (also with interface mode), but I can detect only Winamp Process (from installation directory). Plugin will display message with question what to do - for example. Ignere, Kill or Abort.
I would say continue on with the ability to detect and close the targeted Winamp instances and then leave more advanced stuff for LockedList.

It would also be nice if WAInfo could change the selected output/vis/dsp/lang.pack/skin and whatever else you can think of. For example, being able to allow the user to change the current DSP after a DSP install.
Pawel#
Thanks.
I am working on some improvements. I will add more functions (as I wrote above).
-Pawel
Pawel#edited
WAInfo 2.1 Final Released.
See first post of this thread.

-Pawel
thinktink#
I just ran into an issue with this plugin. Apparently, the latest version removed the function GetWinampPluginsDirectory which broke my NSIS installer script. I couldn't find an older version until, in a fit of genius, pulled a compatible version out of a previous installer. Would it be possible to either provide the old version or update the new version for backwards compatibility please?
Pawel#
Hey, I will look into it.... Did I remove it? I don't remember... Could you tell me what version is OK and what version misses function?

It seems current version uses the following function to get Plugins Directory (first param is empty - for default winamp installation):

WAInfo::GetWinampInformation "" "PluginsDir"
Pop $0

OK. There was 3 public availalbe versions. It seems you were using WAInfo 1.0.
I do recommand using latest one, WAInfo 2.1 (https://pawelporwisz.pl/nsis/plugins/WAInfo/WAInfo.php)
Here are all dlls: https://www.dropbox.com/scl/fi/m2izm...xxe1k4pev&dl=1
thinktink#edited
I downloaded from your site (v2.1) and it's missing from that one. From your DropBox archive link the only one that exports the function was version 1.0, the new versions 2.0 and 2.1 do not have it.