]> git.sesse.net Git - vlc/blobdiff - vlc.win32.nsi.in
Add some debug
[vlc] / vlc.win32.nsi.in
index 51f2f416718c8d867c060104b3eac340d67db500..ada845cae57467c7a241b6ee304088207120991c 100644 (file)
 !define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"\r
 \r
+!define MUI_LANGDLL_REGISTRY_ROOT "HKLM"\r
+!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"\r
+!define MUI_LANGDLL_REGISTRY_VALUENAME "Language"\r
+\r
+@FILE_LIBVLC_DLL@\r
+\r
 ;;;;;;;;;;;;;;;;;;;;;;;;;\r
 ; General configuration ;\r
 ;;;;;;;;;;;;;;;;;;;;;;;;;\r
@@ -31,7 +37,8 @@ SetCompressor /SOLID lzma
 SetOverwrite ifnewer\r
 CRCCheck on\r
 \r
-InstType "Normal"\r
+InstType "Recommended"\r
+InstType "Minimum"\r
 InstType "Full"\r
 \r
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
@@ -93,6 +100,7 @@ InstType "Full"
   !insertmacro MUI_LANGUAGE "Russian"\r
   !insertmacro MUI_LANGUAGE "Portuguese"\r
   !insertmacro MUI_LANGUAGE "Arabic"\r
+  !insertmacro MUI_LANGUAGE "Polish"\r
 \r
 !insertmacro MUI_RESERVEFILE_LANGDLL\r
 \r
@@ -171,9 +179,9 @@ Function RegisterExtension
 NoBackup:\r
   WriteRegStr HKCR "$R0" "" "VLC$R0"\r
   ReadRegStr $0 HKCR "VLC$R0" ""\r
-  WriteRegStr HKCR "VLC$R0" "" "VLC media file"\r
+  WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"\r
   WriteRegStr HKCR "VLC$R0\shell" "" "Play"\r
-  WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --one-instance-when-started-from-file "%1"'\r
+  WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'\r
   WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
 FunctionEnd\r
 \r
@@ -193,8 +201,8 @@ NoOwn:
 FunctionEnd\r
 \r
 !macro RegisterExtensionSection EXT\r
-  Section /o ${EXT}\r
-    SectionIn 2 3\r
+  Section ${EXT}\r
+    SectionIn 1 3\r
     Push $R0\r
     StrCpy $R0 ${EXT}\r
     Call RegisterExtension\r
@@ -219,10 +227,10 @@ FunctionEnd
 \r
 !macro AddContextMenu EXT\r
   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"\r
-  WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --one-instance-when-started-from-file --no-playlist-enqueue "%1"'\r
+  WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --started-from-file --no-playlist-enqueue "%1"'\r
 \r
   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"\r
-  WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --one-instance-when-started-from-file --playlist-enqueue "%1"'\r
+  WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --started-from-file --playlist-enqueue "%1"'\r
 !macroend\r
 \r
 !macro DeleteContextMenu EXT\r
@@ -235,7 +243,6 @@ FunctionEnd
 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
 \r
 !macro delprefs\r
-  SectionIn 2 3\r
   StrCpy $0 0\r
   !define Index 'Line${__LINE__}'\r
   "${Index}-Loop:"\r
@@ -256,6 +263,16 @@ FunctionEnd
 \r
 Var UninstallLog\r
 \r
+!macro OpenUninstallLog\r
+  FileOpen $UninstallLog "$INSTDIR\uninstall.log" a\r
+  FileSeek $UninstallLog 0 END\r
+!macroend\r
+\r
+!macro CloseUninstallLog\r
+  FileClose $UninstallLog\r
+  SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN\r
+!macroend\r
+\r
 !macro InstallFile FILEREGEX\r
   File "${FILEREGEX}"\r
   !define Index 'Line${__LINE__}'\r
@@ -312,12 +329,13 @@ Section "Media player (required)" SEC01
   SetShellVarContext all\r
   SetOutPath "$INSTDIR"\r
 \r
-  FileOpen $UninstallLog "$INSTDIR\uninstall.log" w\r
-  FileSeek $UninstallLog 0 END\r
+  !insertmacro OpenUninstallLog\r
 \r
   !insertmacro InstallFile vlc.exe\r
   !insertmacro InstallFile vlc.exe.manifest\r
-  @FILE_LIBVLC_DLL@\r
+  !ifdef LIBVLC_DLL\r
+  !insertmacro InstallFile ${LIBVLC_DLL}\r
+  !endif\r
   !insertmacro InstallFile *.txt\r
 \r
   !insertmacro InstallFolder plugins\r
@@ -326,30 +344,29 @@ Section "Media player (required)" SEC01
   !insertmacro InstallFolder skins\r
   !insertmacro InstallFolder http\r
 \r
-  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \\r
+  WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \\r
     "${PRODUCT_WEB_SITE}"\r
-  FileWrite $UninstallLog "${PRODUCT_NAME}.url$\r$\n"\r
+  FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"\r
   WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \\r
     "${PRODUCT_WEB_SITE}/doc/"\r
   FileWrite $UninstallLog "Documentation.url$\r$\n"\r
 \r
-  FileClose $UninstallLog\r
-  SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN\r
+  !insertmacro CloseUninstallLog\r
 \r
   ; Add VLC to "recomended programs" for the following extensions\r
   WriteRegStr HKCR Applications\vlc.exe "" ""\r
   WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"\r
   WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"\r
   WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \\r
-    '$INSTDIR\vlc.exe --one-instance-when-started-from-file "%1"'\r
+    '$INSTDIR\vlc.exe --started-from-file "%1"'\r
   !insertmacro MacroAllExtensions WriteRegStrSupportedTypes\r
 \r
   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"\r
   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \\r
-    "$INSTDIR\vlc.exe --one-instance-when-started-from-file cdda:%1"\r
+    "$INSTDIR\vlc.exe --started-from-file cdda:%1"\r
   WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"\r
   WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \\r
-    "$INSTDIR\vlc.exe --one-instance-when-started-from-file dvd:%1"\r
+    "$INSTDIR\vlc.exe --started-from-file dvd:%1"\r
 \r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""\r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"\r
@@ -360,19 +377,19 @@ Section "Media player (required)" SEC01
 \r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""\r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"\r
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --one-instance-when-started-from-file",0'\r
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe --started-from-file",0'\r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"\r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"\r
   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"\r
   WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"\r
   WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"\r
   WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \\r
-    '$INSTDIR\vlc.exe --one-instance-when-started-from-file dvd:%1'\r
+    '$INSTDIR\vlc.exe --started-from-file dvd:%1'\r
   WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
   WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"\r
   WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"\r
   WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \\r
-    '$INSTDIR\vlc.exe --one-instance-when-started-from-file cdda:%1'\r
+    '$INSTDIR\vlc.exe --started-from-file cdda:%1'\r
   WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
 \r
 SectionEnd\r
@@ -380,73 +397,103 @@ SectionEnd
 Section "Start Menu Shortcut" SEC02a\r
   SectionIn 1 2 3\r
   CreateDirectory "$SMPROGRAMS\VideoLAN"\r
-  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \\r
-    "$INSTDIR\vlc.exe" "--intf wx --wx-embed"\r
-  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (alt).lnk" \\r
-    "$INSTDIR\vlc.exe" "--intf wx --no-wx-embed"\r
-  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (skins).lnk" \\r
-    "$INSTDIR\vlc.exe" "--intf skins"\r
-  CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC defaults and quit.lnk" \\r
-    "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit "\r
-  CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_NAME} Website.lnk" \\r
-    "$INSTDIR\${PRODUCT_NAME}.url"\r
+  CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings"\r
+  CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Audio"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to DirectX (default).lnk" \\r
+    "$INSTDIR\vlc.exe" "--aout aout_directx --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Audio\Set Audio mode to Waveout.lnk" \\r
+    "$INSTDIR\vlc.exe" "--aout waveout --save-config vlc:quit"\r
+  CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Interface"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to Skinnable.lnk" \\r
+    "$INSTDIR\vlc.exe" "-I skins --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Interface\Set Main Interface to wxWidgets (default).lnk" \\r
+    "$INSTDIR\vlc.exe" "-I wxwin --save-config vlc:quit"\r
+  CreateDirectory "$SMPROGRAMS\VideoLAN\Quick Settings\Video"\r
+  ; FIXME add detection for Vista. Direct3D will be default there, for all others it's DirectX\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D.lnk" \\r
+    "$INSTDIR\vlc.exe" "--vout direct3d --overlay --directx-hw-yuv --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to Direct3D (no hardware acceleration).lnk" \\r
+    "$INSTDIR\vlc.exe" "--vout direct3d --overlay --no-directx-hw-yuv --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX.lnk" \\r
+    "$INSTDIR\vlc.exe" "--vout directx --overlay --directx-hw-yuv --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no hardware acceleration).lnk" \\r
+    "$INSTDIR\vlc.exe" "--vout directx --no-overlay --no-directx-hw-yuv --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to DirectX (no video overlay).lnk" \\r
+    "$INSTDIR\vlc.exe" "--vout directx --no-overlay --directx-hw-yuv --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Video\Set Video mode to OpenGL.lnk" \\r
+    "$INSTDIR\vlc.exe" "--vout opengl --overlay --save-config vlc:quit"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Quick Settings\Reset VLC media player preferences and cache files.lnk" \\r
+    "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit"\r
   CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \\r
     "$INSTDIR\Documentation.url"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \\r
+    "$INSTDIR\NEWS.txt" ""\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \\r
+    "$INSTDIR\${PRODUCT_GROUP} Website.url"\r
+  CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \\r
+    "$INSTDIR\vlc.exe" ""\r
 SectionEnd\r
 \r
 Section "Desktop Shortcut" SEC02b\r
   SectionIn 1 2 3\r
   CreateShortCut "$DESKTOP\VLC media player.lnk" \\r
-    "$INSTDIR\vlc.exe" "--intf wx"\r
+    "$INSTDIR\vlc.exe" ""\r
 SectionEnd\r
 \r
 Section /o "Mozilla plugin" SEC03\r
-  SectionIn 2 3\r
-  File /r mozilla\r
-\r
-  ; doesn't work. bug in mozilla/mozilla firefox or moz documentation (xpt file isn't loaded)\r
-  ; see mozilla bugs 184506 and 159445\r
-  ;!define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"\r
-  ;WriteRegStr HKLM ${Moz} "Description" "VideoLAN VLC plugin for Mozilla"\r
-  ;WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\mozilla\npvlc.dll"\r
-  ;WriteRegStr HKLM ${Moz} "Product" "VLC media player"\r
-  ;WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"\r
-  ;WriteRegStr HKLM ${Moz} "Version" "${VERSION}"\r
-  ;WriteRegStr HKLM ${Moz} "XPTPath" "$INSTDIR\mozilla\vlcintf.xpt"\r
-\r
-  Push $R0\r
-  Push $R1\r
-  Push $R2\r
+  SectionIn 3\r
 \r
-  !define Index 'Line${__LINE__}'\r
-  StrCpy $R1 "0"\r
-\r
-  "${Index}-Loop:"\r
-\r
-    ; Check for Key\r
-    EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"\r
-    StrCmp $R0 "" "${Index}-End"\r
-    IntOp $R1 $R1 + 1\r
-    ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
-    StrCmp $R2 "" "${Index}-Loop" ""\r
-\r
-    CopyFiles "$INSTDIR\mozilla\*" "$R2"\r
-    Goto "${Index}-Loop"\r
-\r
-  "${Index}-End:"\r
-  !undef Index\r
+  SetOutPath "$INSTDIR"\r
+  !insertmacro OpenUninstallLog\r
+  !insertmacro InstallFile mozilla\npvlc.dll\r
+  !insertmacro CloseUninstallLog\r
+\r
+  !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"\r
+  WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"\r
+  WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"\r
+  WriteRegStr HKLM ${Moz} "Product" "VLC media player"\r
+  WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"\r
+  WriteRegStr HKLM ${Moz} "Version" "${VERSION}"\r
+\r
+ ; for very old version of mozilla, these lines may be needed \r
+ ;Push $R0\r
+ ;Push $R1\r
+ ;Push $R2\r
+\r
+ ;!define Index 'Line${__LINE__}'\r
+ ;StrCpy $R1 "0"\r
+\r
+ ;"${Index}-Loop:"\r
+\r
+ ;  ; Check for Key\r
+ ;  EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"\r
+ ;  StrCmp $R0 "" "${Index}-End"\r
+ ;  IntOp $R1 $R1 + 1\r
+ ;  ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
+ ;  StrCmp $R2 "" "${Index}-Loop" ""\r
+\r
+ ;  CopyFiles "$INSTDIR\npvlc.dll" "$R2"\r
+ ;  !ifdef LIBVLC_DLL\r
+ ;  CopyFiles ${LIBVLC_DLL} "$R2"\r
+ ;  !endif\r
+ ;  Goto "${Index}-Loop"\r
+\r
+ ;"${Index}-End:"\r
+ ;!undef Index\r
 \r
 SectionEnd\r
 \r
 Section "ActiveX plugin" SEC04\r
-  SectionIn 2 3\r
+  SectionIn 1 3\r
   SetOutPath "$INSTDIR"\r
-  File activex\axvlc.dll\r
+  !insertmacro OpenUninstallLog\r
+  !insertmacro InstallFile activex\axvlc.dll\r
+  !insertmacro CloseUninstallLog\r
   RegDLL "$INSTDIR\axvlc.dll"\r
 SectionEnd\r
 \r
-Section "Context Menus" SEC05\r
-  SectionIn 2\r
+Section /o "Context Menus" SEC05\r
+  SectionIn 3\r
   !insertmacro MacroAllExtensions AddContextMenu\r
   !insertmacro AddContextMenu "Directory"\r
 SectionEnd\r
@@ -590,6 +637,7 @@ Section "Uninstall" SEC91
   !insertmacro MacroAllExtensions UnRegisterExtensionSection\r
   !insertmacro DeleteContextMenu "Directory"\r
 \r
+  ;remove activex plugin\r
   UnRegDLL "$INSTDIR\axvlc.dll"\r
   Delete /REBOOTOK "$INSTDIR\axvlc.dll"\r
 \r
@@ -610,12 +658,15 @@ Section "Uninstall" SEC91
     ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
     StrCmp $R2 "" "${Index}-Loop" ""\r
 \r
-    Delete "$R2\vlcintf.xpt"\r
-    Delete "$R2\npvlc.dll"\r
+    ; old files (0.8.5 and before) that may be lying around\r
+    Delete /REBOOTOK "$R2\npvlc.dll"\r
+    Delete /REBOOTOK "$R2\libvlc.dll"\r
+    Delete /REBOOTOK "$R2\vlcintf.xpt"\r
     Goto "${Index}-Loop"\r
 \r
   "${Index}-End:"\r
   !undef Index\r
+  Delete /REBOOTOK "$INSTDIR\npvlc.dll"\r
 \r
   RMDir "$SMPROGRAMS\VideoLAN"\r
   RMDir /r $SMPROGRAMS\VideoLAN\r
@@ -663,7 +714,6 @@ Section "Uninstall" SEC91
 SectionEnd\r
 \r
 Section /o "un.Delete preferences and cache" SEC92\r
-  SectionIn 2 3 RO\r
   !insertmacro delprefs\r
 SectionEnd\r
 \r
@@ -682,5 +732,5 @@ SectionEnd
 ;FunctionEnd\r
 \r
 Function un.onInit\r
-  !insertmacro MUI_LANGDLL_DISPLAY\r
+  !insertmacro MUI_UNGETLANGUAGE\r
 FunctionEnd\r