@@ -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 }
0 commit comments