aboutsummaryrefslogtreecommitdiff
path: root/Src/installer/winamp/sections/wmfdist.nsh
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/installer/winamp/sections/wmfdist.nsh
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/installer/winamp/sections/wmfdist.nsh')
-rw-r--r--Src/installer/winamp/sections/wmfdist.nsh151
1 files changed, 151 insertions, 0 deletions
diff --git a/Src/installer/winamp/sections/wmfdist.nsh b/Src/installer/winamp/sections/wmfdist.nsh
new file mode 100644
index 00000000..d91e7cb5
--- /dev/null
+++ b/Src/installer/winamp/sections/wmfdist.nsh
@@ -0,0 +1,151 @@
+!define WMFDIST "Windows Media Format"
+
+; ToDo
+; Win7 package (wmfdist11): http://www.microsoft.com/en-us/download/details.aspx?id=16546
+; Win8 package (wmfdist12): http://www.microsoft.com/en-us/download/details.aspx?id=30685
+
+Function WMF_Download
+
+ Call GetWMFLink
+ Exch $0
+ ${If} $0 != ""
+ DetailPrint "$(IDS_RUN_DOWNLOAD) ${WMFDIST}..."
+ NSISdl::download /TRANSLATE2 "$(IDS_RUN_DOWNLOAD) ${WMFDIST}..." "$(IDS_CONNECTING)" "$(IDS_SECOND)" "$(IDS_MINUTE)" "$(IDS_HOUR)" "$(IDS_SECONDS)" "$(IDS_MINUTES)" "$(IDS_HOURS)" "$(IDS_PROGRESS)" /TIMEOUT=30000 "$0" "$PLUGINSDIR\wmfdist.exe"
+ Pop $0 ; Get the return value
+ ${If} $0 == "success"
+ DetailPrint "$(IDS_RUN_DOWNLOADSUCCESS)"
+ ${ElseIf} $0 == "cancel"
+ DetailPrint "$(IDS_RUN_DOWNLOADCANCELLED)"
+ ${Else}
+ DetailPrint "$(IDS_RUN_DOWNLOADFAILED) $R0"
+ ${EndIf}
+ ${EndIf}
+ Pop $0
+
+FunctionEnd
+
+Function WMF_Install
+ ClearErrors
+ IfFileExists "$PLUGINSDIR\wmfdist.exe" 0 wmf_install_end
+
+ DetailPrint "$(IDS_RUN_INSTALL) ${WMFDIST}..."
+ SetDetailsPrint none
+ ExecWait '$PLUGINSDIR\wmfdist.exe /Q:A' $0
+ SetDetailsPrint lastused
+
+ ${If} ${Errors}
+ StrCpy $1 "1"
+ ${Else}
+ ReadRegDWORD $0 HKCU "Software\Microsoft\MediaPlayer\Setup" InstallResult
+ IntOp $1 $0 & 0x80000000
+ ${If} $0 = 0xd2af9
+ SetRebootFlag true
+ ${EndIf}
+ ${EndIf}
+
+ ${If} $1 = "1"
+ DetailPrint "$(IDS_RUN_INSTALLFIALED)"
+ ${Else}
+ DetailPrint "$(IDS_RUN_DONE)"
+ ${EndIf}
+ wmf_install_end:
+FunctionEnd
+
+
+Function WMF_NeedDownload
+
+ DetailPrint "$(IDS_RUN_EXTRACT) ${WMFDIST}..."
+ SetDetailsPrint none
+
+ ${FileIfExist} "$PLUGINSDIR\wmfdist.exe" "..\..\resources\bundles\wmfdist\wmfdist.exe"
+
+ SetDetailsPrint lastused
+
+ ${Unless} ${FileExists} "$PLUGINSDIR\${WMFDIST}"
+ DetailPrint "$(IDS_RUN_FILE_NOT_FOUND_SCHEDULE_DOWNLOAD)"
+
+ Call GetWMFLink
+ Exch $0
+ ${If} $0 != ""
+ StrCpy $0 "1"
+ ${Else}
+ StrCpy $0 "0"
+ ${EndIF}
+ Exch $0
+ ${Else}
+ DetailPrint "$(IDS_RUN_DONE)"
+ Push "0"
+ ${EndUnless}
+FunctionEnd
+
+;------------------------
+; return link to the wmf distributives or '' (empty string) if you don't need to download
+;------------------------
+
+Function GetWMFLink
+
+ Push $0
+ Push $R0
+ Push $R1
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
+
+ ; check if wma/wmv selected
+ ${IfNot} ${SectionIsSelected} ${IDX_SEC_WMA_DEC}
+ !ifdef IDX_SEC_WMV_DEC
+ ${AndIfNot} ${SectionIsSelected} ${IDX_SEC_WMV_DEC}
+ !endif
+ !ifdef IDX_SEC_WMA_ENC
+ ${AndIfNot} ${SectionIsSelected} ${IDX_SEC_WMA_ENC}
+ !endif
+ Goto no_download
+ ${EndIf}
+
+ GetDllVersion "$SYSDIR\wmvcore.dll" $R0 $R1
+ IntOp $R2 $R0 / 0x00010000
+ IntOp $R3 $R0 & 0x0000FFFF
+ IntOp $R4 $R1 / 0x00010000
+ IntOp $R5 $R1 & 0x0000FFFF
+ ; StrCpy $1 "$R2.$R3.$R4.$R5"
+
+ ; StrCmp $WinVer "ME" wmf90_link
+ ; TODO check this out!
+ /*StrCmp $WinVer "NT" wmf90_link
+ StrCmp $WinVer "2000" wmf90_link
+ StrCmp $WinVer "XP" wmf95_link
+ StrCmp $WinVer "2003" wmf95_link*/
+ Goto no_download
+
+;wmf95_link:
+ IntCmp $R2 10 +1 copy_link1 no_download
+ IntCmp $R3 0 +1 copy_link1 no_download
+ IntCmp $R4 0 +1 copy_link1 no_download
+ IntCmp $R5 2802 no_download copy_link1 no_download
+copy_link1:
+ StrCpy $0 https://download.nullsoft.com/redist/wm/wmfdist95.exe
+ Goto function_end
+;wmf90_link:
+ IntCmp $R2 9 +1 copy_link2 no_download
+ IntCmp $R3 0 +1 copy_link2 no_download
+ IntCmp $R4 0 +1 copy_link2 no_download
+ IntCmp $R5 3287 no_download copy_link2 no_download
+copy_link2:
+ StrCpy $0 https://download.nullsoft.com/redist/wm/wmfdist9.exe
+ Goto function_end
+
+no_download:
+ StrCpy $0 ''
+ goto function_end
+
+function_end:
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $R0
+ Exch $0
+
+FunctionEnd