diff options
Diffstat (limited to 'Src/installer/winamp/sections/winamp.nsh')
-rw-r--r-- | Src/installer/winamp/sections/winamp.nsh | 510 |
1 files changed, 510 insertions, 0 deletions
diff --git a/Src/installer/winamp/sections/winamp.nsh b/Src/installer/winamp/sections/winamp.nsh new file mode 100644 index 00000000..266742ce --- /dev/null +++ b/Src/installer/winamp/sections/winamp.nsh @@ -0,0 +1,510 @@ +!macro DllUnregisterAndDelete __dllPath + ${If} ${FileExists} "${__dllPath}" + UnRegdll "${__dllPath}" + Delete /REBOOTOK "${__dllPath}" + ${EndIf} +!macroend + +!define DllUnregisterAndDelete "!insertmacro 'DllUnregisterAndDelete'" + +${WinampSection} "winampApplication" $(secWinamp) IDX_SEC_WINAMP ; <<< [Winamp] + SectionIn 1 2 3 4 5 6 7 8 RO + + DetailPrint "$(IDS_CLEANUP_PLUGINS)" + SetDetailsPrint none + + ; cleanup old shit + UnRegDLL "$INSTDIR\Plugins\in_asfs.dll" + Delete /REBOOTOK "$INSTDIR\Plugins\in_asfs.dll" + + ; Gracenote doesn't need installing, remove any existing files + ${DllUnregisterAndDelete} "$INSTDIR\Plugins\cddbcontrolwinamp.dll" + ${DllUnregisterAndDelete} "$INSTDIR\Plugins\cddbuiwinamp.dll" + ${DllUnregisterAndDelete} "$INSTDIR\Plugins\Gracenote\cddbuiwinamp.dll" + ${DllUnregisterAndDelete} "$INSTDIR\Plugins\Gracenote\CddbMusicIDWinamp.dll" + ${DllUnregisterAndDelete} "$INSTDIR\Plugins\Gracenote\CddbPlaylist2Winamp.dll" + ${DllUnregisterAndDelete} "$INSTDIR\Plugins\Gracenote\cddbcontrolwinamp.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbWOManagerWinamp.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbFPX1.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbAFX3.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbCMSig_1_2.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbCMSig_1_3.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbFEX.dll" + Delete "$INSTDIR\Plugins\Gracenote\CddbS12T.dll" + Delete "$INSTDIR\Plugins\Gracenote\Cddbx*.dll" + Delete "$INSTDIR\System\gracenote.w5s" + Delete "$INSTDIR\System\gracenote.wbm" + RMDir "$INSTDIR\Plugins\Gracenote" + ; Gracenote end + + ; Remove old VS2008 runtime on Win8.1 and higher + ${if} ${IsWin7} + goto skipthis1 + ${Else} + Delete "$INSTDIR\Microsoft.VC90.CRT\msvcr90.dll" + Delete "$INSTDIR\Microsoft.VC90.CRT\msvcp90.dll" + Delete "$INSTDIR\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest" + RMDir /r "$INSTDIR\Microsoft.VC90.CRT" + skipthis1: + ${EndIf} + + Delete "$INSTDIR\System\vp8x.w5s" + Delete "$INSTDIR\System\vp8x.wbm" + Delete "$INSTDIR\System\a52.w5s" + Delete "$INSTDIR\System\a52.wbm" + Delete "$INSTDIR\System\dca.w5s" + Delete "$INSTDIR\System\dca.wbm" + + Delete "$INSTDIR\Plugins\ml_orb.dll" + Delete "$INSTDIR\Plugins\gen_dropbox.dll" + + Delete "$INSTDIR\System\watcher.w5s" ; watcher is unused now that Music Now is gone + Delete "$INSTDIR\System\watcher.wbm" + Delete "$INSTDIR\System\db.w5s" + Delete "$INSTDIR\System\db.wbm" + Delete "$INSTDIR\Plugins\gen_ff.dll" + Delete "$INSTDIR\Plugins\Freeform\wacs\freetype\freetype.wac" + Delete "$INSTDIR\System\timer.w5s" + Delete "$INSTDIR\System\UnicodeTaskbarFix.w5s" + Delete "$INSTDIR\System\timer.wbm" + Delete "$INSTDIR\System\UnicodeTaskbarFix.wbm" + Delete "$INSTDIR\System\filereader.w5s" + Delete "$INSTDIR\System\filereader.wbm" + Delete "$INSTDIR\System\jnetlib.w5s" + Delete "$INSTDIR\System\jnetlib.wbm" + Delete "$INSTDIR\System\aacPlusDecoder.w5s" + Delete "$INSTDIR\System\aacPlusDecoder.wbm" + Delete "$INSTDIR\System\aacdec.w5s" + Delete "$INSTDIR\System\aacdec.wbm" + Delete "$INSTDIR\System\adpcm.w5s" + Delete "$INSTDIR\System\adpcm.wbm" + Delete "$INSTDIR\System\pcm.w5s" + Delete "$INSTDIR\System\pcm.wbm" + Delete "$INSTDIR\System\mp3.w5s" + Delete "$INSTDIR\System\mp3.wbm" + Delete "$INSTDIR\System\alac.w5s" + Delete "$INSTDIR\System\alac.wbm" + Delete "$INSTDIR\System\theora.w5s" + Delete "$INSTDIR\System\theora.wbm" + Delete "$INSTDIR\System\f263.w5s" + Delete "$INSTDIR\System\f263.wbm" + Delete "$INSTDIR\System\vlb.w5s" + Delete "$INSTDIR\System\vlb.wbm" + Delete "$INSTDIR\System\mp4v.w5s" + Delete "$INSTDIR\System\mp4v.wbm" + Delete "$INSTDIR\System\vp6.w5s" + Delete "$INSTDIR\System\vp6.wbm" + Delete "$INSTDIR\System\vp8.w5s" + Delete "$INSTDIR\System\vp8.wbm" + Delete "$INSTDIR\System\h264.w5s" + Delete "$INSTDIR\System\h264.wbm" + Delete "$INSTDIR\System\dlmgr.w5s" + Delete "$INSTDIR\System\dlmgr.wbm" + Delete "$INSTDIR\System\ClassicPro.wbm" + Delete "$INSTDIR\System\wac_network.w5s" + Delete "$INSTDIR\System\wac_downloadManager.w5s" + Delete "$INSTDIR\Plugins\gen_ml.dll" ; make sure gen_ff and gen_ml are not kept if unchecked + + ; delete ML plug-ins so that unselecting them does not keep the old versions around + Delete "$INSTDIR\Plugins\ml_xpdxs.dll" + Delete "$INSTDIR\Plugins\ml_local.dll" + Delete "$INSTDIR\Plugins\ml_playlists.dll" + Delete "$INSTDIR\Plugins\ml_disc.dll" + Delete "$INSTDIR\Plugins\ml_bookmarks.dll" + Delete "$INSTDIR\Plugins\ml_history.dll" + Delete "$INSTDIR\Plugins\ml_impex.dll" + Delete "$INSTDIR\Plugins\ml_nowplaying.dll" + Delete "$INSTDIR\Plugins\ml_rg.dll" + Delete "$INSTDIR\Plugins\ml_plg.dll" + Delete "$INSTDIR\Plugins\ml_online.dll" + Delete "$INSTDIR\Plugins\ml_dash.dll" + Delete "$INSTDIR\Plugins\ml_wire.dll" + Delete "$INSTDIR\Plugins\ml_transcode.dll" + Delete "$INSTDIR\Plugins\ml_autotag.dll" + Delete "$INSTDIR\Plugins\ml_addons.dll" + Delete "$INSTDIR\Plugins\ml_downloads.dll" + Delete "$INSTDIR\Plugins\ml_cloud.dll" + Delete "$INSTDIR\Plugins\ml_nft.dll" + Delete "$INSTDIR\Plugins\ml_fanzone.dll" + Delete "$INSTDIR\Plugins\ml_hotmixradio.dll" + Delete "$INSTDIR\Plugins\gen_orgler.dll" + Delete "$INSTDIR\System\auth.w5s" + Delete "$INSTDIR\System\wasabi2.w5s" + Delete "$INSTDIR\Components\cloud.w6c" + Delete "$INSTDIR\Components\ssdp.w6c" + Delete "$INSTDIR\Components\web.w6c" + + Delete "$INSTDIR\Plugins\ml_pmp.dll" + Delete "$INSTDIR\Plugins\ml_devices.dll" + Delete "$INSTDIR\Plugins\pmp_p4s.dll" + Delete "$INSTDIR\Plugins\pmp_ipod.dll" + Delete "$INSTDIR\Plugins\pmp_wifi.dll" + Delete "$INSTDIR\Plugins\pmp_njb.dll" + Delete "$INSTDIR\Plugins\pmp_usb.dll" + Delete "$INSTDIR\Plugins\pmp_usb2.dll" + Delete "$INSTDIR\Plugins\pmp_android.dll" + Delete "$INSTDIR\Plugins\pmp_activesync.dll" + Delete "$INSTDIR\Plugins\pmp_cloud.dll" + Delete "$INSTDIR\System\devices.w5s" + Delete "$INSTDIR\System\devices.wbm" + + Delete "$INSTDIR\Plugins\gen_b4s2m3u.dll" + Delete "$INSTDIR\pxsdkpls.dll" + Delete "$INSTDIR\primosdk.dll" + Delete "$INSTDIR\burnlib.dll" + Delete "$INSTDIR\System\primo.w5s" + Delete "$INSTDIR\pconfig.dcf" + Delete "$INSTDIR\demoedit.aac" + + Delete "$INSTDIR\jnetlib.dll" + Delete "$INSTDIR\libFLAC.dll" + Delete "$INSTDIR\libmp4v2.dll" + Delete "$INSTDIR\Shared\libmpg123.dll" + Delete "$INSTDIR\libsndfile.dll" + Delete "$INSTDIR\nde.dll" + Delete "$INSTDIR\nsutil.dll" + Delete "$INSTDIR\nxlite.dll" + Delete "$INSTDIR\Plugins\ReplayGainAnalysis.dll" + Delete "$INSTDIR\tataki.dll" + Delete "$INSTDIR\Plugins\tataki.dll" + Delete "$INSTDIR\zlib.dll" + + Delete "$INSTDIR\Shared\jnetlib.dll" + Delete "$INSTDIR\Shared\libFLAC.dll" + Delete "$INSTDIR\Shared\libalac.dll" + Delete "$INSTDIR\Shared\libFLAC_dynamic.dll" + Delete "$INSTDIR\Shared\libmp4v2.dll" + Delete "$INSTDIR\Shared\libsndfile.dll" + Delete "$INSTDIR\Shared\nde.dll" + Delete "$INSTDIR\Shared\nsutil.dll" + Delete "$INSTDIR\Shared\nxlite.dll" + Delete "$INSTDIR\Shared\ReplayGainAnalysis.dll" + Delete "$INSTDIR\Shared\tataki.dll" + Delete "$INSTDIR\Shared\zlib.dll" + Delete "$INSTDIR\Shared\read_file.dll" + + Delete "$INSTDIR\Winamp.exe.manifest" + Delete "$SETTINGSDIR\winamp.pic" ; deprecated plug-in cache file + + ; delete the Qt5 engine files + Delete "$INSTDIR\Qt5Core.dll" + Delete "$INSTDIR\Qt5Network.dll" + Delete "$INSTDIR\platforms\qwindows.dll" + RMDir "$INSTDIR\platforms" + Delete "$INSTDIR\printsupport\windowsprintersupport.dll" + RMDir "$INSTDIR\printsupport" + Delete "$INSTDIR\QtPositioning\declarative_positioning.dll" + RMDir "$INSTDIR\QtPositioning" + + ; delete the Cloud settings and associated folders + ; will leave playlists behind incase people made + ; cloud ones or used the restore on loss feature + RMDir /r "$SETTINGSDIR\Cloud\views" + RMDir "$SETTINGSDIR\Cloud\playlists" + RMDir /r "$SETTINGSDIR\Cloud\logs" + Delete "$SETTINGSDIR\Cloud\*.db" + Delete "$SETTINGSDIR\Cloud\*.db-shm" + Delete "$SETTINGSDIR\Cloud\*.db-wal" + RMDir "$SETTINGSDIR\Cloud" ; if there's still something left then leave e.g. playlists + + ; delete any other plug-ins so that unselecting them does not keep the old versions around + Delete "$INSTDIR\Plugins\gen_crasher.dll" + Delete "$INSTDIR\Plugins\gen_tray.dll" + Delete "$INSTDIR\Plugins\gen_hotkeys.dll" + Delete "$INSTDIR\Plugins\in_wm.dll" + Delete "$INSTDIR\Plugins\in_mp4.dll" + Delete "$INSTDIR\Plugins\in_cdda.dll" + Delete "$INSTDIR\Plugins\in_midi.dll" + Delete "$INSTDIR\Plugins\in_mod.dll" + Delete "$INSTDIR\Plugins\read_file.dll" + Delete "$INSTDIR\Plugins\in_vorbis.dll" + Delete "$INSTDIR\Plugins\in_flac.dll" + Delete "$INSTDIR\Plugins\in_wave.dll" + Delete "$INSTDIR\Plugins\in_nsv.dll" + Delete "$INSTDIR\Plugins\in_flv.dll" + Delete "$INSTDIR\Plugins\in_swf.dll" + Delete "$INSTDIR\Plugins\in_dshow.dll" + Delete "$INSTDIR\Plugins\in_avi.dll" + Delete "$INSTDIR\Plugins\in_mkv.dll" + Delete "$INSTDIR\Plugins\in_linein.dll" + Delete "$INSTDIR\Plugins\enc_lame.dll" + Delete "$INSTDIR\Plugins\enc_wma.dll" + Delete "$INSTDIR\Plugins\enc_wav.dll" + Delete "$INSTDIR\Plugins\enc_flac.dll" + Delete "$INSTDIR\Plugins\enc_vorbis.dll" + Delete "$INSTDIR\Plugins\enc_aacplus.dll" + Delete "$INSTDIR\Plugins\out_wave.dll" + Delete "$INSTDIR\Plugins\out_disk.dll" + Delete "$INSTDIR\Plugins\vis_nsfs.dll" + Delete "$INSTDIR\Plugins\vis_avs.dll" + Delete "$INSTDIR\Plugins\vis_milk2.dll" + Delete "$INSTDIR\Plugins\dsp_sps.dll" + Delete "$INSTDIR\Plugins\nsvdec_vp3.dll" + Delete "$INSTDIR\Plugins\nsvdec_vp5.dll" + Delete "$INSTDIR\System\ombrowser.w5s" + Delete "$INSTDIR\System\ombrowser.wbm" + ; Delete "$INSTDIR\Plugins\gen_jumpex.dll" ; delete JTFE as no longer supported (not) + + ; 5.8: keep enc_fhgaac.dll & lame_enc.dll (if present on upgrades) | 5.9: delete lame_enc.dll only + ; Delete "$INSTDIR\Plugins\enc_fhgaac.dll" + Delete "$INSTDIR\Plugins\lame_enc.dll" + + ; Delete DrO's ml_enqplay plugin because it crashes Winamp 5.9 + Delete "$INSTDIR\Plugins\ml_enqplay.dll" + + ; Delete DrO's gen_ipc_stopplaying_blocker.dll which was a workaround for 5.57x only + Delete "$INSTDIR\Plugins\gen_ipc_stopplaying_blocker.dll" + + ; Delete DrO's gen_find_on_disk.dll which is now fully integrated into Winamp in 5.64 + ; The plug-ins core had been present as api_explorerfindfile.h for a while, just not + ; done fully as a native menu item and global hotkey (does preseve any prior hotkey) + Delete "$INSTDIR\Plugins\gen_find_on_disk.dll" + + ; Delete DrO's gen_nunzio.dll as now replaced by koopa's info tool + Delete "$INSTDIR\Plugins\gen_nunzio.dll" + + ; Delete DrO's gen_cd_menu.dll which is now fully integrated into Winamp in 5.64 + ; The functionality was in winamp agent (showing cd drive volume name in menus) + Delete "$INSTDIR\Plugins\gen_cd_menu.dll" + + ; Delete DrO's gen_wolfgang.dll which is now fully integrated into gen_hotkeys in 5.64 + Delete "$INSTDIR\Plugins\gen_wolfgang.dll" + + ; Delete DrO's gen_os_diag.dll which is now partially integrated (saving main dialog positions) in 5.64 + ; and is causing issues with the Alt+3 dialog and the combobox so better safe than sorry, it now dies. + Delete "$INSTDIR\Plugins\gen_os_diag.dll" + + ; Delete DrO's gen_mwblock.dll which is now fully integrated into Winamp in 5.66 + Delete "$INSTDIR\Plugins\gen_mwblock.dll" + + ; Delete Joonas' old mass tagger plugin, as is now natively implemented in 5.66 pledit + Delete "$INSTDIR\Plugins\gen_tagger.dll" + + ; Delete Thinktink's bpembededart plugin (uncomment these lines if dro's embed albumart feature is reimplemeted) + ; Delete "$INSTDIR\Plugins\gen_bpembededart.dll" + ; Delete "$INSTDIR\System\bpembededart.w5s" + ; Delete "$SETTINGSDIR\Plugins\BPEmbededArt.ini" + + ; Disable buggy 3rd-party gen_msn7 plugin (causes v5.57+ to crash on load) + ${If} ${FileExists} "$INSTDIR\Plugins\gen_msn7.dll" + MessageBox MB_OK "$(IDS_MSN7_PLUGIN_DISABLE)" /SD IDOK + Rename "$INSTDIR\Plugins\gen_msn7.dll" "$INSTDIR\Plugins\gen_msn7.dll.off" + ${EndIf} + + ; Warn about 3rd-party gen_lyrics plugin (old version causes v5.59+ to crash on load) + ${If} ${FileExists} "$INSTDIR\Plugins\gen_lyrics.dll" + MessageBox MB_OK "$(IDS_LYRICS_PLUGIN_WARNING)" /SD IDOK + ; Rename "$INSTDIR\Plugins\gen_lyrics.dll" "$INSTDIR\Plugins\gen_lyrics.dll.off" + ${EndIf} + + ; Disable 3rd-party gen_lyrics_ie plugin (causes Winamp to crash) + ${If} ${FileExists} "$INSTDIR\Plugins\gen_lyrics_ie.dll" + MessageBox MB_OK "$(IDS_LYRICS_IE_PLUGIN_DISABLE)" /SD IDOK + Rename "$INSTDIR\Plugins\gen_lyrics_ie.dll" "$INSTDIR\Plugins\gen_lyrics_ie.off" + ${EndIf} + + DeleteINIStr "$WINAMPINI" "Winamp" "mbdefloc" + SetDetailsPrint lastused + +;------------------------------------------------------------------------------------ +;install section + +; VC142 runtime required for Win7 & 8 installations - pt.2: embedded +; Do we need this any more? Let's leave it for now, but look at removing it later (for 5.9.1)... +!ifndef WINAMP64 + ${If} ${AtLeastWin7} + ${AndIf} ${AtMostWin8.1} + SetOutPath "$INSTDIR\Microsoft.VC142.CRT" + File "${FILES_PATH}\resources\libraries\msvcp140.dll" + File "${FILES_PATH}\resources\libraries\vcruntime140.dll" + File "${FILES_PATH}\resources\libraries\msvcp140_1.dll" + File "${FILES_PATH}\resources\libraries\msvcp140_2.dll" + File "${FILES_PATH}\resources\libraries\msvcp140_atomic_wait.dll" + File "${FILES_PATH}\resources\libraries\msvcp140_codecvt_ids.dll" + File "${FILES_PATH}\resources\libraries\vccorlib140.dll" + File "${FILES_PATH}\resources\libraries\concrt140.dll" + ${EndIf} +!endif + +; VC90 runtime section (for Win7 only) +!ifndef WINAMP64 + ${If} ${IsWin7} + ${AndIfNot} ${FileExists} "$INSTDIR\Microsoft.VC90.CRT\msvcr90.dll" + SetOutPath "$INSTDIR\Microsoft.VC90.CRT" + File "${FILES_PATH}\resources\libraries\msvcr90.dll" + File "${FILES_PATH}\resources\libraries\msvcp90.dll" + File "${FILES_PATH}\resources\libraries\Microsoft.VC90.CRT.manifest" + ${EndIf} + SetOutPath "$INSTDIR" +!endif + + ; TODO alter this to show a message (here or later in install) +;!ifdef PRO +; WriteINIStr "$WINAMPINI" "Winamp" "PromptForRegKey" "1" +;!endif ; PRO + SetOutPath "$INSTDIR" + + SetOverwrite off + File "/oname=$WINAMPM3U" "..\..\resources\media\winamp.m3u" + SetOverwrite ${OVERWRITEMODE} + + File "/oname=${WINAMPEXE}" "${FILES_PATH}\winamp.exe" + + ${If} ${AtLeastWin7} + ${If} ${FileExists} "$INSTDIR\elevator.exe" + KillProcDLL::KillProc "elevator.exe" + Sleep 1000 + ${EndIf} + + ${If} ${FileExists} "$INSTDIR\elevatorps.dll" + UnRegDLL "$INSTDIR\elevatorps.dll" + Sleep 1000 + Delete "$INSTDIR\elevatorps.dll" + ${EndIf} + + ${If} ${FileExists} "$INSTDIR\Shared\elevatorps.dll" + UnRegDLL "$INSTDIR\Shared\elevatorps.dll" + Sleep 1000 + ${EndIf} + + ExecWait '"$INSTDIR\elevator.exe" /UnregServer' + Sleep 1000 + + ${If} ${FileExists} "$INSTDIR\elevatorps.dll" + UnRegDLL "$INSTDIR\elevatorps.dll" + Sleep 1000 + Delete "$INSTDIR\elevatorps.dll" + ${EndIf} + + ${If} ${FileExists} "$INSTDIR\Shared\elevatorps.dll" + UnRegDLL "$INSTDIR\Shared\elevatorps.dll" + Sleep 1000 + ${EndIf} + + SetOutPath "$INSTDIR" + File ${FILES_PATH}\elevator.exe + ExecWait '"$INSTDIR\elevator.exe" /RegServer' + + SetOutPath "$INSTDIR\Shared" + File ${FILES_PATH}\Shared\elevatorps.dll + RegDll "$INSTDIR\Shared\elevatorps.dll" + ${EndIf} + + SetOutPath "$M3UBASEDIR" + File "..\..\resources\media\demo.mp3" + SetOutPath "$INSTDIR" + + File "/oname=whatsnew.txt" "..\..\resources\data\whatsnew.txt" + + Call GetSkinDir + Pop $R0 + SetOutPath $R0 + + DetailPrint "$(IDS_REMOVE_SKINS)" + SetDetailsPrint none + Delete "$R0\${MODERNSKINNAME}.*" + RMDir /r "$R0\${MODERNSKINNAME}" + + RMDir /r "$R0\Winamp Bento" + Delete "$R0\Winamp Bento.*" + + RMDir /r "$R0\Bento" + RMDir /r "$R0\Big Bento" + SetDetailsPrint lastused + + SetOutPath $INSTDIR\Shared + File "${FILES_PATH}\Shared\nsutil.dll" + File "${FILES_PATH}\Shared\tataki.dll" + ; File "${FILES_PATH}\Shared\zlib.dll" ; as from 5.9, zlib is now statically-linked, not a shared dynamic .dll + + SetOutPath "$INSTDIR\System" + ; 2022 - determine whether jnetlib.w5s is still required. If not, these 2 lines need disabling: + ; File "${FILES_PATH}\System\jnetlib.w5s" + ; File /nonfatal "${FILES_PATH}\System\jnetlib.wbm" + ; Jul 2022 - jnetlib.w5s is required by ml_wire & ml_downloads, + ; so for now, we will only install it with those two plugins (see: grp_walib.nsh) + + File "${FILES_PATH}\System\aacdec.w5s" +;!ifndef WINAMP64 +; File /nonfatal "${FILES_PATH}\System\aacdec.wbm" +;!endif + + ; File "${FILES_PATH}\System\dlmgr.w5s" + ; File /nonfatal "${FILES_PATH}\System\dlmgr.wbm" + File "${FILES_PATH}\System\wac_downloadManager.w5s" + File "${FILES_PATH}\System\tagz.w5s" + File "${FILES_PATH}\System\albumart.w5s" + File "${FILES_PATH}\System\playlist.w5s" + File "${FILES_PATH}\System\xspf.w5s" + File "${FILES_PATH}\System\xml.w5s" + File "${FILES_PATH}\System\jpeg.w5s" + File "${FILES_PATH}\System\png.w5s" + File "${FILES_PATH}\System\bmp.w5s" + File "${FILES_PATH}\System\gif.w5s" + + ; File "..\..\resources\Plugins\UnicodeTaskbarFix.w5s" ; this might need to be disabled... + + ; uncomment these lines if dro's albumart retrieval service is reimplemented + ; File "${FILES_PATH}\System\wasabi2.w5s" + ; SetOutPath $INSTDIR\Components + ; File "${FILES_PATH}\Components\web.w6c" + + SetOutPath "$INSTDIR" + File "${FILES_PATH}\fmt.dll" + + Push $0 + StrCpy $0 "$INSTDIR\${WINAMPEXE}" + WriteRegStr HKCR "UVOX" "" "URL: Ultravox Protocol" + WriteRegStr HKCR "UVOX" "URL Protocol" "" + WriteRegStr HKCR "UVOX\shell\open\command" "" "$0 %1" + + WriteRegStr HKCR "SC" "" "URL: SHOUTcast Protocol" + WriteRegStr HKCR "SC" "URL Protocol" "" + WriteRegStr HKCR "SC\shell\open\command" "" "$0 %1" + WriteRegStr HKCR "ICY" "" "URL: SHOUTcast Protocol" + WriteRegStr HKCR "ICY" "URL Protocol" "" + WriteRegStr HKCR "ICY\shell\open\command" "" "$0 %1" + WriteRegStr HKCR "SHOUT" "" "URL: SHOUTcast Protocol" + WriteRegStr HKCR "SHOUT" "URL Protocol" "" + WriteRegStr HKCR "SHOUT\shell\open\command" "" "$0 %1" + Pop $0 + + ; bugfix? + ; this might come back due to WinampURIHandler reg code in Winamp\handler.cpp + ; which can cause filetypes associated with Winamp to be erroneously registered as "URL:Winamp Command Handler" + DeleteRegKey HKCR "winamp" + + ; Enable Firewall + DetailPrint "$(IDS_FIREWALL)" + Push $0 + Push $1 + + StrCpy $0 "$INSTDIR\${WINAMPEXE}" + + ; TODO possibly add a command-line switch to allow for this part to be skipped over? + ; TCP + ; try to update existing rule + ExecDos::exec /NOUNLOAD /TIMEOUT=5000 'netsh advfirewall firewall set rule name="${WINAMP}" dir=in program="$0" profile=private,public protocol=TCP new action=allow enable=yes' "" "" + Pop $1 ;return value + ${If} $1 != 0 ; failed + ; attempt to add application using advanced method (Vista+) + ExecDos::exec /NOUNLOAD /TIMEOUT=5000 'netsh advfirewall firewall add rule name="${WINAMP}" dir=in action=allow program="$0" enable=yes profile=private,public protocol=TCP' "" "" + Pop $1 + ${If} $1 != 0 + ExecDos::exec /NOUNLOAD /TIMEOUT=2000 'netsh firewall add allowedprogram program="$0" name="${WINAMP}" mode=ENABLE scope=ALL profile=ALL' "" "" + ${EndIf} + ${EndIf} + + ; UDP + ; try to update existing rule + ExecDos::exec /NOUNLOAD /TIMEOUT=5000 'netsh advfirewall firewall set rule name="${WINAMP}" dir=in program="$0" profile=private,public protocol=UDP new action=allow enable=yes' "" "" + Pop $1 ;return value + ${If} $1 != 0 ; failed + ; attempt to add application using advanced method (Vista+) + ExecDos::exec /NOUNLOAD /TIMEOUT=5000 'netsh advfirewall firewall add rule name="${WINAMP}" dir=in action=allow program="$0" enable=yes profile=private,public protocol=UDP' "" "" + ${EndIf} + + Pop $1 + Pop $0 + ;SetDetailsPrint lastused +${WinampSectionEnd} ; <<< [Winamp] |