46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
|
using Avalonia.Data.Converters;
|
||
|
using Ryujinx.Common.Configuration.Hid;
|
||
|
using Ryujinx.Common.Configuration.Hid.Controller;
|
||
|
using System;
|
||
|
using System.Globalization;
|
||
|
|
||
|
namespace Ryujinx.Ava.Ui.Controls
|
||
|
{
|
||
|
public class KeyValueConverter : IValueConverter
|
||
|
{
|
||
|
public static KeyValueConverter Instance = new();
|
||
|
|
||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||
|
{
|
||
|
if (value == null)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
return value.ToString();
|
||
|
}
|
||
|
|
||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||
|
{
|
||
|
object key = null;
|
||
|
|
||
|
if (value != null)
|
||
|
{
|
||
|
if (targetType == typeof(Key))
|
||
|
{
|
||
|
key = Enum.Parse<Key>(value.ToString());
|
||
|
}
|
||
|
else if (targetType == typeof(GamepadInputId))
|
||
|
{
|
||
|
key = Enum.Parse<GamepadInputId>(value.ToString());
|
||
|
}
|
||
|
else if (targetType == typeof(StickInputId))
|
||
|
{
|
||
|
key = Enum.Parse<StickInputId>(value.ToString());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return key;
|
||
|
}
|
||
|
}
|
||
|
}
|