- add lib driver

master
Simon G 5 years ago
parent 0654c3a05e
commit c282b7648b
  1. 23
      Lib.Driver/DriverLoader.cs
  2. 13
      Lib.Driver/Factories/IDriverLoaderFactory.cs
  3. 13
      Lib.Driver/Interfaces/IDriverLoader.cs
  4. 7
      Lib.Driver/Lib.Driver.csproj
  5. 15
      Lib.Driver/Xml/XmlButton.cs
  6. 23
      Lib.Driver/Xml/XmlChannel.cs
  7. 17
      Lib.Driver/Xml/XmlDriver.cs
  8. 14
      Lib.Driver/Xml/XmlFader.cs
  9. 14
      Lib.Driver/Xml/XmlKnob.cs
  10. 6
      Mystify.sln

@ -0,0 +1,23 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using Lib.Driver.Interfaces;
using Lib.Driver.Xml;
namespace Lib.Driver
{
public class DriverLoader : IDriverLoader
{
public XmlDriver Load(string driverPath)
{
XmlReader xmlReader = XmlReader.Create(File.OpenRead(driverPath));
XmlSerializer xmlSerializer = new(typeof(XmlDriver));
return (XmlDriver) xmlSerializer.Deserialize(xmlReader);
}
}
}

@ -0,0 +1,13 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using Lib.Driver.Interfaces;
namespace Lib.Driver.Factories
{
public interface IDriverLoaderFactory
{
IDriverLoader Create();
}
}

@ -0,0 +1,13 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using Lib.Driver.Xml;
namespace Lib.Driver.Interfaces
{
public interface IDriverLoader
{
XmlDriver Load(string driverPath);
}
}

@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>

@ -0,0 +1,15 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System.Xml.Serialization;
namespace Lib.Driver.Xml
{
[XmlRoot("Button")]
public class XmlButton
{
[XmlElement("Type")]
public string ButtonType { get; set; }
}
}

@ -0,0 +1,23 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System.Collections.Generic;
using System.Xml.Serialization;
namespace Lib.Driver.Xml
{
[XmlRoot("Channel")]
public class XmlChannel
{
[XmlElement("Fader")]
public XmlFader Fader { get; set; }
[XmlElement("Knob")]
public XmlKnob Knob { get; set; }
[XmlArray("Buttons")]
[XmlArrayItem("Button", typeof(XmlButton))]
public List<XmlButton> Buttons { get; set; }
}
}

@ -0,0 +1,17 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System.Collections.Generic;
using System.Xml.Serialization;
namespace Lib.Driver.Xml
{
[XmlRoot("MidiDevice")]
public class XmlDriver
{
[XmlArray("Channels")]
[XmlArrayItem("Channel", typeof(XmlChannel))]
public List<XmlChannel> Channels { get; set; }
}
}

@ -0,0 +1,14 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System.Xml.Serialization;
namespace Lib.Driver.Xml
{
[XmlRoot("Fader")]
public class XmlFader
{
}
}

@ -0,0 +1,14 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System.Xml.Serialization;
namespace Lib.Driver.Xml
{
[XmlRoot("Knob")]
public class XmlKnob
{
}
}

@ -8,6 +8,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib.Audio", "Lib.Audio\Lib.
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib.Midi", "Lib.Midi\Lib.Midi.csproj", "{E4359142-6D64-4103-ADDF-7AD6A5663F17}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib.Midi", "Lib.Midi\Lib.Midi.csproj", "{E4359142-6D64-4103-ADDF-7AD6A5663F17}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib.Driver", "Lib.Driver\Lib.Driver.csproj", "{3C246E60-EC2B-41FE-AB1C-96B8C4FD9136}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -30,5 +32,9 @@ Global
{E4359142-6D64-4103-ADDF-7AD6A5663F17}.Debug|Any CPU.Build.0 = Debug|Any CPU {E4359142-6D64-4103-ADDF-7AD6A5663F17}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E4359142-6D64-4103-ADDF-7AD6A5663F17}.Release|Any CPU.ActiveCfg = Release|Any CPU {E4359142-6D64-4103-ADDF-7AD6A5663F17}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E4359142-6D64-4103-ADDF-7AD6A5663F17}.Release|Any CPU.Build.0 = Release|Any CPU {E4359142-6D64-4103-ADDF-7AD6A5663F17}.Release|Any CPU.Build.0 = Release|Any CPU
{3C246E60-EC2B-41FE-AB1C-96B8C4FD9136}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C246E60-EC2B-41FE-AB1C-96B8C4FD9136}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C246E60-EC2B-41FE-AB1C-96B8C4FD9136}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C246E60-EC2B-41FE-AB1C-96B8C4FD9136}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

Loading…
Cancel
Save