aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJeff Ames2008-05-01 17:07:58 +0000
committerJeff Ames2008-05-01 17:07:58 +0000
commite38ee199b9dca255d3f3806ed7f0894754a7065c (patch)
tree9340a9d35691722abc8884f631947f6be4756085
parent* Cleaning code still. (diff)
downloadopensim-SC-e38ee199b9dca255d3f3806ed7f0894754a7065c.zip
opensim-SC-e38ee199b9dca255d3f3806ed7f0894754a7065c.tar.gz
opensim-SC-e38ee199b9dca255d3f3806ed7f0894754a7065c.tar.bz2
opensim-SC-e38ee199b9dca255d3f3806ed7f0894754a7065c.tar.xz
Refactor machine-dependent configuration in LaunchSLClient.
-rw-r--r--OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs120
-rw-r--r--OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs37
-rw-r--r--OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs50
-rw-r--r--OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs4
-rw-r--r--OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs42
-rw-r--r--OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs55
6 files changed, 226 insertions, 82 deletions
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs
index 1cddb2b..700c004 100644
--- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs
+++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs
@@ -44,7 +44,7 @@ namespace LaunchSLClient
44 { 44 {
45 const string deepGridUrl = "http://user.deepgrid.com:8002/"; 45 const string deepGridUrl = "http://user.deepgrid.com:8002/";
46 const string osGridUrl = "http://www.osgrid.org:8002/"; 46 const string osGridUrl = "http://www.osgrid.org:8002/";
47 const string openLifeGridUrl = "http://logingrid.net:8002"; 47 const string openLifeGridUrl = "http://logingrid.net:8002/";
48 48
49 string gridUrl = ""; 49 string gridUrl = "";
50 string sandboxUrl = ""; 50 string sandboxUrl = "";
@@ -53,6 +53,47 @@ namespace LaunchSLClient
53 string exeFlags = ""; 53 string exeFlags = "";
54 string exePath = ""; 54 string exePath = "";
55 55
56 private MachineConfig m_machineConfig;
57
58 public Form1()
59 {
60 InitializeComponent();
61 ArrayList menuItems = new ArrayList();
62
63 m_machineConfig = getMachineConfig();
64 m_machineConfig.GetClient(ref exePath, ref runLine, ref exeFlags);
65
66 menuItems.Add("Please select one:");
67
68 addLocalSims(ref menuItems);
69
70 menuItems.Add("OSGrid - www.osgrid.org");
71 menuItems.Add("DeepGrid - www.deepgrid.com");
72 menuItems.Add("OpenlifeGrid - www.openlifegrid.com");
73 menuItems.Add("Linden Labs - www.secondlife.com");
74
75 comboBox1.DataSource = menuItems;
76 }
77
78 private MachineConfig getMachineConfig()
79 {
80 if (Environment.OSVersion.Platform == PlatformID.Unix)
81 {
82 if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa"))
83 {
84 return new OSXConfig();
85 }
86 else
87 {
88 return new UnixConfig();
89 }
90 }
91 else
92 {
93 return new WindowsConfig();
94 }
95 }
96
56 private void addLocalSandbox(ref ArrayList menuItems) 97 private void addLocalSandbox(ref ArrayList menuItems)
57 { 98 {
58 // build sandbox URL from Regions\default.xml 99 // build sandbox URL from Regions\default.xml
@@ -140,83 +181,6 @@ namespace LaunchSLClient
140 } 181 }
141 } 182 }
142 183
143 private void getClientWindows(ref string exePath, ref string runLine, ref string exeFlags)
144 {
145 // get executable path from registry
146 RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife");
147 if (regKey == null)
148 {
149 regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife");
150 if (regKey == null)
151 {
152 throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1");
153 }
154 }
155 string exe = regKey.GetValue("Exe").ToString();
156 exeFlags = regKey.GetValue("Flags").ToString();
157 exePath = regKey.GetValue("").ToString();
158 runLine = exePath + "\\" + exe;
159 Registry.LocalMachine.Flush();
160 Registry.LocalMachine.Close();
161 }
162
163 private void getClientMacOSX(ref string exePath, ref string runLine, ref string exeFlags)
164 {
165 if (Directory.Exists("/Applications/Second Life.app"))
166 {
167 exePath = "/Applications/Second Life.app/Contents/MacOS";
168 }
169
170 runLine = exePath + "/Second Life";
171 exeFlags = "";
172 }
173
174 private void getClientUnix(ref string exePath, ref string runLine, ref string exeFlags)
175 {
176 }
177
178 private void getClient(ref string exePath, ref string runLine, ref string exeFlags)
179 {
180 if (Environment.OSVersion.Platform == PlatformID.Unix)
181 {
182 if (File.Exists("/System/Library/Frameworks/Cocoa.framework/Cocoa"))
183 {
184 getClientMacOSX(ref exePath, ref runLine, ref exeFlags);
185 }
186 else
187 {
188 getClientUnix(ref exePath, ref runLine, ref exeFlags);
189 }
190 }
191 else
192 {
193 getClientWindows(ref exePath, ref runLine, ref exeFlags);
194 }
195 }
196
197 public Form1()
198 {
199 InitializeComponent();
200 ArrayList menuItems = new ArrayList();
201
202 getClient(ref exePath, ref runLine, ref exeFlags);
203
204 menuItems.Add("Please select one:");
205
206 addLocalSims(ref menuItems);
207
208 menuItems.Add("OSGrid - www.osgrid.org");
209 menuItems.Add("DeepGrid - www.deepgrid.com");
210 menuItems.Add("OpenlifeGrid - www.openlifegrid.com");
211 menuItems.Add("Linden Labs - www.secondlife.com");
212
213 comboBox1.DataSource = menuItems;
214 }
215
216 private void radioButton1_CheckedChanged(object sender, EventArgs e)
217 {
218 }
219
220 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 184 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
221 { 185 {
222 if (comboBox1.Text == "Please select one:") { return; } 186 if (comboBox1.Text == "Please select one:") { return; }
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs
new file mode 100644
index 0000000..68a86c4
--- /dev/null
+++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/MachineConfig.cs
@@ -0,0 +1,37 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.IO;
30
31namespace LaunchSLClient
32{
33 public abstract class MachineConfig
34 {
35 public abstract void GetClient(ref string exePath, ref string runLine, ref string exeFlags);
36 }
37}
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs
new file mode 100644
index 0000000..60e5e48
--- /dev/null
+++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/OSXConfig.cs
@@ -0,0 +1,50 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.IO;
30
31namespace LaunchSLClient
32{
33 public class OSXConfig : UnixConfig
34 {
35 public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags)
36 {
37 if (Directory.Exists("/Applications/Second Life.app"))
38 {
39 exePath = "/Applications/Second Life.app/Contents/MacOS";
40 }
41 else if (Directory.Exists("/Applications/Second Life Release Candidate.app"))
42 {
43 exePath = "/Applications/Second Life Release Candidate.app/Contents/MacOS";
44 }
45
46 runLine = exePath + "/Second Life";
47 exeFlags = "";
48 }
49 }
50}
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs
index 822611c..1d715a5 100644
--- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs
+++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs
@@ -33,9 +33,6 @@ namespace LaunchSLClient
33{ 33{
34 static class Program 34 static class Program
35 { 35 {
36 /// <summary>
37 /// The main entry point for the application.
38 /// </summary>
39 [STAThread] 36 [STAThread]
40 static void Main() 37 static void Main()
41 { 38 {
@@ -47,7 +44,6 @@ namespace LaunchSLClient
47 } 44 }
48 catch (Exception ex) 45 catch (Exception ex)
49 { 46 {
50 // Handles all unhandled errors
51 MessageBox.Show(ex.Message,"Unhandled Error"); 47 MessageBox.Show(ex.Message,"Unhandled Error");
52 } 48 }
53 } 49 }
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs
new file mode 100644
index 0000000..eb5342f
--- /dev/null
+++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/UnixConfig.cs
@@ -0,0 +1,42 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.IO;
30
31namespace LaunchSLClient
32{
33 public class UnixConfig : MachineConfig
34 {
35 public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags)
36 {
37 exePath = "";
38 runLine = "secondlife";
39 exeFlags = "";
40 }
41 }
42}
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs
new file mode 100644
index 0000000..f3b797c
--- /dev/null
+++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/WindowsConfig.cs
@@ -0,0 +1,55 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.IO;
30using Microsoft.Win32;
31
32namespace LaunchSLClient
33{
34 public class WindowsConfig : MachineConfig
35 {
36 public override void GetClient(ref string exePath, ref string runLine, ref string exeFlags)
37 {
38 RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife");
39 if (regKey == null)
40 {
41 regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Linden Research, Inc.\SecondLife");
42 if (regKey == null)
43 {
44 throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1");
45 }
46 }
47 string exe = regKey.GetValue("Exe").ToString();
48 exeFlags = regKey.GetValue("Flags").ToString();
49 exePath = regKey.GetValue("").ToString();
50 runLine = exePath + "\\" + exe;
51 Registry.LocalMachine.Flush();
52 Registry.LocalMachine.Close();
53 }
54 }
55}