diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj
index 2c146f5fc..81ee80791 100644
--- a/Artemis/Artemis/Artemis.csproj
+++ b/Artemis/Artemis/Artemis.csproj
@@ -629,6 +629,7 @@
+
diff --git a/Artemis/Artemis/DAL/ProfileProvider.cs b/Artemis/Artemis/DAL/ProfileProvider.cs
index 0207e7a03..7060f8801 100644
--- a/Artemis/Artemis/DAL/ProfileProvider.cs
+++ b/Artemis/Artemis/DAL/ProfileProvider.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Reflection;
using System.Xml.Serialization;
using Artemis.DeviceProviders;
using Artemis.Models;
@@ -12,7 +13,8 @@ namespace Artemis.DAL
{
public static class ProfileProvider
{
- private static Logger _logger = LogManager.GetCurrentClassLogger();
+ private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
+
private static readonly string ProfileFolder =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Artemis\profiles";
@@ -70,6 +72,7 @@ namespace Artemis.DAL
private static List ReadProfiles()
{
CheckProfiles();
+ InstallDefaults();
var profiles = new List();
// Create the directory structure
@@ -83,7 +86,7 @@ namespace Artemis.DAL
{
using (var file = new StreamReader(path))
{
- var prof = (ProfileModel)deserializer.Deserialize(file);
+ var prof = (ProfileModel) deserializer.Deserialize(file);
if (prof.GameName?.Length > 1 && prof.KeyboardSlug?.Length > 1 && prof.Name?.Length > 1)
profiles.Add(prof);
}
@@ -92,12 +95,25 @@ namespace Artemis.DAL
{
_logger.Error("Failed to load profile: {0} - {1}", path, e.InnerException.Message);
}
-
}
return profiles;
}
+ ///
+ /// Unpacks the default profiles into the profile directory
+ ///
+ private static void InstallDefaults()
+ {
+ var test = Assembly.GetExecutingAssembly().GetManifestResourceNames();
+ //var stream =
+ // Assembly.GetExecutingAssembly()
+ // .GetManifestResourceStream("Artemis.Properties.Resources.logo.jpg");
+
+ //Resources.
+ //ZipPackage.Open(Re.defaultProfiles)
+ }
+
///
/// Makes sure the profile directory structure is in order and places default profiles
///
diff --git a/Artemis/Artemis/Properties/Resources.Designer.cs b/Artemis/Artemis/Properties/Resources.Designer.cs
index 50e5d22e3..b237a9be5 100644
--- a/Artemis/Artemis/Properties/Resources.Designer.cs
+++ b/Artemis/Artemis/Properties/Resources.Designer.cs
@@ -120,6 +120,16 @@ namespace Artemis.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Byte[].
+ ///
+ internal static byte[] defaultProfiles {
+ get {
+ object obj = ResourceManager.GetObject("defaultProfiles", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
///
/// Looks up a localized string similar to "Artemis"
///{
diff --git a/Artemis/Artemis/Properties/Resources.resx b/Artemis/Artemis/Properties/Resources.resx
index 29d7d58bc..938085066 100644
--- a/Artemis/Artemis/Properties/Resources.resx
+++ b/Artemis/Artemis/Properties/Resources.resx
@@ -175,4 +175,7 @@
..\Resources\Keyboards\blackwidow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Keyboards\default-profiles.zip;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/Artemis/Artemis/Resources/Keyboards/default-profiles.zip b/Artemis/Artemis/Resources/Keyboards/default-profiles.zip
new file mode 100644
index 000000000..a7f03cbde
Binary files /dev/null and b/Artemis/Artemis/Resources/Keyboards/default-profiles.zip differ