Skip to content

Commit c22de1a

Browse files
committed
Merge branch 'master' into ExternalJsonFile
Conflicts: OSVR-Unity/Assets/OSVRUnity/src/DisplayInterface.cs
2 parents 911f6c7 + ffe1b17 commit c22de1a

4 files changed

Lines changed: 122 additions & 101 deletions

File tree

OSVR-Unity/Assets/OSVRUnity/Sample/Demo/Scripts/Objects/ColorChanger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class ColorChanger : MonoBehaviour, IColorChanger
4242
#region Init
4343
void Awake()
4444
{
45-
_material = renderer.materials[materialID];
45+
_material = GetComponent<Renderer>().materials[materialID];
4646
}
4747
#endregion
4848

OSVR-Unity/Assets/OSVRUnity/src/DeviceDescriptor.cs

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@
2323
using System.Text;
2424

2525
//a class for storing information about a device based on it's json descriptor file
26+
using Newtonsoft.Json;
27+
using System.IO;
28+
using System;
29+
30+
2631
public class DeviceDescriptor {
2732

2833
//filename
@@ -223,4 +228,106 @@ public override string ToString()
223228
.Append("rotate_180 = ").AppendLine(Rotate180.ToString());
224229
return jsonPrinter.ToString();
225230
}
231+
232+
/// <summary>
233+
/// This function will parse the device parameters from a device descriptor json file using Newstonsoft
234+
///
235+
/// Returns a DeviceDescriptor object containing stored json values.
236+
/// </summary>
237+
public static DeviceDescriptor Parse(string deviceDescriptorJson)
238+
{
239+
if (deviceDescriptorJson == null) {
240+
throw new ArgumentNullException ("deviceDescriptorJson");
241+
}
242+
243+
//create a device descriptor object for storing the parsed json in an object
244+
DeviceDescriptor deviceDescriptor;
245+
JsonTextReader reader;
246+
247+
248+
reader = new JsonTextReader(new StringReader(deviceDescriptorJson));
249+
if(reader != null)
250+
{
251+
deviceDescriptor = new DeviceDescriptor();
252+
}
253+
else
254+
{
255+
Debug.LogError("No Device Descriptor detected.");
256+
return null;
257+
}
258+
259+
//parsey
260+
while (reader.Read())
261+
{
262+
if (reader.Value != null && reader.ValueType == typeof(String))
263+
{
264+
string parsedJson = reader.Value.ToString().ToLower();
265+
switch(parsedJson)
266+
{
267+
case "vendor":
268+
deviceDescriptor.Vendor = reader.ReadAsString();
269+
break;
270+
case "model":
271+
deviceDescriptor.Model = reader.ReadAsString();
272+
break;
273+
case "version":
274+
deviceDescriptor.Version = reader.ReadAsString();
275+
break;
276+
case "note":
277+
deviceDescriptor.Note = reader.ReadAsString();
278+
break;
279+
case "monocular_horizontal":
280+
deviceDescriptor.MonocularHorizontal = float.Parse(reader.ReadAsString());
281+
break;
282+
case "monocular_vertical":
283+
deviceDescriptor.MonocularVertical = float.Parse(reader.ReadAsString());
284+
break;
285+
case "overlap_percent":
286+
deviceDescriptor.OverlapPercent = float.Parse(reader.ReadAsString());
287+
break;
288+
case "pitch_tilt":
289+
deviceDescriptor.PitchTilt = float.Parse(reader.ReadAsString());
290+
break;
291+
case "width":
292+
deviceDescriptor.Width = int.Parse(reader.ReadAsString());
293+
break;
294+
case "height":
295+
deviceDescriptor.Height = int.Parse(reader.ReadAsString());
296+
break;
297+
case "video_inputs":
298+
deviceDescriptor.VideoInputs = int.Parse(reader.ReadAsString());
299+
break;
300+
case "display_mode":
301+
deviceDescriptor.DisplayMode = reader.ReadAsString();
302+
break;
303+
case "k1_red":
304+
deviceDescriptor.K1Red = float.Parse(reader.ReadAsString());
305+
break;
306+
case "k1_green":
307+
deviceDescriptor.K1Green = float.Parse(reader.ReadAsString());
308+
break;
309+
case "k1_blue":
310+
deviceDescriptor.K1Blue = float.Parse(reader.ReadAsString());
311+
break;
312+
case "right_roll":
313+
deviceDescriptor.RightRoll = float.Parse(reader.ReadAsString());
314+
break;
315+
case "left_roll":
316+
deviceDescriptor.LeftRoll = float.Parse(reader.ReadAsString());
317+
break;
318+
case "center_proj_x":
319+
deviceDescriptor.CenterProjX = float.Parse(reader.ReadAsString());
320+
break;
321+
case "center_proj_y":
322+
deviceDescriptor.CenterProjY = float.Parse(reader.ReadAsString());
323+
break;
324+
case "rotate_180":
325+
deviceDescriptor.Rotate180 = int.Parse(reader.ReadAsString());
326+
break;
327+
}
328+
}
329+
}
330+
331+
return deviceDescriptor;
332+
}
226333
}

OSVR-Unity/Assets/OSVRUnity/src/DisplayInterface.cs

Lines changed: 10 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class DisplayInterface : MonoBehaviour
3939
const string HmdJsonFileName = "hmd.json"; //hardcoded filename of hmd config in Data folder
4040
private string _deviceDescriptorJson; //a string that is the JSON file to be parsed
4141
public TextAsset JsonDescriptorFile; //drop the json file into this slot in the Unity inspector
42-
4342
public bool Initialized
4443
{
4544
get { return _initialized; }
@@ -54,10 +53,9 @@ void Awake()
5453
if (System.IO.File.Exists(filePath))
5554
{
5655
StartCoroutine(LoadJsonFile(filePath));
57-
}
56+
}
5857
else //if not, load the json file provided in the Unity editor
5958
{
60-
6159
if (JsonDescriptorFile != null)
6260
{
6361
_deviceDescriptorJson = JsonDescriptorFile.text; //read JSON file directly from Unity if provided
@@ -67,20 +65,21 @@ void Awake()
6765
_deviceDescriptorJson = ClientKit.instance.context.getStringParameter("/display"); //otherwise read from /display
6866
}
6967
_initialized = true;
70-
}
68+
}
7169
}
7270

7371
//coroutine for loading an external json config file
7472
//this could be more generic, but I'm not sure we will be loading external files
7573
//this will eventually go away anyway when we get display config data from /display
7674
private IEnumerator LoadJsonFile(string filePath)
7775
{
78-
WWW jsonFile = new WWW("file://"+filePath);
76+
WWW jsonFile = new WWW("file://" + filePath);
7977
yield return jsonFile;
8078
_initialized = true;
8179
_deviceDescriptorJson = jsonFile.text;
8280
}
8381

82+
8483
/// <summary>
8584
/// This function will parse the device parameters from a device descriptor json file.
8685
///
@@ -100,100 +99,14 @@ public DeviceDescriptor GetDisplayParameters(TextAsset jsonDescriptor)
10099
public DeviceDescriptor GetDeviceDescription()
101100
{
102101
//create a device descriptor object for storing the parsed json in an object
103-
DeviceDescriptor deviceDescriptor;
104-
JsonTextReader reader;
105-
106-
reader = new JsonTextReader(new StringReader(_deviceDescriptorJson));
107-
if(reader != null)
108-
{
109-
deviceDescriptor = new DeviceDescriptor();
110-
}
111-
else
112-
{
113-
Debug.LogError("No Device Descriptor detected.");
114-
return null;
115-
}
116-
if(JsonDescriptorFile != null)
117-
{
118-
deviceDescriptor.FileName = JsonDescriptorFile.name;
119-
}
120-
else
121-
{
122-
deviceDescriptor.FileName = "No descriptor file has been assigned. Using parameters from /display";
123-
}
124-
125-
//parsey
126-
while (reader.Read())
127-
{
128-
if (reader.Value != null && reader.ValueType == typeof(String))
129-
{
130-
string parsedJson = reader.Value.ToString().ToLower();
131-
switch(parsedJson)
132-
{
133-
case "vendor":
134-
deviceDescriptor.Vendor = reader.ReadAsString();
135-
break;
136-
case "model":
137-
deviceDescriptor.Model = reader.ReadAsString();
138-
break;
139-
case "version":
140-
deviceDescriptor.Version = reader.ReadAsString();
141-
break;
142-
case "note":
143-
deviceDescriptor.Note = reader.ReadAsString();
144-
break;
145-
case "monocular_horizontal":
146-
deviceDescriptor.MonocularHorizontal = float.Parse(reader.ReadAsString());
147-
break;
148-
case "monocular_vertical":
149-
deviceDescriptor.MonocularVertical = float.Parse(reader.ReadAsString());
150-
break;
151-
case "overlap_percent":
152-
deviceDescriptor.OverlapPercent = float.Parse(reader.ReadAsString());
153-
break;
154-
case "pitch_tilt":
155-
deviceDescriptor.PitchTilt = float.Parse(reader.ReadAsString());
156-
break;
157-
case "width":
158-
deviceDescriptor.Width = int.Parse(reader.ReadAsString());
159-
break;
160-
case "height":
161-
deviceDescriptor.Height = int.Parse(reader.ReadAsString());
162-
break;
163-
case "video_inputs":
164-
deviceDescriptor.VideoInputs = int.Parse(reader.ReadAsString());
165-
break;
166-
case "display_mode":
167-
deviceDescriptor.DisplayMode = reader.ReadAsString();
168-
break;
169-
case "k1_red":
170-
deviceDescriptor.K1Red = float.Parse(reader.ReadAsString());
171-
break;
172-
case "k1_green":
173-
deviceDescriptor.K1Green = float.Parse(reader.ReadAsString());
174-
break;
175-
case "k1_blue":
176-
deviceDescriptor.K1Blue = float.Parse(reader.ReadAsString());
177-
break;
178-
case "right_roll":
179-
deviceDescriptor.RightRoll = float.Parse(reader.ReadAsString());
180-
break;
181-
case "left_roll":
182-
deviceDescriptor.LeftRoll = float.Parse(reader.ReadAsString());
183-
break;
184-
case "center_proj_x":
185-
deviceDescriptor.CenterProjX = float.Parse(reader.ReadAsString());
186-
break;
187-
case "center_proj_y":
188-
deviceDescriptor.CenterProjY = float.Parse(reader.ReadAsString());
189-
break;
190-
case "rotate_180":
191-
deviceDescriptor.Rotate180 = int.Parse(reader.ReadAsString());
192-
break;
193-
}
102+
DeviceDescriptor deviceDescriptor = DeviceDescriptor.Parse(_deviceDescriptorJson);
103+
if (deviceDescriptor != null) {
104+
if (JsonDescriptorFile != null) {
105+
deviceDescriptor.FileName = JsonDescriptorFile.name;
106+
} else {
107+
deviceDescriptor.FileName = "No descriptor file has been assigned. Using parameters from /display";
194108
}
195109
}
196-
197110
return deviceDescriptor;
198111
}
199112
}

OSVR-Unity/Assets/OSVRUnity/src/OsvrPostEffectsBase.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,10 @@ protected bool CheckSupport (bool needDepth) {
112112
return false;
113113
}
114114

115-
if(needDepth)
116-
camera.depthTextureMode |= DepthTextureMode.Depth;
117-
115+
if (needDepth) {
116+
GetComponent<Camera>().depthTextureMode |= DepthTextureMode.Depth;
117+
}
118+
118119
return true;
119120
}
120121

0 commit comments

Comments
 (0)