예제 #1
0
        public static OSVRConfig Read(string filePath, string serverRoot)
        {
            var ret      = new OSVRConfig();
            var includes = new List <OSVRInclude>();

            ret.Includes = includes;

            using (var configReader = File.OpenText(filePath))
                using (var jr = new JsonTextReader(configReader))
                {
                    JToken token = JObject.ReadFrom(jr);
                    if (!(token is JObject))
                    {
                        return(null);
                    }
                    ret.Body = (JObject)token;

                    // Display
                    var displayInclude = OSVRInclude.Parse(ret.Body, "display", serverRoot);
                    if (displayInclude != null)
                    {
                        includes.Add(displayInclude);
                    }

                    // RenderManager
                    var renderManagerInclude = OSVRInclude.Parse(ret.Body, "renderManagerConfig", serverRoot);
                    if (renderManagerInclude != null)
                    {
                        includes.Add(renderManagerInclude);
                    }
                }
            return(ret);
        }
예제 #2
0
        public static OSVRInclude Parse(JObject json, string fieldName, string serverRoot)
        {
            OSVRInclude ret   = null;
            JToken      token = null;

            if (json.TryGetValue(fieldName, out token) && token.Type == JTokenType.String)
            {
                string relativePath = token.Value <string>();
                ret = new OSVRInclude();
                ret.RelativePath = relativePath;
                try {
                    using (var includeReader = File.OpenText(Path.Combine(serverRoot, relativePath)))
                    {
                        ret.Body = (JObject)JObject.ReadFrom(new JsonTextReader(includeReader));
                    }
                }
                catch (System.IO.FileNotFoundException)
                {
                    ret = null;
                }
            }
            return(ret);
        }