[Slim-Checkins] r11856 - in /trunk: ./ platforms/win32/ platforms/win32/installer/ server/

dean at svn.slimdevices.com dean at svn.slimdevices.com
Sun Apr 29 15:31:14 PDT 2007


Author: dean
Date: Sun Apr 29 15:31:14 2007
New Revision: 11856

URL: http://svn.slimdevices.com?rev=11856&view=rev
Log:
Merge 11855 from branch 6.5 to add internationalization to the windows installer

Added:
    trunk/platforms/win32/Getting Started.de.html
      - copied unchanged from r11855, branches/6.5/platforms/win32/Getting Started.de.html
    trunk/platforms/win32/Getting Started.es.html
      - copied unchanged from r11855, branches/6.5/platforms/win32/Getting Started.es.html
    trunk/platforms/win32/Getting Started.fr.html
      - copied unchanged from r11855, branches/6.5/platforms/win32/Getting Started.fr.html
    trunk/platforms/win32/Getting Started.he.html
      - copied unchanged from r11855, branches/6.5/platforms/win32/Getting Started.he.html
    trunk/platforms/win32/Getting Started.it.html
      - copied unchanged from r11855, branches/6.5/platforms/win32/Getting Started.it.html
    trunk/platforms/win32/Getting Started.nl.html
      - copied unchanged from r11855, branches/6.5/platforms/win32/Getting Started.nl.html
    trunk/platforms/win32/installer/Dutch.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/Dutch.isl
    trunk/platforms/win32/installer/English.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/English.isl
    trunk/platforms/win32/installer/French.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/French.isl
    trunk/platforms/win32/installer/German.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/German.isl
    trunk/platforms/win32/installer/Hebrew.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/Hebrew.isl
    trunk/platforms/win32/installer/Italian.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/Italian.isl
    trunk/platforms/win32/installer/Spanish.isl
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/Spanish.isl
    trunk/platforms/win32/installer/strings.iss
      - copied unchanged from r11855, branches/6.5/platforms/win32/installer/strings.iss
    trunk/server/License.de.txt
      - copied unchanged from r11855, branches/6.5/server/License.de.txt
    trunk/server/License.es.txt
      - copied unchanged from r11855, branches/6.5/server/License.es.txt
    trunk/server/License.fr.txt
      - copied unchanged from r11855, branches/6.5/server/License.fr.txt
    trunk/server/License.he.txt
      - copied unchanged from r11855, branches/6.5/server/License.he.txt
    trunk/server/License.it.txt
      - copied unchanged from r11855, branches/6.5/server/License.it.txt
    trunk/server/License.nl.txt
      - copied unchanged from r11855, branches/6.5/server/License.nl.txt
Removed:
    trunk/platforms/win32/ReadMe.txt
Modified:
    trunk/makerelease.pl
    trunk/platforms/win32/installer/SlimServer.iss
    trunk/server/Changelog6.html

Modified: trunk/makerelease.pl
URL: http://svn.slimdevices.com/trunk/makerelease.pl?rev=11856&r1=11855&r2=11856&view=diff
==============================================================================
--- trunk/makerelease.pl (original)
+++ trunk/makerelease.pl Sun Apr 29 15:31:14 2007
@@ -284,6 +284,8 @@
 	print "Building Windows directory...\n";
 	my $winserverdir = "build";
 
+	my $perlpath = 'C:\\perl\\bin\\perl.exe';
+
 	if (-d $winserverdir) { 
 		print "Deleting original win build dir: $winserverdir\n";
 		rmtree($winserverdir);
@@ -295,10 +297,24 @@
 	removeDirectoriesNotMatching("$sourcecopy/Bin", 'MSWin32');
 	removeDirectoriesNotMatching("$sourcecopy/CPAN/arch/5.8", 'MSWin32');
 
+	copy("$source/server/CHANGELOG.html", "$winserverdir/Release Notes.html");
 	`cp -R $sourcecopy "$winserverdir/server"`;
+
 	copy("$source/platforms/win32/Getting Started.html", "$winserverdir");
-	copy("$source/server/CHANGELOG.html", "$winserverdir/Release Notes.html");
-	copy("$source/server/license.txt", "$winserverdir/License.txt");
+	copy("$source/platforms/win32/Getting Started.de.html", "$winserverdir");
+	copy("$source/platforms/win32/Getting Started.es.html", "$winserverdir");
+	copy("$source/platforms/win32/Getting Started.fr.html", "$winserverdir");
+	copy("$source/platforms/win32/Getting Started.he.html", "$winserverdir");
+	copy("$source/platforms/win32/Getting Started.it.html", "$winserverdir");
+	copy("$source/platforms/win32/Getting Started.nl.html", "$winserverdir");
+
+	copy("$source/server/License.txt", "$winserverdir");
+	copy("$source/server/License.de.txt", "$winserverdir");
+	copy("$source/server/License.es.txt", "$winserverdir");
+	copy("$source/server/License.fr.txt", "$winserverdir");
+	copy("$source/server/License.he.txt", "$winserverdir");
+	copy("$source/server/License.it.txt", "$winserverdir");
+	copy("$source/server/License.nl.txt", "$winserverdir");
 
 	copy("$source/docs/squeezebox3/Squeezebox-v3-Owners-Guide.pdf", "$winserverdir/Squeezebox-Owners-Guide.pdf");
 
@@ -311,7 +327,7 @@
 		../../server/CPAN/arch/5.8/MSWin32-x86-multi-thread/auto
 	));
 
-	print `cd $source/platforms/win32; perltray --trim unicore:: --force --singleton --lib "$libpaths" --verbose --icon "res/SlimServer.ICO;res/SlimServerOff.ICO" SlimTray.pl; cd ../..`;
+	print `cd $source/platforms/win32; perltray --perl "$perlpath" --trim unicore:: --force --singleton --lib "$libpaths" --icon "res/SlimServer.ICO;res/SlimServerOff.ICO" SlimTray.pl; cd ../..`;
 	move("$source/platforms/win32/SlimTray.exe", "$winserverdir/SlimTray.exe");
 
 	rmsvn($winserverdir);
@@ -326,23 +342,45 @@
 		lib
 	));
 	
-	print `cd $source/server; perlsvc --lib "$libpaths" --verbose --add Compress::Zlib --force slimserver.pl; cd ..`;
+	print `cd $source/server; perlsvc --perl "$perlpath" --lib "$libpaths" --add Compress::Zlib --force slimserver.pl; cd ..`;
 
 	move("$source/server/slimserver.exe", "$winserverdir/server/slim.exe");
 
 	print "Making scanner executable...\n";
-	print `cd $source/server; perlapp --lib "$libpaths" --verbose --force scanner.pl; cd ..`;
+	print `cd $source/server; perlapp --perl "$perlpath" --lib "$libpaths" --force scanner.pl; cd ..`;
 	move("$source/server/scanner.exe", "$winserverdir/server/scanner.exe");
 
 	print "Making installer...\n";
 	copy("$source/platforms/win32/installer/SlimServer.iss", "$winserverdir");
+
+	copy("$source/platforms/win32/installer/strings.iss", "$winserverdir");
+
+	copy("$source/platforms/win32/installer/English.isl", "$winserverdir");
+	copy("$source/platforms/win32/installer/Hebrew.isl", "$winserverdir");
+	copy("$source/platforms/win32/installer/Italian.isl", "$winserverdir");
+	copy("$source/platforms/win32/installer/French.isl", "$winserverdir");
+	copy("$source/platforms/win32/installer/Spanish.isl", "$winserverdir");
+	copy("$source/platforms/win32/installer/Dutch.isl", "$winserverdir");
+	copy("$source/platforms/win32/installer/German.isl", "$winserverdir");
+
+
+	copy("$source/platforms/win32/installer/English.isl", "$winserverdir");
 	copy("$source/platforms/win32/installer/slim.bmp", "$winserverdir");
 
-	print `"c:/Program Files/Inno Setup 4/ISCC.exe" "$winserverdir/SlimServer.iss"`;
+	print `"c:/Program Files/Inno Setup 5/ISCC.exe" "$winserverdir/SlimServer.iss"`;
 
 	unlink("$winserverdir/SlimServer.iss");
 	unlink("$winserverdir/slim.bmp");
-	
+	unlink("$winserverdir/strings.iss");
+
+	unlink("$winserverdir/English.isl");
+	unlink("$winserverdir/Hebrew.isl");
+	unlink("$winserverdir/Italian.isl");
+	unlink("$winserverdir/French.isl");
+	unlink("$winserverdir/Spanish.isl");
+	unlink("$winserverdir/Dutch.isl");
+	unlink("$winserverdir/German.isl");
+
 	move($winserverdir, "$distdir/SlimServer for Windows");
 
 	$winserverdir = "$distdir/SlimServer for Windows";

Modified: trunk/platforms/win32/installer/SlimServer.iss
URL: http://svn.slimdevices.com/trunk/platforms/win32/installer/SlimServer.iss?rev=11856&r1=11855&r2=11856&view=diff
==============================================================================
--- trunk/platforms/win32/installer/SlimServer.iss (original)
+++ trunk/platforms/win32/installer/SlimServer.iss Sun Apr 29 15:31:14 2007
@@ -6,6 +6,26 @@
 ; Script by Chris Eastwood, January 2003 - http://www.vbcodelibrary.co.uk
 ;
 
+[Setup]
+; Uncomment the following line to disable the "Select Setup Language"
+; dialog and have it rely solely on auto-detection.
+;ShowLanguageDialog=no
+; If you want all languages to be listed in the "Select Setup Language"
+; dialog, even those that can't be displayed in the active code page,
+; uncomment the following line.
+;ShowUndisplayableLanguages=yes
+
+[Languages]
+Name: en; MessagesFile: "English.isl"
+Name: nl; MessagesFile: "Dutch.isl"
+Name: de; MessagesFile: "German.isl"
+Name: es; MessagesFile: "Spanish.isl"
+Name: fr; MessagesFile: "French.isl"
+Name: it; MessagesFile: "Italian.isl"
+Name: he; MessagesFile: "Hebrew.isl"
+
+[CustomMessages]
+#include "strings.iss"
 
 [Setup]
 AppName=SlimServer
@@ -33,16 +53,30 @@
 ;
 
 [Tasks]
-Name: desktopicon; Description: Create a &desktop icon; GroupDescription: Additional icons:
-Name: quicklaunchicon; Description: Create a &Quick Launch icon; GroupDescription: Additional icons:; Flags: unchecked
+Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
+Name: quicklaunchicon; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
 [Files]
 Source: SlimTray.exe; DestDir: {app}; Flags: replacesameversion
-Source: Getting Started.html; DestDir: {app}
 Source: Release Notes.html; DestDir: {app}
-Source: License.txt; DestDir: {app}
+
+Source: Getting Started.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: en; Flags: isreadme
+Source: Getting Started.de.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: de; Flags: isreadme
+Source: Getting Started.nl.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: nl; Flags: isreadme
+Source: Getting Started.fr.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: fr; Flags: isreadme
+Source: Getting Started.it.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: it; Flags: isreadme
+Source: Getting Started.es.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: es; Flags: isreadme
+Source: Getting Started.he.html; DestName: "{cm:GettingStarted}.html"; DestDir: {app}; Languages: he; Flags: isreadme
+
+Source: License.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: en
+Source: License.de.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: de
+Source: License.nl.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: nl
+Source: License.fr.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: fr
+Source: License.it.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: it
+Source: License.es.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: es
+Source: License.he.txt; DestName: "{cm:License}.txt"; DestDir: {app}; Languages: he
+
 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-
 ;
 ; Next line takes everything from the source '\server' directory and copies it into the setup
 ; it's output into the same location from the users choice.
@@ -51,18 +85,18 @@
 Source: server\*.*; DestDir: {app}\server; Excludes: "*freebsd*,*openbsd*,*darwin*,*linux*,*solaris*,*cygwin*"; Flags: comparetimestamp recursesubdirs
 
 [INI]
-Filename: {app}\Slim Devices Web Site.url; Section: InternetShortcut; Key: URL; String: http://www.slimdevices.com; Flags: uninsdeletesection
-Filename: {app}\SlimServer Web Interface.url; Section: InternetShortcut; Key: URL; String: http://localhost:9000; Flags: uninsdeletesection
+Filename: {app}\{cm:SlimDevicesWebSite}.url; Section: InternetShortcut; Key: URL; String: http://www.slimdevices.com; Flags: uninsdeletesection
+Filename: {app}\{cm:SlimServerWebInterface}.url; Section: InternetShortcut; Key: URL; String: http://localhost:9000; Flags: uninsdeletesection
 
 [Icons]
 Name: {group}\SlimServer; Filename: {app}\SlimTray.exe; Parameters: "--start"; WorkingDir: "{app}";
-Name: {group}\Slim Devices Web Site; Filename: {app}\Slim Devices Web Site.url
-Name: {group}\License; Filename: {app}\License.txt
-Name: {group}\Getting Started; Filename: {app}\Getting Started.html
-Name: {group}\Uninstall SlimServer; Filename: {uninstallexe}
+Name: {group}\{cm:SlimDevicesWebSite}; Filename: {app}\{cm:SlimDevicesWebSite}.url
+Name: {group}\{cm:License}; Filename: {app}\{cm:License}.txt
+Name: {group}\{cm:GettingStarted}; Filename: {app}\{cm:GettingStarted}.html
+Name: {group}\{cm:UninstallSlimServer}; Filename: {uninstallexe}
 Name: {userdesktop}\SlimServer; Filename: {app}\SlimTray.exe; Parameters: "--start"; WorkingDir: "{app}"; Tasks: desktopicon
 Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\SlimServer; Filename: {app}\SlimTray.exe; Parameters: "--start"; WorkingDir: "{app}"; Tasks: quicklaunchicon
-Name: {commonstartup}\SlimServer Tray Tool; Filename: {app}\SlimTray.exe; WorkingDir: "{app}"
+Name: {commonstartup}\{cm:SlimServerTrayTool}; Filename: {app}\SlimTray.exe; WorkingDir: "{app}"
 
 [Registry]
 ;
@@ -74,8 +108,7 @@
 Root: HKLM; Subkey: SOFTWARE\SlimDevices\SlimServer; ValueType: string; ValueName: Path; ValueData: {app}; MinVersion: 0,5.01
 
 [Run]
-Filename: {app}\SlimTray.exe; Description: Launch SlimServer application; WorkingDir: "{app}"; Flags: nowait skipifsilent runmaximized
-Filename: {app}\Getting Started.html; Description: Read Getting Started document; Flags: shellexec skipifsilent postinstall
+Filename: {app}\SlimTray.exe; Description: {cm:LaunchSlimServerApplication}; WorkingDir: "{app}"; Flags: nowait skipifsilent runmaximized
 
 [UninstallDelete]
 Type: dirifempty; Name: {app}
@@ -86,9 +119,9 @@
 Type: dirifempty; Name: {app}\server\SQL
 Type: filesandordirs; Name: {app}\server\Cache
 Type: files; Name: {app}\server\slimserver.pref
-Type: files; Name: {app}\Slim Devices Web Site.url
-Type: files; Name: {app}\SlimServer Web Interface.url
-Type: files; Name: {commonstartup}\SlimServer Tray Tool.url
+Type: files; Name: {app}\{cm:SlimDevicesWebSite}.url
+Type: files; Name: {app}\{cm:SlimServerWebInterface}.url
+Type: files; Name: {commonstartup}\{cm:SlimServerTrayTool}.url
 
 [_ISTool]
 EnableISX=true
@@ -101,150 +134,74 @@
 Filename: {app}\server\slim.exe; Parameters: -remove; WorkingDir: {app}\server; Flags: skipifdoesntexist runminimized; MinVersion: 0,4.00.1381
 
 [Code]
-{
-	This section, along with [_ISTool] EnableISX=true
-	means that you must compile the script with My Inno Setup Extensions -
-	- see : http://www.wintax.nl/isx/ for the latest version.
-}
-
 var
-	MyPlayListFolder: String;
+	FileName: String;
 	MyMusicFolder: String;
-	FileName: String;
+	MyPlaylistFolder: String;
 	AutoStart: String;
-
-function ScriptDlgPages(CurPage: Integer; BackClicked: Boolean): Boolean;
-var
-	CurSubPage: Integer;
-	Next: Boolean;
-begin
-	
-	if ((not BackClicked and (CurPage = wpSelectDir)) or (BackClicked and (CurPage = wpSelectProgramGroup))) then
-		begin
-			FileName:=AddBackslash(ExpandConstant('{app}')) + AddBackslash('server') + 'slimserver.pref';
-
-			// Insert a custom wizard page between two non custom pages
-			if  (BackClicked or FileExists(FileName)) then
-				curSubPage:=2
-			else
-				curSubPage:=0;
-		
-			ScriptDlgPageOpen();
-		
-			while(CurSubPage>=0) and (CurSubPage<=2) and not Terminated do begin
-				case CurSubPage of
-					0:
-						if not FileExists(FileName) then begin
-							ScriptDlgPageSetCaption('Select your Music Folder');
-							ScriptDlgPageSetSubCaption1('Where should the SlimServer look for your music?');
-							ScriptDlgPageSetSubCaption2('Select the folder you would like the SlimServer to look for your music, then click Next.');
-		
-							if(MyMusicFolder='') then begin
-								if (not RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','My Music', MyMusicFolder)) then
-									if (not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','My Music', MyMusicFolder)) then
-										if (not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','CommonMusic', MyMusicFolder)) then
-											if (RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','Personal', MyMusicFolder)) then
-												MyMusicFolder := MyMusicFolder + 'My Music'
-											else
-												MyMusicFolder := WizardDirValue;
-							end;
-		
-							// Ask for a dir until the user has entered one or click Back or Cancel
-							Next := InputDir(false, '', MyMusicFolder);
-		
-							while Next and (MyMusicFolder = '') do begin
-								MsgBox(SetupMessage(msgInvalidPath), mbError, MB_OK);
-								Next := InputDir(false, '', MyMusicFolder);
-							end;
-						end;
-					1:
-						if not FileExists(FileName) then begin
-							ScriptDlgPageSetCaption('Select your Playlist Folder');
-							ScriptDlgPageSetSubCaption1('Where should SlimServer look for an store your Playlists?');
-							ScriptDlgPageSetSubCaption2('Select the folder you would like the SlimServer to look for or store your playlists, then click Next.');
-		
-							if(MyPlayListFolder='') then begin
-								if(MyMusicFolder<>'') then
-									MyPlayListFolder:=MyMusicFolder
-								else
-									MyPlayListFolder := WizardDirValue;
-							end;
-		
-							// Ask for a dir until the user has entered one or click Back or Cancel
-							Next := InputDir(false, '', MyPlayListFolder);
-		
-							while Next and (MyPlayListFolder = '') do begin
-								MsgBox(SetupMessage(msgInvalidPath), mbError, MB_OK);
-								Next := InputDir(false, '', MyPlayListFolder);
-							end;
-
-						end;
-					2:
-						begin
-							if UsingWinNT() then
-								begin
-									ScriptDlgPageSetCaption('Automatic Startup');
-									ScriptDlgPageSetSubCaption1('');
-									ScriptDlgPageSetSubCaption2('You can set SlimServer to start automatically when your computer starts up.');
-				
-									Next := InputOption('Start Automatically', AutoStart);
-
-									if (Next and (AutoStart <> '1')) then
-										CurSubPage := CurSubPage + 1;	
-
-								end;
-						end;				
-				end;
-		
-				if Next then begin
-						{ Go to the next page, but only if the user entered correct information }
-					CurSubPage := CurSubPage + 1;
-				end else
-					CurSubPage := CurSubPage - 1;
-		
-			end;
-			
-			if not BackClicked then
-				Result:=Next
-			else
-				Result:=not Next;
-		
-			ScriptDlgPageClose(not Result);
-		end
-	else
-		begin
-			Result := true;
-		end;
-end;
-
-function NextButtonClick(CurPage: Integer): Boolean;
-begin
-	Result := ScriptDlgPages(CurPage, False);
-end;
-
-function BackButtonClick(CurPage: Integer): Boolean;
-begin
-	Result := ScriptDlgPages(CurPage, True);
-end;
-
-function GetMusicFolder(S: String): String;
-begin
-	// Return the selected DataDir
+  MusicFolderPage: TInputDirWizardPage;
+  PlaylistFolderPage: TInputDirWizardPage;
+
+function InitializeSetup() : Boolean;
+begin
+	Result := True;
+end;
+
+function GetMusicFolder() : String;
+begin
+  if (MyMusicFolder='') then begin
+		if (not RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','My Music', MyMusicFolder)) then
+			if (not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','My Music', MyMusicFolder)) then
+				if (not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','CommonMusic', MyMusicFolder)) then
+					if (RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','Personal', MyMusicFolder)) then
+						MyMusicFolder := MyMusicFolder + 'My Music'
+					else
+						MyMusicFolder := WizardDirValue;
+					end;
+					
 	Result := MyMusicFolder;
 end;
 
-function InitializeSetup() : Boolean;
-begin
-	Result := True;
+function GetPlaylistFolder() : String;
+begin
+
+  if (MyPlaylistFolder = '') then begin
+    if (GetMusicFolder() <> '') then
+      MyPlaylistFolder := GetMusicFolder()
+    else
+      MyPlaylistFolder := WizardDirValue;
+    end;
+    
+  Result := MyPlaylistFolder;
 end;
 
 procedure InitializeWizard();
 begin
 	AutoStart := '1';
-end;
-
-
-procedure CurStepChanged(CurStep: Integer);
+
+  MusicFolderPage := CreateInputDirPage(wpSelectDir,
+                    CustomMessage('SelectYourMusicFolder'),
+                    CustomMessage('WhereLookMusic'),
+                    CustomMessage('SelectMusicNext'),
+                    False, '');
+  MusicFolderPage.Add('');
+
+  MusicFolderPage.Values[0] := GetMusicFolder();
+  
+  
+  PlaylistFolderPage := CreateInputDirPage(wpSelectDir,
+                    CustomMessage('SelectPlaylistFolder'),
+                    CustomMessage('WhereLookPlaylists'),
+                    CustomMessage('SelectPlaylistNext'),
+                    False, '');
+  PlaylistFolderPage.Add('');
+
+  PlaylistFolderPage.Values[0] := GetPlaylistFolder();
+
+
+end;
+
+procedure CurStepChanged(CurStep: TSetupStep);
 var
 	ErrorCode: Integer;
 	ServicePath: String;
@@ -255,29 +212,30 @@
 	Uninstaller: String;
 	delPath: String;
 	PrefString : String;
-begin
-	if CurStep = csCopy then
+
+begin
+	if CurStep = ssInstall then
 		begin
 			// Queries the specified REG_SZ or REG_EXPAND_SZ registry key/value, and returns the value in ResultStr.
 			// Returns True if successful. When False is returned, ResultStr is unmodified.
 			if  RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\SLIMP3 Server_is1','UninstallString', Uninstaller) then
 				begin
-				if not InstExec(RemoveQuotes(Uninstaller), '/SILENT','', True, True, SW_SHOWNORMAL, ErrorCode) then
-					MsgBox('Problem uninstalling SLIMP3 software: ' + SysErrorMessage(ErrorCode),mbError, MB_OK);
+				if not Exec(RemoveQuotes(Uninstaller), '/SILENT','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode) then
+					MsgBox(CustomMessage('ProblemUninstallingSLIMP3') + SysErrorMessage(ErrorCode),mbError, MB_OK);
 			end;
 			
 			NewServerDir:= AddBackslash(ExpandConstant('{app}')) + AddBackslash('server');
-			InstExec('net', 'stop slimsvc', '', true, false, SW_HIDE, ErrorCode);
-			InstExec('net', 'stop SlimServerMySQL', '', true, false, SW_HIDE, ErrorCode);
+			Exec('net', 'stop slimsvc', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
+			Exec('net', 'stop SlimServerMySQL', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
 	
-			if RegQueryStringValue(HKLM, 'System\CurrentControlSet\Services\slimsvc', 'ImagePath', ServicePath) then 
+			if RegQueryStringValue(HKLM, 'System\CurrentControlSet\Services\slimsvc', 'ImagePath', ServicePath) then
 				begin
 					ServicePath:= RemoveQuotes(ServicePath);
 					OldServerDir:= AddBackslash(ExtractFileDir(ServicePath));
 				end
-			else 
+			else
 				begin
-					OldServerDir:= NewServerDir; 
+					OldServerDir:= NewServerDir;
 					if (FileExists(OldServerDir + 'slimsvc.exe')) then
 						ServicePath:= OldServerDir + 'slimsvc.exe'		
 					else
@@ -288,9 +246,9 @@
 			OldTrayDir := OldServerDir + AddBackslash('..');
 			TrayPath:= OldTrayDir + 'SlimTray.exe';
 			if (FileExists(TrayPath)) then
-				InstExec(TrayPath, '--exit', OldTrayDir, true, false, SW_HIDE, ErrorCode);
-
-			InstExec(ServicePath, '-remove', OldServerDir, true, false, SW_HIDE, ErrorCode);		
+				Exec(TrayPath, '--exit', OldTrayDir, SW_HIDE, ewWaitUntilTerminated, ErrorCode);
+
+			Exec(ServicePath, '-remove', OldServerDir, SW_HIDE, ewWaitUntilTerminated, ErrorCode);		
 
 			if (OldServerDir = NewServerDir) then
 				DeleteFile(ServicePath);
@@ -336,23 +294,140 @@
 	
 		end;
 
-	if CurStep = csFinished then begin
+	if CurStep = ssDone then begin
 		if not FileExists(FileName) then
 			begin
-				PrefString := 'audiodir = ' + MyMusicFolder + #13#10 + 'playlistdir = ' + MyPlayListFolder + #13#10;
+				PrefString := 'audiodir = ' + MyMusicFolder + #13#10 + 'playlistdir = ' + MyPlaylistFolder + #13#10;
 				SaveStringToFile(FileName, PrefString, False);
 			end;
 
 			NewServerDir := AddBackslash(ExpandConstant('{app}')) + AddBackslash('server');
 			if (AutoStart = '1') then
-				begin 
-					InstExec(NewServerDir + 'slim.exe', '-install auto', NewServerDir, True, False, SW_SHOWMINIMIZED, ErrorCode); 
-					InstExec('net', 'start slimsvc', '', true, false, SW_HIDE, ErrorCode);
+				begin
+					Exec(NewServerDir + 'slim.exe', '-install auto', NewServerDir, SW_SHOWMINIMIZED, ewWaitUntilTerminated, ErrorCode);
+					Exec('net', 'start slimsvc', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
 				end
 			else
 				begin
-					InstExec(NewServerDir + 'slim.exe', '-install', NewServerDir, True, False, SW_SHOWMINIMIZED, ErrorCode); 
+					Exec(NewServerDir + 'slim.exe', '-install', NewServerDir, SW_SHOWMINIMIZED, ewWaitUntilTerminated, ErrorCode);
 				end;
 	end;
 	
 end;
+
+[Ignore]
+
+function ScriptDlgPages(CurPage: Integer; BackClicked: Boolean): Boolean;
+var
+	CurSubPage: Integer;
+	Next: Boolean;
+begin
+	
+	if ((not BackClicked and (CurPage = wpSelectDir)) or (BackClicked and (CurPage = wpSelectProgramGroup))) then
+		begin
+			FileName:=AddBackslash(ExpandConstant('{app}')) + AddBackslash('server') + 'slimserver.pref';
+
+			// Insert a custom wizard page between two non custom pages
+			if  (BackClicked or FileExists(FileName)) then
+				curSubPage:=2
+			else
+				curSubPage:=0;
+		
+			ScriptDlgPageOpen();
+		
+			while(CurSubPage>=0) and (CurSubPage<=2) and not Terminated do begin
+				case CurSubPage of
+					0:
+						if not FileExists(FileName) then begin
+							ScriptDlgPageSetCaption('Select your Music Folder');
+							ScriptDlgPageSetSubCaption1('Where should the SlimServer look for your music?');
+							ScriptDlgPageSetSubCaption2('Select the folder you would like the SlimServer to look for your music, then click Next.');
+		
+							if(MyMusicFolder='') then begin
+								if (not RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','My Music', MyMusicFolder)) then
+									if (not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','My Music', MyMusicFolder)) then
+										if (not RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','CommonMusic', MyMusicFolder)) then
+											if (RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','Personal', MyMusicFolder)) then
+												MyMusicFolder := MyMusicFolder + 'My Music'
+											else
+												MyMusicFolder := WizardDirValue;
+							end;
+		
+							// Ask for a dir until the user has entered one or click Back or Cancel
+							Next := InputDir(false, '', MyMusicFolder);
+		
+							while Next and (MyMusicFolder = '') do begin
+								MsgBox(SetupMessage(msgInvalidPath), mbError, MB_OK);
+								Next := InputDir(false, '', MyMusicFolder);
+							end;
+						end;
+					1:
+						if not FileExists(FileName) then begin
+							ScriptDlgPageSetCaption('Select your Playlist Folder');
+							ScriptDlgPageSetSubCaption1('Where should SlimServer look for an store your Playlists?');
+							ScriptDlgPageSetSubCaption2('Select the folder you would like the SlimServer to look for or store your playlists, then click Next.');
+		
+							if(MyPlaylistFolder='') then begin
+								if(MyMusicFolder<>'') then
+									MyPlaylistFolder:=MyMusicFolder
+								else
+									MyPlaylistFolder := WizardDirValue;
+							end;
+		
+							// Ask for a dir until the user has entered one or click Back or Cancel
+							Next := InputDir(false, '', MyPlaylistFolder);
+		
+							while Next and (MyPlaylistFolder = '') do begin
+								MsgBox(SetupMessage(msgInvalidPath), mbError, MB_OK);
+								Next := InputDir(false, '', MyPlaylistFolder);
+							end;
+
+						end;
+					2:
+						begin
+							if UsingWinNT() then
+								begin
+									ScriptDlgPageSetCaption('Automatic Startup');
+									ScriptDlgPageSetSubCaption1('');
+									ScriptDlgPageSetSubCaption2('You can set SlimServer to start automatically when your computer starts up.');
+				
+									Next := InputOption('Start Automatically', AutoStart);
+
+									if (Next and (AutoStart <> '1')) then
+										CurSubPage := CurSubPage + 1;	
+
+								end;
+						end;				
+				end;
+		
+				if Next then begin
+						{ Go to the next page, but only if the user entered correct information }
+					CurSubPage := CurSubPage + 1;
+				end else
+					CurSubPage := CurSubPage - 1;
+		
+			end;
+			
+			if not BackClicked then
+				Result:=Next
+			else
+				Result:=not Next;
+		
+			ScriptDlgPageClose(not Result);
+		end
+	else
+		begin
+			Result := true;
+		end;
+end;
+
+function NextButtonClick(CurPage: Integer): Boolean;
+begin
+	Result := ScriptDlgPages(CurPage, False);
+end;
+
+function BackButtonClick(CurPage: Integer): Boolean;
+begin
+	Result := ScriptDlgPages(CurPage, True);
+end;
+

Modified: trunk/server/Changelog6.html
URL: http://svn.slimdevices.com/trunk/server/Changelog6.html?rev=11856&r1=11855&r2=11856&view=diff
==============================================================================
--- trunk/server/Changelog6.html (original)
+++ trunk/server/Changelog6.html Sun Apr 29 15:31:14 2007
@@ -60,6 +60,7 @@
 	<ul>
 		<li>Update logos and names to Logitech from Slim Devices in many places.
 		<li>Update help files for localization.
+		<li>Internationalization of Windows Installer
 	</ul>
 </ul>
 



More information about the checkins mailing list