X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=vlc.win32.nsi.in;h=8a4a5dc84c9566ed47afe44b1d0430690062aa24;hb=c35ce64434d25909fd8ce18abc3d0df2a5ec9668;hp=81661a6a43c707ba27d73eb1702f0733bfc3fdd2;hpb=45a65d46267b0bd074044e67d86a91c314b7223a;p=vlc diff --git a/vlc.win32.nsi.in b/vlc.win32.nsi.in index 81661a6a43..8a4a5dc84c 100644 --- a/vlc.win32.nsi.in +++ b/vlc.win32.nsi.in @@ -13,7 +13,12 @@ !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}" +!define MUI_LANGDLL_REGISTRY_ROOT "HKLM" +!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}" +!define MUI_LANGDLL_REGISTRY_VALUENAME "Language" + @FILE_LIBVLC_DLL@ +@FILE_LIBVLC_CONTROL_DLL@ ;;;;;;;;;;;;;;;;;;;;;;;;; ; General configuration ; @@ -96,6 +101,8 @@ InstType "Full" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "Arabic" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Romanian" !insertmacro MUI_RESERVEFILE_LANGDLL @@ -139,6 +146,7 @@ InstType "Full" !insertmacro ${_action} ".mpeg2" !insertmacro ${_action} ".mpeg4" !insertmacro ${_action} ".mpg" + !insertmacro ${_action} ".mxf" !insertmacro ${_action} ".ps" !insertmacro ${_action} ".ts" !insertmacro ${_action} ".ogm" @@ -178,6 +186,15 @@ NoBackup: WriteRegStr HKCR "VLC$R0\shell" "" "Play" WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"' WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + + ; Vista detection + ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + StrCpy $R2 $R1 3 + StrCmp $R2 '6.0' ForVista ToEnd +ForVista: + WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0" +ToEnd: + FunctionEnd Function un.RegisterExtension @@ -196,7 +213,7 @@ NoOwn: FunctionEnd !macro RegisterExtensionSection EXT - Section /o ${EXT} + Section ${EXT} SectionIn 1 3 Push $R0 StrCpy $R0 ${EXT} @@ -220,7 +237,7 @@ FunctionEnd ; Context menu entries ; ;;;;;;;;;;;;;;;;;;;;;;;; -!macro AddContextMenu EXT +!macro AddContextMenuExt EXT WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player" WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"' @@ -228,17 +245,30 @@ FunctionEnd WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"' !macroend -!macro DeleteContextMenu EXT +!macro AddContextMenu EXT + Push $R0 + ReadRegStr $R0 HKCR ${EXT} "" + !insertmacro AddContextMenuExt $R0 + Pop $R0 +!macroend + +!macro DeleteContextMenuExt EXT DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC !macroend +!macro DeleteContextMenu EXT + Push $R0 + ReadRegStr $R0 HKCR ${EXT} "" + !insertmacro DeleteContextMenuExt $R0 + Pop $R0 +!macroend + ;;;;;;;;;;;;;;;;;;;;;;;;;; ; Delete prefs and cache ; ;;;;;;;;;;;;;;;;;;;;;;;;;; !macro delprefs - SectionIn 1 3 StrCpy $0 0 !define Index 'Line${__LINE__}' "${Index}-Loop:" @@ -332,6 +362,9 @@ Section "Media player (required)" SEC01 !ifdef LIBVLC_DLL !insertmacro InstallFile ${LIBVLC_DLL} !endif + !ifdef LIBVLC_CONTROL_DLL + !insertmacro InstallFile ${LIBVLC_CONTROL_DLL} + !endif !insertmacro InstallFile *.txt !insertmacro InstallFolder plugins @@ -339,6 +372,7 @@ Section "Media player (required)" SEC01 !insertmacro InstallFolder osdmenu !insertmacro InstallFolder skins !insertmacro InstallFolder http + !insertmacro InstallFolder share WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \ "${PRODUCT_WEB_SITE}" @@ -388,31 +422,50 @@ Section "Media player (required)" SEC01 '$INSTDIR\vlc.exe --started-from-file cdda:%1' WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + ; Vista detection + ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + StrCpy $R1 $R0 3 + StrCmp $R1 '6.0' lbl_vista lbl_done + + lbl_vista: + WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities" + WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player" + WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife" + + lbl_done: + SectionEnd Section "Start Menu Shortcut" SEC02a SectionIn 1 2 3 CreateDirectory "$SMPROGRAMS\VideoLAN" - CreateDirectory "$SMPROGRAMS\VideoLAN\Utilities" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Reset VLC media player preferences and cache files.lnk" \ - "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Audio mode to DirectX (default).lnk" \ + CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings" + CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \ "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Audio mode to Waveout.lnk" \ + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \ "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Main Interface to Skinnable.lnk" \ + CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \ "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Main Interface to wxWidgets (default).lnk" \ + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \ "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit" + CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video" ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to Direct3D.lnk" \ - "$INSTDIR\vlc.exe" "--vout direct3d --overlay --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to DirectX.lnk" \ - "$INSTDIR\vlc.exe" "--vout directx --overlay --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to DirectX (no hardware acceleration).lnk" \ - "$INSTDIR\vlc.exe" "--vout directx --no-overlay --save-config vlc:quit" - CreateShortCut "$SMPROGRAMS\VideoLAN\Utilities\Set Video mode to OpenGL.lnk" \ + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \ + "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \ + "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \ + "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \ + "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \ + "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \ "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit" + CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \ + "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit" CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \ "$INSTDIR\Documentation.url" CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \ @@ -430,50 +483,52 @@ Section "Desktop Shortcut" SEC02b SectionEnd Section /o "Mozilla plugin" SEC03 - SectionIn 1 3 + SectionIn 3 + SetOutPath "$INSTDIR" !insertmacro OpenUninstallLog - !insertmacro InstallFolder mozilla + !insertmacro InstallFile mozilla\npvlc.dll !insertmacro CloseUninstallLog - ; doesn't work. bug in mozilla/mozilla firefox or moz documentation (xpt file isn't loaded) - ; see mozilla bugs 184506 and 159445 - ;!define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}" - ;WriteRegStr HKLM ${Moz} "Description" "VideoLAN VLC plugin for Mozilla" - ;WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\mozilla\npvlc.dll" - ;WriteRegStr HKLM ${Moz} "Product" "VLC media player" - ;WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN" - ;WriteRegStr HKLM ${Moz} "Version" "${VERSION}" - ;WriteRegStr HKLM ${Moz} "XPTPath" "$INSTDIR\mozilla\vlcintf.xpt" - - Push $R0 - Push $R1 - Push $R2 - - !define Index 'Line${__LINE__}' - StrCpy $R1 "0" - - "${Index}-Loop:" - - ; Check for Key - EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1" - StrCmp $R0 "" "${Index}-End" - IntOp $R1 $R1 + 1 - ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins" - StrCmp $R2 "" "${Index}-Loop" "" - - CopyFiles "$INSTDIR\mozilla\*" "$R2" - !ifdef LIBVLC_DLL - CopyFiles ${LIBVLC_DLL} "$R2" - !endif - Goto "${Index}-Loop" - - "${Index}-End:" - !undef Index + !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}" + WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin" + WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll" + WriteRegStr HKLM ${Moz} "Product" "VLC media player" + WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN" + WriteRegStr HKLM ${Moz} "Version" "${VERSION}" + + ; for very old version of mozilla, these lines may be needed + ;Push $R0 + ;Push $R1 + ;Push $R2 + + ;!define Index 'Line${__LINE__}' + ;StrCpy $R1 "0" + + ;"${Index}-Loop:" + + ; ; Check for Key + ; EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1" + ; StrCmp $R0 "" "${Index}-End" + ; IntOp $R1 $R1 + 1 + ; ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins" + ; StrCmp $R2 "" "${Index}-Loop" "" + + ; CopyFiles "$INSTDIR\npvlc.dll" "$R2" + ; !ifdef LIBVLC_DLL + ; CopyFiles ${LIBVLC_DLL} "$R2" + ; !endif + ; !ifdef LIBVLC_CONTROL_DLL + ; CopyFiles ${LIBVLC_CONTROL_DLL} "$R2" + ; !endif + ; Goto "${Index}-Loop" + + ;"${Index}-End:" + ;!undef Index SectionEnd -Section /o "ActiveX plugin" SEC04 +Section "ActiveX plugin" SEC04 SectionIn 1 3 SetOutPath "$INSTDIR" !insertmacro OpenUninstallLog @@ -482,12 +537,6 @@ Section /o "ActiveX plugin" SEC04 RegDLL "$INSTDIR\axvlc.dll" SectionEnd -Section /o "Context Menus" SEC05 - SectionIn 3 - !insertmacro MacroAllExtensions AddContextMenu - !insertmacro AddContextMenu "Directory" -SectionEnd - SectionGroup "File type associations" SEC06 SectionGroup "Audio Files" !insertmacro MacroAudioExtensions RegisterExtensionSection @@ -500,6 +549,12 @@ SectionGroup "File type associations" SEC06 SectionGroupEnd SectionGroupEnd +Section /o "Context Menus" SEC05 + SectionIn 3 + !insertmacro MacroAllExtensions AddContextMenu + !insertmacro AddContextMenuExt "Directory" +SectionEnd + Section /o "Delete preferences and cache" SEC07 !insertmacro delprefs SectionEnd @@ -625,8 +680,9 @@ Section "Uninstall" SEC91 !insertmacro MacroAllExtensions DeleteContextMenu !insertmacro MacroAllExtensions UnRegisterExtensionSection - !insertmacro DeleteContextMenu "Directory" + !insertmacro DeleteContextMenuExt "Directory" + ;remove activex plugin UnRegDLL "$INSTDIR\axvlc.dll" Delete /REBOOTOK "$INSTDIR\axvlc.dll" @@ -647,11 +703,15 @@ Section "Uninstall" SEC91 ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins" StrCmp $R2 "" "${Index}-Loop" "" - Delete "$R2\npvlc.dll" + ; old files (0.8.5 and before) that may be lying around + Delete /REBOOTOK "$R2\npvlc.dll" + Delete /REBOOTOK "$R2\libvlc.dll" + Delete /REBOOTOK "$R2\vlcintf.xpt" Goto "${Index}-Loop" "${Index}-End:" !undef Index + Delete /REBOOTOK "$INSTDIR\npvlc.dll" RMDir "$SMPROGRAMS\VideoLAN" RMDir /r $SMPROGRAMS\VideoLAN @@ -683,6 +743,7 @@ Section "Uninstall" SEC91 DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival + DeleteRegKey HKLM Software\Clients\Media\VLC DeleteRegKey HKCR "VLC.MediaFile" DeleteRegKey HKLM \ @@ -699,7 +760,6 @@ Section "Uninstall" SEC91 SectionEnd Section /o "un.Delete preferences and cache" SEC92 - SectionIn 1 3 !insertmacro delprefs SectionEnd @@ -718,5 +778,5 @@ SectionEnd ;FunctionEnd Function un.onInit - !insertmacro MUI_LANGDLL_DISPLAY + !insertmacro MUI_UNGETLANGUAGE FunctionEnd