예제 #1
0
        public bool LoadXMLFile(String file)
        {
            CMidiXMLSchema parser = new CMidiXMLSchema();

            if (parser.LoadSchema(file, "en"))
            {
                text_filename.Text = file;
                changed            = false;
                midiActions        = parser.MidiActions;
                XMLInfo            = parser.MidiMapInfo;
                XMLData            = parser.MidiMapData;

                int baudIndex = Array.IndexOf(CMidiFields.BaudRates, XMLData.BaudRate);
                baudrate_combo.SelectedIndex  = baudIndex;
                cbaudrate_combo.SelectedIndex = baudIndex;

                num_limit_packet.Value = XMLData.PacketCount;
                num_limit_ms.Value     = XMLData.PacketInterval;

                text_author.Text     = XMLInfo.Author;
                text_schemaname.Text = XMLInfo.Name;
                text_devices.Text    = XMLInfo.Name;

                if (XMLInfo.Description.Count > 0)
                {
                    for (int i = 0; i < XMLInfo.Description.Count; i++)
                    {
                        if (XMLInfo.Description[i].Lang == "en")
                        {
                            text_description.Text = XMLInfo.Description[i].Text;
                        }
                    }
                }

                text_website.Text = XMLInfo.Website;
                text_version.Text = XMLInfo.Version.ToString();
                renderData();
                unlockForm();

                return(true);
            }
            else
            {
                text_filename.Text = "";
            }
            return(false);
        }
예제 #2
0
        public bool SaveXMLFile()
        {
            if (!String.IsNullOrEmpty(text_filename.Text))
            {
                var            filename = text_filename.Text;
                CMidiXMLSchema writer   = new CMidiXMLSchema();
                CollectXMLData();
                writer.SetMidiInfo(XMLInfo);
                writer.SetMidiData(XMLData);
                writer.SetMidiActions(midiActions);
                return(writer.WriteSchema(filename));
            }
            else
            {
                Console.WriteLine("empty filename");
            }

            return(false);
        }
예제 #3
0
        private void loadDeviceMaps()
        {
            gridview_files.DataSource = null;
            CMidiXMLSchema parser = new CMidiXMLSchema();

            deviceMaps.Clear();
            schemeFiles.Clear();
            comboBox_midi_srf.Items.Clear();
            DirectoryInfo d = new DirectoryInfo(Program.GetMapsDir());

            if (d.Exists)
            {
                FileInfo[] Files = d.GetFiles("*.xml");
                foreach (FileInfo file in Files)
                {
                    try
                    {
                        SMidiXMLInfo?info = parser.LoadHeaders(file.Name);
                        if (info != null)
                        {
                            deviceMaps.Add((SMidiXMLInfo)info);
                            schemeFiles.Add(new CFMain_GridItem((SMidiXMLInfo)info));
                        }
                    }
                    catch (System.Xml.XmlException e)
                    {}
                }
            }

            comboBox_midi_srf.Items.Add(Program.res.GetString("select_midi_map"));
            comboBox_midi_srf.SelectedIndex = 0;
            foreach (var surf in deviceMaps)
            {
                comboBox_midi_srf.Items.Add(surf.Name);
            }

            gridview_files.DataSource = schemeFiles;
        }