diff --git a/win32/nsi/mt-daapd-example.conf b/win32/nsi/mt-daapd-example.conf index 10bc7d77..da4943c6 100644 --- a/win32/nsi/mt-daapd-example.conf +++ b/win32/nsi/mt-daapd-example.conf @@ -47,7 +47,7 @@ admin_pw=firefly # # sqlite seems to be more stable. -db_type=sqlite +db_type=sqlite3 # # db_parms @@ -124,7 +124,7 @@ runas=nobody # See the ssc_* options below. # -extensions=.mp3,.m4a,.m4p,.wma +extensions=.mp3,.m4a,.m4p,.wma,.flac,.ogg # # ssc_codectypes (optional) diff --git a/win32/nsi/mt-daapd.nsi.templ b/win32/nsi/mt-daapd.nsi.templ index 34e9aaf6..5a76252a 100644 --- a/win32/nsi/mt-daapd.nsi.templ +++ b/win32/nsi/mt-daapd.nsi.templ @@ -78,7 +78,6 @@ !macroend -;!insertmacro MUI_LANGUAGE "English" !insertmacro LANG_LOAD "English" !insertmacro LANG_LOAD "French" !insertmacro LANG_LOAD "Dutch" @@ -154,6 +153,14 @@ SectionEnd Section "MainSection" SEC01 SetOutPath "$2" + + IfFileExists "$SMPROGRAMS\${PRODUCT_NAME}" HasProgramItems + goto NoProgramItems + +HasProgramItems: + Delete "$SMPROGRAMS\${PRODUCT_NAME}\*" + +NoProgramItems: SetOverwrite on File /oname=firefly.exe "${MTD_SOURCE}\mt-daapd.exe" File "${CONFIG_SOURCE}\FireflyShell.exe" @@ -241,7 +248,7 @@ Section "MainSection" SEC01 WriteINIStr "$2\mt-daapd.conf" "general" "mp3_dir" $3 HasConf: WriteINIStr "$2\mt-daapd.conf" "plugins" "plugin_dir" "plugins" - WriteINIStr "$2\mt-daapd.conf" "plugins" "plugins" "rsp.dll,w32-event.dll,ssc-ffmpeg.dll,ssc-wma.dll" + WriteINIStr "$2\mt-daapd.conf" "plugins" "plugins" "" ReadINIStr $0 "$2\mt-daapd.conf" "general" "rescan_interval" StrCmp $0 "" rescan_set rescan_skip rescan_set: @@ -272,7 +279,7 @@ HasConf: WriteINIStr "$2\mt-daapd.conf" "general" "truncate" "1" trunc_skip: - + WriteINIStr "$2\mt-daapd.conf" "general" "db_type" "sqlite3" AccessControl::SetOnFile "$2\mt-daapd.conf" "Everyone" "FullAccess" SetAutoClose False SectionEnd @@ -506,7 +513,59 @@ done: FunctionEnd Section Uninstall - nsSCM::Stop "${PRODUCT_NAME}" + SetAutoClose false + + !include WinMessages.nsh + close_loop: + FindWindow $0 "" "FireflyShellNotifyIconHidden" + + IntCmp $0 0 close_done + SendMessage $0 ${WM_QUIT} 0 0 + SendMessage $0 ${WM_CLOSE} 0 0 + SendMessage $0 ${WM_DESTROY} 0 0 + Sleep 125 + Goto close_loop + close_done: + + IntOp $9 0 + 0 + + nsSCM::QueryStatus "${PRODUCT_NAME}" + Pop $0 + Pop $1 + + StrCmp $0 "success" un_lbl_stop_service + goto un_lbl_continue + + un_lbl_stop_service: + DetailPrint "$(STRING_STOPPING_SERVICE)" + nsSCM::Stop "$(PRODUCT_NAME)" + + un_lbl_wait_stop: + Sleep 1000 + nsSCM::QueryStatus "$(PRODUCT_NAME)" + Pop $0 + Pop $1 + +; DetailPrint $0 + StrCmp $0 "success" un_lbl_check_status + goto un_lbl_continue + + un_lbl_check_status: + IntCmp $1 1 un_lbl_continue un_lbl_wait_stop un_lbl_wait_stop + + un_lbl_continue: + ; should really loop until service stops... + DetailPrint "$(STRING_WAITING_FOR_STOP)" + + IntOp $9 $9 + 1 + IntCmp $9 10 +1 +1 un_lbl_done_pre + + Sleep 1500 + Delete "$INSTDIR\firefly.exe" + IfErrors un_lbl_continue + + un_lbl_done_pre: + Sleep 1000 nsSCM::Remove "${PRODUCT_NAME}" Pop $0 @@ -516,99 +575,24 @@ Section Uninstall lbl_continue_uninstall: - Delete "$INSTDIR\${PRODUCT_NAME}.url" - Delete "$INSTDIR\uninst.exe" - Delete "$INSTDIR\gnu_regex.dll" - Delete "$INSTDIR\pthreadVC2.dll" - Delete "$INSTDIR\sqlite.dll" - Delete "$INSTDIR\sqlite3.dll" - Delete "$INSTDIR\mt-daapd.conf" - Delete "$INSTDIR\zlib1.dll" - Delete "$INSTDIR\avutil.dll" - Delete "$INSTDIR\avcodec.dll" - Delete "$INSTDIR\avformat.dll" - Delete "$INSTDIR\libFLAC.dll" - Delete "$INSTDIR\plugins\rsp.dll" - Delete "$INSTDIR\plugins\out-daap.dll" - Delete "$INSTDIR\plugins\w32-event.dll" - Delete "$INSTDIR\plugins\ssc-ffmpeg.dll" - Delete "$INSTDIR\plugins\ssc-wma.dll" - Delete "$INSTDIR\songs.db" - Delete "$INSTDIR\songs3.db" - - Delete "$INSTDIR\msvcp71.dll" - Delete "$INSTDIR\msvcr71.dll" - - Delete "$INSTDIR\mt-daapd-example.conf" - Delete "$INSTDIR\admin-root\applet.html" - Delete "$INSTDIR\admin-root\aspl-license.html" - Delete "$INSTDIR\admin-root\aspl-license.txt" - Delete "$INSTDIR\admin-root\config.html" - Delete "$INSTDIR\admin-root\config-update.html" - Delete "$INSTDIR\admin-root\CREDITS" - Delete "$INSTDIR\admin-root\DAAPApplet-0.1.jar" - Delete "$INSTDIR\admin-root\favicon.ico" - Delete "$INSTDIR\admin-root\feedback.html" - Delete "$INSTDIR\admin-root\ftr.html" - Delete "$INSTDIR\admin-root\gpl-license.html" - Delete "$INSTDIR\admin-root\gpl-license.txt" - Delete "$INSTDIR\admin-root\hdr.html" - Delete "$INSTDIR\admin-root\index.html" - Delete "$INSTDIR\admin-root\linkOpaque.gif" - Delete "$INSTDIR\admin-root\linkTransparent.gif" - Delete "$INSTDIR\admin-root\firefly.css" - Delete "$INSTDIR\admin-root\config.css" - Delete "$INSTDIR\admin-root\index.css" - Delete "$INSTDIR\admin-root\firefly.js" - Delete "$INSTDIR\admin-root\ff_logo_sm.gif" - Delete "$INSTDIR\admin-root\playlist.html" - Delete "$INSTDIR\admin-root\playlist.js" - Delete "$INSTDIR\admin-root\required.gif" - Delete "$INSTDIR\admin-root\smart.html" - Delete "$INSTDIR\admin-root\smart.js" - Delete "$INSTDIR\admin-root\spinner.gif" - Delete "$INSTDIR\admin-root\spinner_stopped.gif" - Delete "$INSTDIR\admin-root\util.js" - Delete "$INSTDIR\admin-root\pngfix.js" - Delete "$INSTDIR\admin-root\no_access.html" - Delete "$INSTDIR\admin-root\smartpopup.html" - Delete "$INSTDIR\admin-root\about.html" - Delete "$INSTDIR\admin-root\status.js" - Delete "$INSTDIR\admin-root\thanks.html" - Delete "$INSTDIR\admin-root\config.js" - Delete "$INSTDIR\admin-root\config.xml" - Delete "$INSTDIR\admin-root\lib-js\prototype.js" - Delete "$INSTDIR\admin-root\lib-js\rico.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\builder.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\controls.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\dragdrop.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\effects.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\scriptaculous.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\slider.js" - Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\unittest.js" + Delete "$INSTDIR\admin-root\lib-js\script.aculo.us\*" RMDir "$INSTDIR\admin-root\lib-js\script.aculo.us" + + Delete "$INSTDIR\admin-root\lib-js\*" RMDir "$INSTDIR\admin-root\lib-js" + + Delete "$INSTDIR\admin-root\*" RMDir "$INSTDIR\admin-root" + + Delete "$INSTDIR\plugins\*" RMDir "$INSTDIR\plugins" - Delete "$INSTDIR\firefly.exe" - Delete "$INSTDIR\FireflyShell.exe" - Delete "$INSTDIR\FireflyShell.exe.manifest" - Delete "$INSTDIR\FireflyShell-0c.dll" - Delete "$INSTDIR\FireflyShell-07.dll" - Delete "$INSTDIR\FireflyShell-13.dll" - Delete "$INSTDIR\FireflyShell-1d.dll" - Delete "$INSTDIR\FireflyShell-11.dll" - Delete "$INSTDIR\FireflyShell-10.dll" - - Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" - Delete "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk" - Delete "$SMPROGRAMS\${PRODUCT_NAME}\Debug Mode.lnk" - Delete "$SMPROGRAMS\${PRODUCT_NAME}\Firefly Configuration.lnk" - Delete "$SMPROGRAMS\${PRODUCT_NAME}\Advanced Configuration.lnk" + Delete "$INSTDIR\*" + RMDir "$INSTDIR" - RMDir "$SMPROGRAMS\${PRODUCT_NAME}" - RMDir "$INSTDIR" + Delete "$SMPROGRAMS\${PRODUCT_NAME}\*" + RMDir "$SMPROGRAMS\${PRODUCT_NAME}" + RMDir "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"