Windows System Media Transport Controls Interoperability Plug-in for Winamp
Propagates the metadata of all contents that Winamp supports to SMTC and lets you focus and control Winamp from the Windows Media Controls. Provides the functionality via a single binary (DLL).
- Windows 10 or newer
- Winamp 5.9.1
- Visual C++ 2019 runtime (should be already installed along with Winamp 5.9.1)
- Download the plugin from Releases
- Copy the
gen_smtcinterop.dll
to your Winamp installation'sPlugins
directory
- Visual C++ 2019 (v142)
- vcpkg
- must be integrated with MSBuild and Visual Studio using
vcpkg integrate install
to be able to reference TagLib - recommended to add
vcpkg
toPATH
- must be integrated with MSBuild and Visual Studio using
- Windows 10 SDK latest
- Winamp 5.55 SDK
- TagLib (statically linked)
git clone git@github.com:laszlolukacs/gen_smtcinterop.git
cd ./gen_smtcinterop
vcpkg install taglib:x86-windows-static
- Open
./gen_smtcinterop.sln
in Visual Studio
WA_SDK_HOME
the root directory of the Winamp SDK, required to build the VC++ project[Environment]::SetEnvironmentVariable("WA_SDK_HOME", "C:\Program Files (x86)\Winamp SDK", [System.EnvironmentVariableTarget]::User)
WINAMP_HOME
the root directory of the Winamp installation itself[Environment]::SetEnvironmentVariable("WINAMP_HOME", "C:\Program Files (x86)\Winamp", [System.EnvironmentVariableTarget]::User)
The plugin's binary is automatically copied from the build output directory to the Winamp installation's Plugins
directory for debug builds.
However for this to work the current user must have the write permission on the Winamp installation's Plugins
directory. This could be set from the Windows Explorer.
Alternatively executing the script below in an Administrative PowerShell session grants that:
$waPluginsPath = "C:\Program Files (x86)\Winamp\Plugins\"
$waPluginsAcl = Get-Acl $waPluginsPath
$waPluginsAclEntry = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name, "Write", "Allow"
$waPluginsAccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($waPluginsAclEntry)
$waPluginsAcl.SetAccessRule($waPluginsAccessRule)
$waPluginsAcl | Set-Acl $waPluginsPath
Get-Acl -Path $waPluginsPath
- NanMetal/gen_smtc - A longer existing Winamp plugin delivering the same SMTC integration, the major difference is instead of the VC++ Runtime it depends on the .NET Framework