Exemplo n.º 1
0
        /// <summary>
        /// Constructs by custom system data ([System_0] - [System_9]).
        /// </summary>
        /// <param name="data">Data of .ini section</param>
        public PinballXSystem(KeyDataCollection data) : this(Locator.Current)
        {
            var systemType = data["SystemType"];

            if ("0".Equals(systemType))
            {
                Type = Platform.Custom;
            }
            else if ("1".Equals(systemType))
            {
                Type = Platform.VP;
            }
            else if ("2".Equals(systemType))
            {
                Type = Platform.FP;
            }
            Name = data["Name"];

            SetByData(data);
            _mapping = new SystemMapping(MappingPath, _marshallManager);
        }
Exemplo n.º 2
0
        public void MarshallMappings(SystemMapping data, string dataFile)
        {
            // don't do anything for non-existent folder
            var dbFolder = Path.GetDirectoryName(dataFile);

            if (dbFolder != null && dataFile != null && !Directory.Exists(dbFolder))
            {
                _logger.Warn("Directory {0} does not exist, not writing vpdb.json.", dbFolder);
                return;
            }

            try {
                using (var sw = new StreamWriter(dataFile))
                    using (JsonWriter writer = new JsonTextWriter(sw)) {
                        _serializer.Serialize(writer, data);
                    }
                _logger.Debug("Wrote vpdb.json back to {0}", dataFile);
            } catch (Exception e) {
                _logger.Error(e, "Error writing vpdb.json to {0}", dataFile);
                _crashManager.Report(e, "json");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Constructs by default system data ([VisualPinball], [FuturePinball]).
        /// </summary>
        /// <param name="type">System type</param>
        /// <param name="data">Data of .ini section</param>
        public PinballXSystem(Platform type, KeyDataCollection data) : this(Locator.Current)
        {
            Type = type;
            switch (type)
            {
            case Platform.VP:
                Name = "Visual Pinball";
                break;

            case Platform.FP:
                Name = "Future Pinball";
                break;

            case Platform.Custom:
                Name = "Custom";
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
            SetByData(data);
            _mapping = new SystemMapping(MappingPath, _marshallManager);
        }