aboutsummaryrefslogtreecommitdiff
path: root/Src/installer/winamp/wasections.nsh
diff options
context:
space:
mode:
Diffstat (limited to 'Src/installer/winamp/wasections.nsh')
-rw-r--r--Src/installer/winamp/wasections.nsh205
1 files changed, 205 insertions, 0 deletions
diff --git a/Src/installer/winamp/wasections.nsh b/Src/installer/winamp/wasections.nsh
new file mode 100644
index 00000000..c8030b75
--- /dev/null
+++ b/Src/installer/winamp/wasections.nsh
@@ -0,0 +1,205 @@
+!include "FileFunc.nsh"
+!include ".\sectionsHelper.nsh"
+
+Section -SetWinampFolders
+ ${If} ${Silent}
+ Call SetupWinampDirectories
+ ${EndIf}
+SectionEnd
+
+Section -KillWA
+ ${If} ${FileExists} "$INSTDIR\${WINAMPEXE}"
+ StrCpy $FIRSTINSTALL "0"
+ ${Else}
+ StrCpy $FIRSTINSTALL "1"
+ ${EndIf}
+
+ ${If} ${FileExists} "$WINAMPM3U"
+ StrCpy $needplaystart "0"
+ ${Else}
+ StrCpy $needplaystart "1"
+ ${EndIf}
+
+ DetailPrint $(IDS_RUN_CHECK_PROCESS)
+ SetDetailsPrint none
+ ${Do}
+ ClearErrors
+ Delete "$INSTDIR\${WINAMPEXE}"
+ ${If} ${Errors}
+ SetErrors
+ IfSilent done
+ MessageBox MB_DEFBUTTON2|MB_ABORTRETRYIGNORE $(msgCloseWinamp) IDABORT done IDRETRY +2
+ ClearErrors
+ ${EndIf}
+ ${LoopWhile} ${Errors}
+
+ StrCpy $1 0
+ ${Do}
+ ClearErrors
+ Delete "$INSTDIR\winampa.exe"
+ ${If} ${Errors}
+ SetErrors
+ FindWindow $0 "WinampAgentMain"
+ ${If} $0 = 0 ; something bad or other session
+ IfSilent done
+ MessageBox MB_DEFBUTTON2|MB_ABORTRETRYIGNORE $(IDS_MSG_AGENTONOTHERSESSION) IDABORT done IDRETRY +2
+ ClearErrors
+ ${Else}
+ IntOp $1 $1 + 1
+ IntCmp $1 40 done
+ SendMessage $0 ${WM_CLOSE} 0 0 /TIMEOUT=2000
+ Sleep 250
+ IsWindow $0 0 agentwnd_killed
+ SendMessage $0 ${WM_DESTROY} 0 0 /TIMEOUT=2000
+ Sleep 250
+ agentwnd_killed:
+ ${EndIf}
+ ${EndIf}
+ ${LoopWhile} ${Errors}
+
+done:
+ SetDetailsPrint lastused
+ ${If} ${Errors}
+ Abort $(msgInstallAborted)
+ ${EndIf}
+
+ ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "WinampAgent"
+ ${If} $0 == "$INSTDIR\winampa.exe"
+ StrCpy $RESTARTAGENT "1"
+ DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "WinampAgent"
+ ${Else}
+ StrCpy $RESTARTAGENT "0"
+ ${EndIf}
+SectionEnd
+
+Section -HiddenPathINI
+ CreateDirectory $INSTDIR
+ ${If} $SETTINGSDIR != $INSTDIR
+ CreateDirectory $SETTINGSDIR
+ Call GetWinampFolder
+ Pop $0
+ SetShellVarContext current
+ StrCpy $1 "$APPDATA\$0"
+ ${If} $SETTINGSDIR == $1
+ WriteINIStr "$INSTDIR\paths.ini" "Winamp" "inidir" "{26}\$0"
+ ${Else}
+ WriteINIStr "$INSTDIR\paths.ini" "Winamp" "inidir" "$SETTINGSDIR"
+ ${EndIf}
+ ${EndIf}
+SectionEnd
+
+!include ".\sections\winamp.nsh"
+
+!ifndef WINAMP64
+Section -HiddenFeedback
+ SetOutPath "$INSTDIR\Plugins"
+ Delete "$INSTDIR\Plugins\gen_talkback.dll"
+ File /nonfatal "${FILES_PATH}\Plugins\gen_crasher.dll"
+ Delete "$INSTDIR\Plugins\reporter.exe"
+ Delete "$INSTDIR\Plugins\tbsetup.exe"
+
+ SetOutPath "$INSTDIR"
+ File /nonfatal "${FILES_PATH}\reporter.exe"
+SectionEnd
+!endif ; WINAMP64
+
+!ifndef WINAMP64
+${WinampSection} "winampAgent" $(compAgent) IDX_SEC_AGENT
+ ${SECTIONIN_LITE}
+ SetOutPath $INSTDIR
+ File "${FILES_PATH}\winampa.exe"
+ ${If} $RESTARTAGENT == "1"
+ WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "WinampAgent" "$INSTDIR\winampa.exe"
+ ${EndIf}
+ Var /GLOBAL WINAMP_SECTION_NAME_4
+ StrCpy $WINAMP_SECTION_NAME_4 "winampAgent"
+${WinampSectionEnd}
+
+!endif ; WINAMP64
+!include ".\sections\frenchRadio.nsh"
+!include ".\sections\grp_mmedia.nsh"
+!include ".\sections\grp_walib.nsh"
+!include ".\sections\grp_uiext.nsh"
+!include ".\sections\grp_vis.nsh"
+!include ".\sections\extra.nsh"
+!include ".\sections\wmfdist.nsh"
+!include ".\sections\directX.nsh"
+
+${DIRECTXINSTALL_INSERT_SECTION}
+
+!insertmacro GetTime
+
+Section "-end" IDX_SECTION_END
+ SetDetailsPrint textonly
+ ${If} ${FileExists} "$INSTDIR\Plugins\gen_peercast.dll"
+ GetDLLVersion "$INSTDIR\Plugins\gen_peercast.dll" $0 $1
+ ${If} $0 == ""
+ MessageBox MB_YESNO "Peercast plug-in detected. The old version of this plug-in$\r$\nmay cause problems. Hit Yes to remove this plug-in (recommended)." /SD IDYES IDNO +2
+ Delete "$INSTDIR\Plugins\gen_peercast.dll"
+ ${EndIf}
+ ${EndIf}
+
+ Delete "$INSTDIR\Plugins\gen_nomad.dll" ; ha ha fuck off creative
+ Delete "$INSTDIR\Plugins\in_mp3pro.dll" ; mp3 pro plugin is BUGGGGGY
+ Delete "$INSTDIR\Plugins\gen_diebrowserdie.dll" ; DrO's deprecated StationInfo window killer
+ Delete "$INSTDIR\Plugins\ml_lite_n.dll" ; deprecated essential pack plugin
+ Delete "$INSTDIR\Plugins\gen_nopro.dll" ; deprecated essential pack plugin
+ Delete "$INSTDIR\Plugins\gen_killpredixis.dll" ; deprecated essential pack plugin
+ Delete "$INSTDIR\Plugins\gen_b4s2m3u.dll" ; DrO's deprecated PlaylistLoader plugin
+; Delete "$INSTDIR\Plugins\gen_skinmanager.dll" ; placeholder for old essential pack plugin
+; Delete "$INSTDIR\Plugins\gen_timerestore.dll" ; placeholder for old essential pack plugin
+; Delete "$INSTDIR\Plugins\gen_undo.dll" ; placeholder for old essential pack plugin
+ DeleteRegKey HKCR .wpz
+ DeleteRegKey HKCR aip_file
+
+ DeleteINIStr "$WINAMPINI" "Winamp" "mb_open"
+ DeleteINIStr "$WINAMPINI" "Winamp" "last_shortdesc"
+ DeleteINIStr "$WINAMPINI" "Winamp" "last_shorturl"
+ WriteINIStr "$WINAMPINI" "Winamp" "mw_open" "1"
+
+ ReadINIStr $R0 "$WINAMPINI" "Winamp" "outname"
+ ${If} $R0 == ""
+ ${If} ${FileExists} "$INSTDIR\Plugins\out_ds.dll"
+ WriteINIStr "$WINAMPINI" "Winamp" "outname" "out_ds.dll"
+ ${Else}
+ ${If} ${FileExists} "$INSTDIR\Plugins\out_wave.dll"
+ WriteINIStr "$WINAMPINI" "Winamp" "outname" "out_wave.dll"
+ ${EndIf}
+ ${EndIf}
+ ${EndIf}
+
+ Call StartMenu_WriteData
+
+ WriteUninstaller "$INSTDIR\UninstWA.exe"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "DisplayName" "${WINAMP}"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "DisplayIcon" "$INSTDIR\${WINAMPEXE},0"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "InstallLocation" "$INSTDIR"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "UninstallString" '"$INSTDIR\UninstWA.exe"'
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "HelpLink" "http://forums.winamp.com"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "URLInfoAbout" "http://www.winamp.com/"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "URLUpdateInfo" "http://www.winamp.com/"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "Publisher" "Winamp SA"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "DisplayVersion" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MINOR_SECOND}"
+ ; WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "DisplayVersion" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MINOR_SECOND} ${InstallType}"
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "NoModify" 1
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${WINAMP}" "NoRepair" 1
+
+ WriteRegStr HKCU "Software\${WINAMP}" "" "$INSTDIR"
+
+ ; Add to App Paths for: Start -> Run -> Winamp
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\${WINAMPEXE}" "" "$INSTDIR\${WINAMPEXE}"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\${WINAMPEXE}" "Path" "$INSTDIR"
+
+ WriteINIStr "$INSTINI" "installer" "build" "${VERSION_SUFFIX}"
+ ${GetTime} "" "LS" $0 $1 $2 $3 $4 $5 $6
+ WriteINIStr "$INSTINI" "installer" "date" "$1/$0/$2 $4:$5:$6"
+
+ WriteINIStr "$WINAMPINI" "WinampReg" "IsFirstInst" $FIRSTINSTALL
+ WriteINIStr "$WINAMPINI" "WinampReg" "NeedReg" "1"
+
+ ${If} $needplaystart <> 0
+ WriteINIStr "$WINAMPINI" "SETUP" "WAParam" "$WINAMPM3U"
+ ${Else}
+ DeleteINIStr "$WINAMPINI" "SETUP" "WAParam"
+ ${EndIf}
+SectionEnd \ No newline at end of file