cemu-DS4Windows/DS4Tool/SaveWhere.cs
jays2kings a66878498e Version 1.4.1 [Mac(a)roni]
Record 360 controls using your DualShock 4 (PS: any old macros using
hold control while running macro may be set to a new control when
loaded, please re save your macro)
Macro recording now happens in the select an action window instead of a
separate one
Save and Load Macro presets to use any time
When recording with delays (recommend for X360 macros) you can double
click on delays to edit the time
When recording a new macro, previously saved Macros for that control are
shown
Many minor Macro fixes
Giving major updates useless names that will never be seen outside of
this changelog
Icon Update
Fixed shift modifier lightbar settings blocked off
High DPI support (144+)
Fixed various bugs at 120 DPI and higher
When installing the ds4 driver, Actually checks if the driver got
installed instead of always saying install complete
2014-11-14 14:44:50 -05:00

103 lines
3.5 KiB
C#

using DS4Control;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace ScpServer
{
public partial class SaveWhere : Form
{
private bool multisaves;
string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
public SaveWhere(bool multisavespots)
{
InitializeComponent();
Icon = Properties.Resources.DS4W;
multisaves = multisavespots;
lbMultiSaves.Visible = multisaves;
cBDeleteOther.Visible = multisaves;
if (multisaves)
lbPickWhere.Text += ", other location files will be deleted";
if (Global.AdminNeeded())
bnPrgmFolder.Enabled = false;
}
private void bnPrgmFolder_Click(object sender, EventArgs e)
{
Global.SaveWhere(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName);
if (multisaves && !cBDeleteOther.Checked)
{
try { Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool", true); }
catch { }
}
else if (!multisaves)
Save(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + "\\Profiles.xml");
Close();
}
private void bnAppdataFolder_Click(object sender, EventArgs e)
{
if (multisaves && !cBDeleteOther.Checked)
try
{
Directory.Delete(exepath + "\\Profiles", true);
File.Delete(exepath + "\\Profiles.xml");
File.Delete(exepath + "\\Auto Profiles.xml");
}
catch (UnauthorizedAccessException) { MessageBox.Show("Cannot Delete old settings, please manaully delete", "DS4Windows"); }
else if (!multisaves)
Save(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool\\Profiles.xml");
Global.SaveWhere(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool");
Close();
}
public bool Save(String path)
{
Boolean Saved = true;
XmlDocument m_Xdoc = new XmlDocument();
try
{
XmlNode Node;
m_Xdoc.RemoveAll();
Node = m_Xdoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty);
m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateComment(String.Format(" Profile Configuration Data. {0} ", DateTime.Now));
m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateWhitespace("\r\n");
m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateNode(XmlNodeType.Element, "Profile", null);
m_Xdoc.AppendChild(Node);
m_Xdoc.Save(path);
}
catch { Saved = false; }
return Saved;
}
private void SaveWhere_FormClosing(object sender, FormClosingEventArgs e)
{
if (String.IsNullOrEmpty(Global.appdatapath))
if (MessageBox.Show("Close DS4Windows?\nA location must be picked to continue", "DS4Windows",
MessageBoxButtons.YesNo) == DialogResult.No)
e.Cancel = true;
}
}
}