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.dllto your Winamp installation'sPluginsdirectory
- Visual C++ 2019 (v142)
- vcpkg
- must be integrated with MSBuild and Visual Studio using
vcpkg integrate installto be able to reference TagLib - recommended to add
vcpkgtoPATH
- 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.gitcd ./gen_smtcinteropvcpkg install taglib:x86-windows-static- Open
./gen_smtcinterop.slnin Visual Studio
WA_SDK_HOMEthe 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_HOMEthe 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
