aboutsummaryrefslogtreecommitdiff
path: root/Src/installer/SDK
diff options
context:
space:
mode:
Diffstat (limited to 'Src/installer/SDK')
-rw-r--r--Src/installer/SDK/Agave.nsh40
-rw-r--r--Src/installer/SDK/ReplayGainAnalysis.nsh12
-rw-r--r--Src/installer/SDK/WA5.9_SDK.exebin0 -> 621248 bytes
-rw-r--r--Src/installer/SDK/WA_SDK.nsi201
-rw-r--r--Src/installer/SDK/bfc.nsh13
-rw-r--r--Src/installer/SDK/burner.nsh2
-rw-r--r--Src/installer/SDK/coverdirectory.nsh18
-rw-r--r--Src/installer/SDK/dsp_test.nsh18
-rw-r--r--Src/installer/SDK/enc_flac.nsh20
-rw-r--r--Src/installer/SDK/gen_classicart.nsh18
-rw-r--r--Src/installer/SDK/gen_tray.nsh31
-rw-r--r--Src/installer/SDK/in_chain.nsh9
-rw-r--r--Src/installer/SDK/in_flac.nsh37
-rw-r--r--Src/installer/SDK/in_raw.nsh9
-rw-r--r--Src/installer/SDK/in_tone.nsh15
-rw-r--r--Src/installer/SDK/irctell.nsh20
-rw-r--r--Src/installer/SDK/maki.nsh11
-rw-r--r--Src/installer/SDK/mlExplorer.nsh12
-rw-r--r--Src/installer/SDK/ml_api.nsh20
-rw-r--r--Src/installer/SDK/ml_bookmarks.nsh25
-rw-r--r--Src/installer/SDK/ml_http.nsh20
-rw-r--r--Src/installer/SDK/ml_iso.nsh18
-rw-r--r--Src/installer/SDK/ml_xmlex.nsh24
-rw-r--r--Src/installer/SDK/nde.nsh62
-rw-r--r--Src/installer/SDK/nsv.nsh3
-rw-r--r--Src/installer/SDK/nu.nsh29
-rw-r--r--Src/installer/SDK/out_null.nsh18
-rw-r--r--Src/installer/SDK/plLoadEx.nsh24
-rw-r--r--Src/installer/SDK/playlist.nsh6
-rw-r--r--Src/installer/SDK/wasabi.nsh50
-rw-r--r--Src/installer/SDK/winamp_api.nsh10
-rw-r--r--Src/installer/SDK/xml.nsh5
-rw-r--r--Src/installer/SDK/xspf.nsh21
33 files changed, 821 insertions, 0 deletions
diff --git a/Src/installer/SDK/Agave.nsh b/Src/installer/SDK/Agave.nsh
new file mode 100644
index 00000000..fde0c7ee
--- /dev/null
+++ b/Src/installer/SDK/Agave.nsh
@@ -0,0 +1,40 @@
+; Agave (Winamp 5 Wasabi API)
+
+; Config API
+SetOutPath $INSTDIR\Agave\Config
+File ${PROJECTS}\Agave\Config\api_config.h
+File ${PROJECTS}\Agave\Config\ifc_configgroup.h
+File ${PROJECTS}\Agave\Config\ifc_configitem.h
+
+; Metadata API
+SetOutPath $INSTDIR\Agave\Metadata
+File ${PROJECTS}\Agave\Metadata\api_metadata.h
+File ${PROJECTS}\Agave\Metadata\svc_metatag.h
+
+; Language API
+SetOutPath $INSTDIR\Agave\Language
+File ${PROJECTS}\Agave\Language\api_language.h
+File ${PROJECTS}\Agave\Language\lang.h
+
+; Component API
+SetOutPath $INSTDIR\Agave\Component
+File ${PROJECTS}\Agave\Component\ifc_wa5component.h
+
+; Album Art API
+SetOutPath $INSTDIR\Agave\AlbumArt
+File ${PROJECTS}\Agave\AlbumArt\svc_albumArtProvider.h
+File ${PROJECTS}\Agave\AlbumArt\api_albumart.h
+File ${PROJECTS}\Wasabi\api\service\svcs\svc_imgwrite.h
+
+; Audio Decoder API
+SetOutPath $INSTDIR\Agave\DecodeFile
+File ${PROJECTS}\Agave\DecodeFile\api_decodefile.h
+File ${PROJECTS}\Agave\DecodeFile\ifc_audiostream.h
+
+; Queue API
+SetOutPath $INSTDIR\Agave\Queue
+File ${PROJECTS}\Agave\Queue\api_queue.h
+
+; ExplorerFindFile API
+SetOutPath $INSTDIR\Agave\ExplorerFindFile
+File ${PROJECTS}\Agave\ExplorerFindFile\api_explorerfindfile.h \ No newline at end of file
diff --git a/Src/installer/SDK/ReplayGainAnalysis.nsh b/Src/installer/SDK/ReplayGainAnalysis.nsh
new file mode 100644
index 00000000..c9170693
--- /dev/null
+++ b/Src/installer/SDK/ReplayGainAnalysis.nsh
@@ -0,0 +1,12 @@
+SetOutPath $INSTDIR\ReplayGainAnalysis
+File ${PROJECTS}\ReplayGainAnalysis\gain_analysis.c
+File ${PROJECTS}\ReplayGainAnalysis\gain_analysis.h
+File ${PROJECTS}\ReplayGainAnalysis\ReplayGainAnalysis.sln
+File ${PROJECTS}\ReplayGainAnalysis\ReplayGainAnalysis.vcxproj
+File ${PROJECTS}\ReplayGainAnalysis\ReplayGainAnalysis.vcxproj.filters
+File ${PROJECTS}\ReplayGainAnalysis\resource.h
+File ${PROJECTS}\ReplayGainAnalysis\version.rc2
+
+SetOutPath $INSTDIR\ReplayGainAnalysis\ReplayGainAnalysis.xcodeproj
+File ${PROJECTS}\ReplayGainAnalysis\ReplayGainAnalysis.xcodeproj\project.pbxproj
+
diff --git a/Src/installer/SDK/WA5.9_SDK.exe b/Src/installer/SDK/WA5.9_SDK.exe
new file mode 100644
index 00000000..b785f09c
--- /dev/null
+++ b/Src/installer/SDK/WA5.9_SDK.exe
Binary files differ
diff --git a/Src/installer/SDK/WA_SDK.nsi b/Src/installer/SDK/WA_SDK.nsi
new file mode 100644
index 00000000..17f2209c
--- /dev/null
+++ b/Src/installer/SDK/WA_SDK.nsi
@@ -0,0 +1,201 @@
+; WA_SDK.nsi
+
+; This script will collect the files in Winamp SDK and create an installer for them
+
+;------------------------
+
+!ifndef VERSION
+ !define VERSION "5.9"
+!endif
+
+!define PRODUCT_NAME "Winamp ${VERSION} SDK"
+
+; This is where all projects live. Ensure this is the correct relative path.
+!ifndef PROJECTS
+ !define PROJECTS "..\.."
+!endif
+
+; Hinterland repo
+!ifndef Hinterland
+ !define Hinterland "..\..\..\..\Hinterland"
+!endif
+
+; Path to SDK Plugins
+!ifndef SDKPlugins
+ !define SDKPlugins "..\..\Plugins\SDK"
+!endif
+
+; Path to Gen Plugins
+!ifndef GenPlugins
+ !define GenPlugins "..\..\Plugins\General"
+!endif
+
+; Path to Input Plugins
+!ifndef InPlugins
+ !define InPlugins "..\..\Plugins\Input"
+!endif
+
+; Path to Enc Plugins
+!ifndef EncPlugins
+ !define EncPlugins "..\..\Plugins\Encoder"
+!endif
+
+; Path to Library Plugins
+!ifndef LibPlugins
+ !define LibPlugins "..\..\Plugins\Library"
+!endif
+
+; Path to Output Plugins
+!ifndef OutPlugins
+ !define OutPlugins "..\..\Plugins\Output"
+!endif
+
+; Path to DSP Plugins
+!ifndef DSPPlugins
+ !define DSPPlugins "..\..\Plugins\DSP"
+!endif
+
+; Path to Portable Plugins
+!ifndef PortablePlugins
+ !define PortablePlugins "..\..\Plugins\Portable"
+!endif
+
+; Path to Vis Plugins
+!ifndef VisPlugins
+ !define VisPlugins "..\..\Plugins\Visualization"
+!endif
+
+!define old_stuff_for_reference
+
+!define WINAMP "Winamp"
+!define UNINSTALLER "WA${VERSION}_SDK_Uninstaller.exe"
+
+;Set Compression
+SetCompress force
+SetCompressor /solid lzma
+
+!include "sections.nsh"
+!include "LogicLib.nsh"
+!include "WordFunc.nsh"
+
+XPStyle on
+
+;Request Administrator Privileges
+RequestExecutionLevel user
+
+;Version information for Windows Explorer
+VIProductVersion "5.9.0.0"
+VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
+VIAddVersionKey "Comments" "Winamp SDK Installer"
+VIAddVersionKey "LegalCopyright" "Copyright © 1997-2022 Winamp SA"
+VIAddVersionKey "CompanyName" "Winamp SA"
+VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer"
+VIAddVersionKey "FileVersion" "5.9.0.0"
+VIAddVersionKey "ProductVersion" "5.9.0.0"
+
+;------------------------
+
+Name "Winamp ${VERSION} SDK"
+OutFile "WA${VERSION}_SDK.exe"
+InstallDir "$PROGRAMFILES\Winamp SDK"
+
+Page Directory
+Page instfiles
+
+Section ""
+
+; APIs
+!include "winamp_api.nsh"
+!include "ml_api.nsh"
+!include "wasabi.nsh"
+!include "bfc.nsh"
+!include "xml.nsh"
+!include "playlist.nsh"
+!include "nu.nsh"
+!include "Agave.nsh"
+!include "nsv.nsh"
+!include "burner.nsh"
+
+; examples
+!include "gen_tray.nsh"
+!include "enc_flac.nsh"
+!include "in_flac.nsh"
+!include "ml_bookmarks.nsh"
+!include "xspf.nsh"
+
+; Previously moved to Hinterland. Now updated / migrated to VS2019...
+!include "ml_xmlex.nsh"
+!include "plLoadEx.nsh"
+!include "dsp_test.nsh"
+!include "in_tone.nsh"
+!include "coverdirectory.nsh"
+!include "irctell.nsh"
+!include "ml_iso.nsh"
+!include "out_null.nsh"
+!include "gen_classicart.nsh"
+
+; These old plugins were moved to Hinterland and do not compile under VS2019, so let's remove them from the SDK
+;!include "in_chain.nsh"
+;!include "in_raw.nsh"
+;!include "ml_http.nsh"
+;!include "mlExplorer.nsh"
+
+; skinning
+!include "maki.nsh"
+
+; open source
+!include "ReplayGainAnalysis.nsh"
+!include "nde.nsh"
+
+; TODO
+; example using api_tagz
+; example using hotkeys
+; example using api_decodefile
+; vis_avs
+; jnetlib (but which one? dll or w5s?)
+; file reader API
+; example using api_random (maybe by adding noise generator to dsp_test)
+
+!ifdef old_stuff_for_reference
+
+SetOutPath $INSTDIR\gen_ml
+File ${GenPlugins}\gen_ml\gaystring.h ; this needs replacing
+File ${GenPlugins}\gen_ml\gaystring.cpp ; this needs replacing
+File ${GenPlugins}\gen_ml\itemlist.cpp
+File ${GenPlugins}\gen_ml\itemlist.h
+File ${GenPlugins}\gen_ml\listview.cpp
+File ${GenPlugins}\gen_ml\listview.h
+File ${GenPlugins}\gen_ml\ml_ipc.h
+File ${GenPlugins}\gen_ml\ml_lib.cpp
+
+SetOutPath $INSTDIR\vis
+File ${PROJECTS}\resources\SDK\wa5vis.txt
+SetOutPath $INSTDIR\vis\vis_avs\apesdk
+File /x CVS ${VisPlugins}\vis_avs\apesdk\*.*
+SetOutPath $INSTDIR\vis\vis_avs\ns-eel2
+File /x CVS ${PROJECTS}\ns-eel2\*.*
+SetOutPath $INSTDIR\vis\vis_test
+File ${Hinterland}\vis_milkdrop\svis.mak
+
+SetOutPath $INSTDIR\Winamp
+File ${GenPlugins}\gen_hotkeys\wa_hotkeys.h
+File ${PROJECTS}\Winamp\api_random.h
+File ${PROJECTS}\Winamp\api_decodefile.h
+File ${PROJECTS}\Winamp\api_audiostream.h
+
+SetOutPath $INSTDIR\tagz
+File ${PROJECTS}\tagz\api_tagz.h
+File ${PROJECTS}\tagz\ifc_tagprovider.h
+File ${PROJECTS}\tagz\ifc_tagparams.h
+
+File /oname=$INSTDIR\readme.txt ${PROJECTS}\Resources\SDK\sdkreadme.txt
+!endif
+
+WriteUninstaller "$INSTDIR\${UNINSTALLER}"
+
+SectionEnd
+
+Section "Uninstall"
+Delete $INSTDIR\*.*
+RMDir $INSTDIR
+SectionEnd
diff --git a/Src/installer/SDK/bfc.nsh b/Src/installer/SDK/bfc.nsh
new file mode 100644
index 00000000..14e80254
--- /dev/null
+++ b/Src/installer/SDK/bfc.nsh
@@ -0,0 +1,13 @@
+; BFC
+SetOutPath $INSTDIR\Wasabi\bfc
+File ${PROJECTS}\Wasabi\bfc\dispatch.h
+File ${PROJECTS}\Wasabi\bfc\multipatch.h
+File ${PROJECTS}\Wasabi\bfc\std_mkncc.h
+File ${PROJECTS}\Wasabi\bfc\nsguid.h
+
+SetOutPath $INSTDIR\Wasabi\bfc\platform
+File ${PROJECTS}\Wasabi\bfc\platform\types.h
+File ${PROJECTS}\Wasabi\bfc\platform\guid.h
+File ${PROJECTS}\Wasabi\bfc\platform\platform.h
+File ${PROJECTS}\Wasabi\bfc\platform\win32.h
+File ${PROJECTS}\Wasabi\bfc\platform\export.h \ No newline at end of file
diff --git a/Src/installer/SDK/burner.nsh b/Src/installer/SDK/burner.nsh
new file mode 100644
index 00000000..c4f5ff30
--- /dev/null
+++ b/Src/installer/SDK/burner.nsh
@@ -0,0 +1,2 @@
+SetOutPath $INSTDIR\burner
+File ${Hinterland}\burner\obj_isocreator.h
diff --git a/Src/installer/SDK/coverdirectory.nsh b/Src/installer/SDK/coverdirectory.nsh
new file mode 100644
index 00000000..4cc2aed5
--- /dev/null
+++ b/Src/installer/SDK/coverdirectory.nsh
@@ -0,0 +1,18 @@
+; Cover Directory example component
+SetOutPath $INSTDIR\coverdirectory
+
+; project files
+File ${SDKPlugins}\coverdirectory\coverdirectory.sln
+File ${SDKPlugins}\coverdirectory\cover_directory.vcxproj
+File ${SDKPlugins}\coverdirectory\cover_directory.vcxproj.filters
+
+; source
+File ${SDKPlugins}\coverdirectory\CoverDirectory.cpp
+File ${SDKPlugins}\coverdirectory\CoverDirectory.h
+File ${SDKPlugins}\coverdirectory\main.cpp
+File ${SDKPlugins}\coverdirectory\api.h
+
+; resources
+File ${SDKPlugins}\coverdirectory\coverdirectory.rc
+File ${SDKPlugins}\coverdirectory\resource.h
+File ${SDKPlugins}\coverdirectory\version.rc2 \ No newline at end of file
diff --git a/Src/installer/SDK/dsp_test.nsh b/Src/installer/SDK/dsp_test.nsh
new file mode 100644
index 00000000..7ca6f1ea
--- /dev/null
+++ b/Src/installer/SDK/dsp_test.nsh
@@ -0,0 +1,18 @@
+; Sample DSP Plugin
+SetOutPath $INSTDIR\dsp_test
+
+; project files
+File ${SDKPlugins}\dsp_test\dsp_test.sln
+File ${SDKPlugins}\dsp_test\dsp_test.vcxproj
+File ${SDKPlugins}\dsp_test\dsp_test.vcxproj.filters
+
+; source
+File ${SDKPlugins}\dsp_test\dsp_test.c
+
+
+; documentation
+File ${SDKPlugins}\dsp_test\dsp_ns.txt
+
+; resources
+File ${SDKPlugins}\dsp_test\RESOURCE.H
+File ${SDKPlugins}\dsp_test\SCRIPT1.RC
diff --git a/Src/installer/SDK/enc_flac.nsh b/Src/installer/SDK/enc_flac.nsh
new file mode 100644
index 00000000..fa5c731e
--- /dev/null
+++ b/Src/installer/SDK/enc_flac.nsh
@@ -0,0 +1,20 @@
+; FLAC encoder plugin
+SetOutPath $INSTDIR\enc_flac
+
+; project files
+File ${EncPlugins}\enc_flac\enc_flac2.sln
+File ${EncPlugins}\enc_flac\enc_flac2.vcxproj
+File ${EncPlugins}\enc_flac\enc_flac2.vcxproj.filters
+
+; source
+File ${EncPlugins}\enc_flac\AudioCoderFlac.cpp
+File ${EncPlugins}\enc_flac\AudioCoderFlac.h
+File ${EncPlugins}\enc_flac\StreamFileWin32.cpp
+File ${EncPlugins}\enc_flac\StreamFileWin32.h
+File ${EncPlugins}\enc_flac\api.h
+File ${EncPlugins}\enc_flac\main.cpp
+
+; resources
+File ${EncPlugins}\enc_flac\enc_flac2.rc
+File ${EncPlugins}\enc_flac\resource.h
+File ${EncPlugins}\enc_flac\version.rc2
diff --git a/Src/installer/SDK/gen_classicart.nsh b/Src/installer/SDK/gen_classicart.nsh
new file mode 100644
index 00000000..331eca9a
--- /dev/null
+++ b/Src/installer/SDK/gen_classicart.nsh
@@ -0,0 +1,18 @@
+; Classic Skin Album Art plugin
+SetOutPath $INSTDIR\gen_classicart
+
+; project files
+File ${SDKPlugins}\gen_classicart\gen_classicart.sln
+File ${SDKPlugins}\gen_classicart\gen_classicart.vcxproj
+File ${SDKPlugins}\gen_classicart\gen_classicart.vcxproj.filters
+
+; source
+File ${SDKPlugins}\gen_classicart\gen_classicart.cpp
+File ${SDKPlugins}\gen_classicart\api.h
+
+; icons
+File ${SDKPlugins}\gen_classicart\notfound.png
+
+; resources
+File ${SDKPlugins}\gen_classicart\resource.h
+File ${SDKPlugins}\gen_classicart\gen_classicart.rc
diff --git a/Src/installer/SDK/gen_tray.nsh b/Src/installer/SDK/gen_tray.nsh
new file mode 100644
index 00000000..14eb8e83
--- /dev/null
+++ b/Src/installer/SDK/gen_tray.nsh
@@ -0,0 +1,31 @@
+; System Tray plugin
+SetOutPath $INSTDIR\gen_tray
+
+; project files
+File ${GenPlugins}\gen_tray\GEN_TRAY.sln
+File ${GenPlugins}\gen_tray\GEN_TRAY.vcxproj
+File ${GenPlugins}\gen_tray\GEN_TRAY.vcxproj.filters
+
+; source
+File ${GenPlugins}\gen_tray\TRAYCTL.C
+File ${GenPlugins}\gen_tray\WINAMPCMD.H
+File ${GenPlugins}\gen_tray\api.h
+
+; icons
+SetOutPath $INSTDIR\gen_tray\icons
+File ${GenPlugins}\gen_tray\icons\compact.bmp
+File ${GenPlugins}\gen_tray\icons\icon1.ico
+File ${GenPlugins}\gen_tray\icons\icon2.ico
+File ${GenPlugins}\gen_tray\icons\icon3.ico
+File ${GenPlugins}\gen_tray\icons\icon4.ico
+File ${GenPlugins}\gen_tray\icons\icon5.ico
+File ${GenPlugins}\gen_tray\icons\icon7.ico
+File ${GenPlugins}\gen_tray\icons\icon8.ico
+File ${GenPlugins}\gen_tray\icons\icon9.ico
+
+SetOutPath $INSTDIR\gen_tray
+
+; resources
+File ${GenPlugins}\gen_tray\RESOURCE.H
+File ${GenPlugins}\gen_tray\gen_tray.rc
+File ${GenPlugins}\gen_tray\version.rc2
diff --git a/Src/installer/SDK/in_chain.nsh b/Src/installer/SDK/in_chain.nsh
new file mode 100644
index 00000000..09579b04
--- /dev/null
+++ b/Src/installer/SDK/in_chain.nsh
@@ -0,0 +1,9 @@
+; Chained input plugin example
+SetOutPath $INSTDIR\in_chain
+
+; project files
+File ${Hinterland}\in_chain\in_chain.sln
+File ${Hinterland}\in_chain\in_chain.vcproj
+
+; source
+File ${Hinterland}\in_chain\main.cpp
diff --git a/Src/installer/SDK/in_flac.nsh b/Src/installer/SDK/in_flac.nsh
new file mode 100644
index 00000000..b88d6264
--- /dev/null
+++ b/Src/installer/SDK/in_flac.nsh
@@ -0,0 +1,37 @@
+; Nullsoft FLAC Decoder plugin
+SetOutPath $INSTDIR\in_flac
+
+; project files
+File ${InPlugins}\in_flac\in_flac.sln
+File ${InPlugins}\in_flac\in_flac.vcxproj
+File ${InPlugins}\in_flac\in_flac.vcxproj.filters
+
+; source
+File ${InPlugins}\in_flac\main.h
+File ${InPlugins}\in_flac\main.cpp
+File ${InPlugins}\in_flac\api.h
+File ${InPlugins}\in_flac\AlbumArt.h
+File ${InPlugins}\in_flac\AlbumArt.cpp
+File ${InPlugins}\in_flac\DecodeThread.cpp
+File ${InPlugins}\in_flac\ExtendedFileInfo.cpp
+File ${InPlugins}\in_flac\ExtendedRead.cpp
+File ${InPlugins}\in_flac\FileInfo.cpp
+File ${InPlugins}\in_flac\FLACFileCallbacks.h
+File ${InPlugins}\in_flac\FLACFileCallbacks.cpp
+File ${InPlugins}\in_flac\Metadata.h
+File ${InPlugins}\in_flac\Metadata.cpp
+File ${InPlugins}\in_flac\mkv_flac_decoder.h
+File ${InPlugins}\in_flac\mkv_flac_decoder.cpp
+File ${InPlugins}\in_flac\Preferences.cpp
+File ${InPlugins}\in_flac\QuickBuf.h
+File ${InPlugins}\in_flac\RawReader.h
+File ${InPlugins}\in_flac\RawReader.cpp
+File ${InPlugins}\in_flac\Stopper.h
+File ${InPlugins}\in_flac\Stopper.cpp
+File ${InPlugins}\in_flac\StreamFileWin32.h
+File ${InPlugins}\in_flac\StreamFileWin32.cpp
+
+; resources
+File ${InPlugins}\in_flac\in_flac.rc
+File ${InPlugins}\in_flac\resource.h
+File ${InPlugins}\in_flac\version.rc2
diff --git a/Src/installer/SDK/in_raw.nsh b/Src/installer/SDK/in_raw.nsh
new file mode 100644
index 00000000..862aab4e
--- /dev/null
+++ b/Src/installer/SDK/in_raw.nsh
@@ -0,0 +1,9 @@
+; Raw input plugin
+SetOutPath $INSTDIR\in_raw
+
+; project files
+File ${Hinterland}\in_raw\IN_RAW.sln
+File ${Hinterland}\in_raw\IN_RAW.vcproj
+
+; source
+File ${Hinterland}\in_raw\MAIN.C
diff --git a/Src/installer/SDK/in_tone.nsh b/Src/installer/SDK/in_tone.nsh
new file mode 100644
index 00000000..8b430079
--- /dev/null
+++ b/Src/installer/SDK/in_tone.nsh
@@ -0,0 +1,15 @@
+; Tone input plugin
+SetOutPath $INSTDIR\in_tone
+
+; project files
+File ${SDKPlugins}\in_tone\IN_TONE.sln
+File ${SDKPlugins}\in_tone\IN_TONE.vcxproj
+File ${SDKPlugins}\in_tone\IN_TONE.vcxproj.filters
+
+; source
+File ${SDKPlugins}\in_tone\MAIN.C
+
+; resources
+File ${SDKPlugins}\in_tone\in_tone.rc
+File ${SDKPlugins}\in_tone\resource.h
+File ${SDKPlugins}\in_tone\version.rc2
diff --git a/Src/installer/SDK/irctell.nsh b/Src/installer/SDK/irctell.nsh
new file mode 100644
index 00000000..a9d70053
--- /dev/null
+++ b/Src/installer/SDK/irctell.nsh
@@ -0,0 +1,20 @@
+; IRC tell example component
+SetOutPath $INSTDIR\irctell
+
+; project files
+File ${SDKPlugins}\irctell\irctell.sln
+File ${SDKPlugins}\irctell\irctell.vcxproj
+File ${SDKPlugins}\irctell\irctell.vcxproj.filters
+
+; source
+File ${SDKPlugins}\irctell\dde.cpp
+File ${SDKPlugins}\irctell\dde.h
+File ${SDKPlugins}\irctell\irctell.cpp
+File ${SDKPlugins}\irctell\irctell.h
+File ${SDKPlugins}\irctell\api.h
+
+; resources
+File ${SDKPlugins}\irctell\irctell.rc
+File ${SDKPlugins}\irctell\resource.h
+File ${SDKPlugins}\irctell\version.rc2
+
diff --git a/Src/installer/SDK/maki.nsh b/Src/installer/SDK/maki.nsh
new file mode 100644
index 00000000..41c546c7
--- /dev/null
+++ b/Src/installer/SDK/maki.nsh
@@ -0,0 +1,11 @@
+; media library API
+SetOutPath $INSTDIR\maki
+File ${PROJECTS}\Wasabi\mc.exe
+File ${PROJECTS}\Wasabi\lib\std.mi
+File ${PROJECTS}\Wasabi\lib\winampconfig.mi
+File ${PROJECTS}\Wasabi\lib\pldir.mi
+File ${PROJECTS}\Wasabi\lib\config.mi
+File ${PROJECTS}\Wasabi\lib\application.mi
+
+; mc runtime dependency
+File ${PROJECTS}\Wasabi\nscrt.dll \ No newline at end of file
diff --git a/Src/installer/SDK/mlExplorer.nsh b/Src/installer/SDK/mlExplorer.nsh
new file mode 100644
index 00000000..06198361
--- /dev/null
+++ b/Src/installer/SDK/mlExplorer.nsh
@@ -0,0 +1,12 @@
+; Sample HTTP Plugin
+SetOutPath $INSTDIR\mlExplorer
+
+; project files
+File ${Hinterland}\mlExplorer\mlExplorer.sln
+File ${Hinterland}\mlExplorer\mlExplorer.vcproj
+
+; source
+File ${Hinterland}\mlExplorer\mlExplorer.cpp
+
+; docs
+File ${Hinterland}\mlExplorer\readme.txt
diff --git a/Src/installer/SDK/ml_api.nsh b/Src/installer/SDK/ml_api.nsh
new file mode 100644
index 00000000..9360252d
--- /dev/null
+++ b/Src/installer/SDK/ml_api.nsh
@@ -0,0 +1,20 @@
+; media library API
+SetOutPath $INSTDIR\gen_ml
+File ${GenPlugins}\gen_ml\ml.h
+File ${GenPlugins}\gen_ml\ml_ipc_0313.h
+File ${GenPlugins}\gen_ml\childwnd.h
+
+; local media API
+SetOutPath $INSTDIR\ml_local
+File ${LibPlugins}\ml_local\api_mldb.h
+File ${LibPlugins}\ml_local\queries.txt
+
+; Replay Gain API (this should probably be moved out of ml_rg eventually)
+SetOutPath $INSTDIR\ml_rg
+File ${LibPlugins}\ml_rg\obj_replaygain.h
+
+; Podcast API
+SetOutPath $INSTDIR\ml_wire
+File ${LibPlugins}\ml_wire\api_podcasts.h
+File ${LibPlugins}\ml_wire\ifc_podcast.h
+File ${LibPlugins}\ml_wire\ifc_article.h \ No newline at end of file
diff --git a/Src/installer/SDK/ml_bookmarks.nsh b/Src/installer/SDK/ml_bookmarks.nsh
new file mode 100644
index 00000000..e0d285b0
--- /dev/null
+++ b/Src/installer/SDK/ml_bookmarks.nsh
@@ -0,0 +1,25 @@
+; Nullsoft Bookmarks / Media Library example
+SetOutPath $INSTDIR\ml_bookmarks
+
+; project files
+File ${LibPlugins}\ml_bookmarks\ml_bookmarks.sln
+File ${LibPlugins}\ml_bookmarks\ml_bookmarks.vcxproj
+File ${LibPlugins}\ml_bookmarks\ml_bookmarks.vcxproj.filters
+
+; source
+File ${LibPlugins}\ml_bookmarks\main.h
+File ${LibPlugins}\ml_bookmarks\main.cpp
+File ${LibPlugins}\ml_bookmarks\api.h
+File ${LibPlugins}\ml_bookmarks\bookmark.h
+File ${LibPlugins}\ml_bookmarks\bookmark.cpp
+File ${LibPlugins}\ml_bookmarks\listview.h
+File ${LibPlugins}\ml_bookmarks\listview.cpp
+File ${LibPlugins}\ml_bookmarks\view.cpp
+
+; resource files
+File ${LibPlugins}\ml_bookmarks\resource.h
+File ${LibPlugins}\ml_bookmarks\ml_bookmarks.rc
+File ${LibPlugins}\ml_bookmarks\version.rc2
+
+SetOutPath $INSTDIR\ml_bookmarks\resources
+File ${LibPlugins}\ml_bookmarks\resources\ti_bookmarks_16x16x16.bmp
diff --git a/Src/installer/SDK/ml_http.nsh b/Src/installer/SDK/ml_http.nsh
new file mode 100644
index 00000000..19ac974c
--- /dev/null
+++ b/Src/installer/SDK/ml_http.nsh
@@ -0,0 +1,20 @@
+; Sample HTTP Plugin
+SetOutPath $INSTDIR\ml_http
+
+; project files
+File ${Hinterland}\ml_http\ml_http.sln
+File ${Hinterland}\ml_http\ml_http.vcproj
+
+; source
+File ${Hinterland}\ml_http\main.cpp
+File ${Hinterland}\ml_http\main.h
+File ${Hinterland}\ml_http\HTMLControl.cpp
+File ${Hinterland}\ml_http\HTMLControl.h
+File ${Hinterland}\ml_http\SampleHttp.cpp
+
+; resources
+File ${Hinterland}\ml_http\resource.h
+File ${Hinterland}\ml_http\ml_http.rc
+
+SetOutPath $INSTDIR\ml_http\resources
+File ${Hinterland}\ml_http\resources\ti_now_playing_16x16x16.bmp \ No newline at end of file
diff --git a/Src/installer/SDK/ml_iso.nsh b/Src/installer/SDK/ml_iso.nsh
new file mode 100644
index 00000000..d76180a1
--- /dev/null
+++ b/Src/installer/SDK/ml_iso.nsh
@@ -0,0 +1,18 @@
+; XML Parser / Media Library example
+SetOutPath $INSTDIR\ml_iso
+
+; project files
+File ${SDKPlugins}\ml_iso\ml_iso.sln
+File ${SDKPlugins}\ml_iso\ml_iso.vcxproj
+File ${SDKPlugins}\ml_iso\ml_iso.vcxproj.filters
+
+; source
+File ${SDKPlugins}\ml_iso\main.cpp
+File ${SDKPlugins}\ml_iso\main.h
+File ${SDKPlugins}\ml_iso\ToISO.cpp
+File ${SDKPlugins}\ml_iso\api.h
+
+; resource files
+File ${SDKPlugins}\ml_iso\resource.h
+File ${SDKPlugins}\ml_iso\ml_iso.rc
+File ${SDKPlugins}\ml_iso\version.rc2 \ No newline at end of file
diff --git a/Src/installer/SDK/ml_xmlex.nsh b/Src/installer/SDK/ml_xmlex.nsh
new file mode 100644
index 00000000..091ef373
--- /dev/null
+++ b/Src/installer/SDK/ml_xmlex.nsh
@@ -0,0 +1,24 @@
+; XML Parser / Media Library example
+SetOutPath $INSTDIR\ml_xmlex
+
+; project files
+File ${SDKPlugins}\ml_xmlex\ml_xmlex.sln
+File ${SDKPlugins}\ml_xmlex\ml_xmlex.vcxproj
+File ${SDKPlugins}\ml_xmlex\ml_xmlex.vcxproj.filters
+
+; source
+File ${SDKPlugins}\ml_xmlex\main.cpp
+File ${SDKPlugins}\ml_xmlex\main.h
+File ${SDKPlugins}\ml_xmlex\api.h
+File ${SDKPlugins}\ml_xmlex\xmlview.cpp
+
+; resources
+File ${SDKPlugins}\ml_xmlex\resource.h
+File ${SDKPlugins}\ml_xmlex\ml_xmlex.rc
+File ${SDKPlugins}\ml_xmlex\version.rc2
+
+; documents and sample files
+File ${SDKPlugins}\ml_xmlex\readme.txt
+File ${SDKPlugins}\ml_xmlex\xmltest.xml
+File ${SDKPlugins}\ml_xmlex\xmltest2.xml
+
diff --git a/Src/installer/SDK/nde.nsh b/Src/installer/SDK/nde.nsh
new file mode 100644
index 00000000..bbf43656
--- /dev/null
+++ b/Src/installer/SDK/nde.nsh
@@ -0,0 +1,62 @@
+; Nullsoft Database Engine
+
+SetOutPath $INSTDIR\nde
+; Project Files
+File ${PROJECTS}\nde\nde.sln
+File ${PROJECTS}\nde\nde.vcxproj
+File ${PROJECTS}\nde\nde.vcxproj.filters
+
+; Source Files
+File ${PROJECTS}\nde\win\Binary32Field.h
+File ${PROJECTS}\nde\win\Binary32Field.cpp
+File ${PROJECTS}\nde\win\BinaryField.cpp
+File ${PROJECTS}\nde\win\BinaryField.h
+File ${PROJECTS}\nde\win\ColumnField.cpp
+File ${PROJECTS}\nde\win\ColumnField.h
+File ${PROJECTS}\nde\Crc.cpp
+File ${PROJECTS}\nde\CRC.H
+File ${PROJECTS}\nde\Database.cpp
+File ${PROJECTS}\nde\Database.h
+File ${PROJECTS}\nde\DBUtils.cpp
+File ${PROJECTS}\nde\DBUtils.h
+;File ${PROJECTS}\nde\entrypoint.cpp
+File ${PROJECTS}\nde\Field.cpp
+File ${PROJECTS}\nde\Field.h
+File ${PROJECTS}\nde\win\FilenameField.cpp
+File ${PROJECTS}\nde\win\FilenameField.h
+File ${PROJECTS}\nde\Filter.cpp
+File ${PROJECTS}\nde\Filter.h
+File ${PROJECTS}\nde\Index.cpp
+File ${PROJECTS}\nde\Index.h
+File ${PROJECTS}\nde\win\IndexField.cpp
+File ${PROJECTS}\nde\win\IndexField.h
+File ${PROJECTS}\nde\Int128Field.cpp
+File ${PROJECTS}\nde\Int128Field.h
+File ${PROJECTS}\nde\Int64Field.cpp
+File ${PROJECTS}\nde\Int64Field.h
+File ${PROJECTS}\nde\win\IntegerField.cpp
+File ${PROJECTS}\nde\win\IntegerField.h
+File ${PROJECTS}\nde\LinkedList.cpp
+File ${PROJECTS}\nde\LinkedList.h
+File ${PROJECTS}\nde\nde.h
+File ${PROJECTS}\nde\win\nde_c.h
+File ${PROJECTS}\nde\win\nde_c.cpp
+File ${PROJECTS}\nde\win\nde_init.cpp
+File ${PROJECTS}\nde\NDEString.cpp
+File ${PROJECTS}\nde\NDEString.h
+File ${PROJECTS}\nde\win\Query.cpp
+File ${PROJECTS}\nde\win\Query.h
+File ${PROJECTS}\nde\win\Record.cpp
+File ${PROJECTS}\nde\win\Record.h
+File ${PROJECTS}\nde\resource.h
+File ${PROJECTS}\nde\win\Scanner.cpp
+File ${PROJECTS}\nde\win\Scanner.h
+File ${PROJECTS}\nde\win\StringField.cpp
+File ${PROJECTS}\nde\win\StringField.h
+;File ${PROJECTS}\nde\StringFieldW.cpp
+;File ${PROJECTS}\nde\StringFieldW.h
+File ${PROJECTS}\nde\win\Table.cpp
+File ${PROJECTS}\nde\win\Table.h
+File ${PROJECTS}\nde\version.rc2
+File ${PROJECTS}\nde\win\Vfs.cpp
+File ${PROJECTS}\nde\win\Vfs.h
diff --git a/Src/installer/SDK/nsv.nsh b/Src/installer/SDK/nsv.nsh
new file mode 100644
index 00000000..1d912f7e
--- /dev/null
+++ b/Src/installer/SDK/nsv.nsh
@@ -0,0 +1,3 @@
+; NSV
+SetOutPath $INSTDIR\nsv
+File ${PROJECTS}\nsv\enc_if.h
diff --git a/Src/installer/SDK/nu.nsh b/Src/installer/SDK/nu.nsh
new file mode 100644
index 00000000..ab122996
--- /dev/null
+++ b/Src/installer/SDK/nu.nsh
@@ -0,0 +1,29 @@
+SetOutPath $INSTDIR\nu
+File ${PROJECTS}\nu\HTMLContainer.cpp
+File ${PROJECTS}\nu\HTMLContainer.h
+File ${PROJECTS}\nu\AutoWide.h
+File ${PROJECTS}\nu\AutoWideFn.h
+File ${PROJECTS}\nu\AutoChar.h
+File ${PROJECTS}\nu\AutoCharFn.h
+File ${PROJECTS}\nu\DialogSkinner.h
+File ${PROJECTS}\nu\DialogSkinner.cpp
+File ${PROJECTS}\nu\Vectors.h
+File ${PROJECTS}\nu\listview.h
+File ${PROJECTS}\nu\listview.cpp
+File ${PROJECTS}\nu\menushortcuts.h
+File ${PROJECTS}\nu\menushortcuts.cpp
+File ${PROJECTS}\nu\MediaLibraryInterface.h
+File ${PROJECTS}\nu\MediaLibraryInterface.cpp
+File ${PROJECTS}\nu\SendTo.h
+File ${PROJECTS}\nu\Singleton.h
+File ${PROJECTS}\nu\Strings.h
+File ${PROJECTS}\nu\wa_str.h
+File ${PROJECTS}\nu\winstr.c
+
+SetOutPath $INSTDIR\Replicant\nu
+File ${PROJECTS}\Replicant\nu\AutoWide.h
+File ${PROJECTS}\Replicant\nu\AutoChar.h
+File ${PROJECTS}\Replicant\nu\vectors.h
+
+SetOutPath $INSTDIR\Replicant\foundation
+File ${PROJECTS}\Replicant\foundation\types.h \ No newline at end of file
diff --git a/Src/installer/SDK/out_null.nsh b/Src/installer/SDK/out_null.nsh
new file mode 100644
index 00000000..97e7945b
--- /dev/null
+++ b/Src/installer/SDK/out_null.nsh
@@ -0,0 +1,18 @@
+; Null output plugin example
+SetOutPath $INSTDIR\out_null
+
+; project files
+File ${SDKPlugins}\out_null\Out_null.dsw
+File ${SDKPlugins}\out_null\Out_null.dsp
+File ${SDKPlugins}\out_null\Out_null.sln
+File ${SDKPlugins}\out_null\Out_null.vcxproj
+File ${SDKPlugins}\out_null\Out_null.vcxproj.filters
+
+; source
+File ${SDKPlugins}\out_null\main.c
+
+; resources
+File ${SDKPlugins}\out_null\out_null.rc
+File ${SDKPlugins}\out_null\resource.h
+File ${SDKPlugins}\out_null\version.rc2
+
diff --git a/Src/installer/SDK/plLoadEx.nsh b/Src/installer/SDK/plLoadEx.nsh
new file mode 100644
index 00000000..aff7857b
--- /dev/null
+++ b/Src/installer/SDK/plLoadEx.nsh
@@ -0,0 +1,24 @@
+SetOutPath $INSTDIR\plLoadEx
+
+; project files
+File ${SDKPlugins}\plLoadEx\plLoadEx.sln
+File ${SDKPlugins}\plLoadEx\plLoadEx.vcxproj
+File ${SDKPlugins}\plLoadEx\plLoadEx.vcxproj.filters
+
+; source files
+File ${SDKPlugins}\plLoadEx\ExComponent.cpp
+File ${SDKPlugins}\plLoadEx\ExComponent.h
+File ${SDKPlugins}\plLoadEx\SimpleHandler.cpp
+File ${SDKPlugins}\plLoadEx\SimpleHandler.h
+File ${SDKPlugins}\plLoadEx\SimpleHandlerFactory.cpp
+File ${SDKPlugins}\plLoadEx\SimpleHandlerFactory.h
+File ${SDKPlugins}\plLoadEx\SimpleLoader.cpp
+File ${SDKPlugins}\plLoadEx\SimpleLoader.h
+File ${SDKPlugins}\plLoadEx\w5s.cpp
+File ${SDKPlugins}\plLoadEx\api.h
+
+; resources
+File ${SDKPlugins}\plLoadEx\plLoadEx.rc
+File ${SDKPlugins}\plLoadEx\resource.h
+File ${SDKPlugins}\plLoadEx\version.rc2
+File ${SDKPlugins}\plLoadEx\example.simple \ No newline at end of file
diff --git a/Src/installer/SDK/playlist.nsh b/Src/installer/SDK/playlist.nsh
new file mode 100644
index 00000000..c5228091
--- /dev/null
+++ b/Src/installer/SDK/playlist.nsh
@@ -0,0 +1,6 @@
+SetOutPath $INSTDIR\playlist
+File ${PROJECTS}\playlist\ifc_playlistloader.h
+File ${PROJECTS}\playlist\ifc_playlistloadercallback.h
+File ${PROJECTS}\playlist\ifc_plentryinfo.h
+File ${PROJECTS}\playlist\svc_playlisthandler.h
+File ${PROJECTS}\playlist\api_playlistmanager.h
diff --git a/Src/installer/SDK/wasabi.nsh b/Src/installer/SDK/wasabi.nsh
new file mode 100644
index 00000000..5a874ae8
--- /dev/null
+++ b/Src/installer/SDK/wasabi.nsh
@@ -0,0 +1,50 @@
+; Wasabi
+
+; Service Manager API
+SetOutPath $INSTDIR\Wasabi\api\service
+File ${PROJECTS}\Wasabi\api\service\api_service.h
+File ${PROJECTS}\Wasabi\api\service\waServiceFactory.h
+SetOutPath $INSTDIR\Wasabi\api\syscb\callbacks
+File ${PROJECTS}\Wasabi\api\syscb\callbacks\svccb.h
+
+; services
+SetOutPath $INSTDIR\Wasabi\api\service
+File ${PROJECTS}\Wasabi\api\service\services.h
+SetOutPath $INSTDIR\Wasabi\api\service\svcs
+File ${PROJECTS}\Wasabi\api\service\svcs\svc_imgload.h
+
+; Application API
+SetOutPath $INSTDIR\Wasabi\api\application
+File ${PROJECTS}\Wasabi\api\application\api_application.h
+File ${PROJECTS}\Wasabi\api\application\ifc_messageprocessor.h
+
+; Memory Manager
+SetOutPath $INSTDIR\Wasabi\api\memmgr
+File ${PROJECTS}\Wasabi\api\memmgr\api_memmgr.h
+
+; System Callbacks
+SetOutPath $INSTDIR\Wasabi\api\syscb
+File ${PROJECTS}\Wasabi\api\syscb\api_syscb.h
+SetOutPath $INSTDIR\Wasabi\api\syscb\callbacks
+File ${PROJECTS}\Wasabi\api\syscb\callbacks\syscb.h
+
+; Replicant/nswasabi
+SetOutPath $INSTDIR\Replicant\nswasabi
+File ${PROJECTS}\Replicant\nswasabi\ReferenceCounted.h
+
+; Playback Core (Modern skins only!)
+SetOutPath $INSTDIR\Wasabi\api\core
+File ${PROJECTS}\Wasabi\api\core\api_core.h
+SetOutPath $INSTDIR\Wasabi\api\syscb\callbacks
+File ${PROJECTS}\Wasabi\api\syscb\callbacks\corecb.h
+
+; Maki (Script) API
+SetOutPath $INSTDIR\Wasabi\api\script
+File ${PROJECTS}\Wasabi\api\script\api_maki.h
+File ${PROJECTS}\Wasabi\api\script\scriptvar.h
+File ${PROJECTS}\Wasabi\api\script\vcputypes.h
+File ${PROJECTS}\Wasabi\api\script\scriptguid.h
+File ${PROJECTS}\Wasabi\api\script\scriptobj.h
+File ${PROJECTS}\Wasabi\api\script\objects\rootobjcb.h
+SetOutPath $INSTDIR\Wasabi\api\service\svcs
+File ${PROJECTS}\Wasabi\api\service\svcs\svc_scriptobj.h \ No newline at end of file
diff --git a/Src/installer/SDK/winamp_api.nsh b/Src/installer/SDK/winamp_api.nsh
new file mode 100644
index 00000000..5d037b98
--- /dev/null
+++ b/Src/installer/SDK/winamp_api.nsh
@@ -0,0 +1,10 @@
+; Winamp API
+SetOutPath $INSTDIR\Winamp
+File ${PROJECTS}\Winamp\wa_ipc.h
+File ${PROJECTS}\Winamp\wa_dlg.h
+File ${PROJECTS}\Winamp\DSP.h
+File ${PROJECTS}\Winamp\GEN.H
+File ${PROJECTS}\Winamp\ipc_pe.h
+File ${PROJECTS}\Winamp\IN2.H
+File ${PROJECTS}\Winamp\OUT.H
+
diff --git a/Src/installer/SDK/xml.nsh b/Src/installer/SDK/xml.nsh
new file mode 100644
index 00000000..96be162b
--- /dev/null
+++ b/Src/installer/SDK/xml.nsh
@@ -0,0 +1,5 @@
+; XML Parser Object
+SetOutPath $INSTDIR\xml
+File ${PROJECTS}\xml\obj_xml.h
+File ${PROJECTS}\xml\ifc_xmlreadercallback.h
+File ${PROJECTS}\xml\ifc_xmlreaderparams.h \ No newline at end of file
diff --git a/Src/installer/SDK/xspf.nsh b/Src/installer/SDK/xspf.nsh
new file mode 100644
index 00000000..e82be382
--- /dev/null
+++ b/Src/installer/SDK/xspf.nsh
@@ -0,0 +1,21 @@
+SetOutPath $INSTDIR\xspf
+
+; project files
+File ${PROJECTS}\xspf\xspf.sln
+File ${PROJECTS}\xspf\xspf.vcxproj
+File ${PROJECTS}\xspf\xspf.vcxproj.filters
+
+; source files
+File ${PROJECTS}\xspf\main.cpp
+File ${PROJECTS}\xspf\api.h
+File ${PROJECTS}\xspf\XSPFHandler.cpp
+File ${PROJECTS}\xspf\XSPFHandler.h
+File ${PROJECTS}\xspf\XSPFHandlerFactory.cpp
+File ${PROJECTS}\xspf\XSPFHandlerFactory.h
+File ${PROJECTS}\xspf\XSPFLoader.cpp
+File ${PROJECTS}\xspf\XSPFLoader.h
+
+; resource files
+File ${PROJECTS}\xspf\xspf.rc
+File ${PROJECTS}\xspf\resource.h
+File ${PROJECTS}\xspf\version.rc2