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
{
internal 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;