Skip to content

Commit

Permalink
Merge branch 'master' into avalonia-11
Browse files Browse the repository at this point in the history
  • Loading branch information
IsaacMarovitz committed Jan 9, 2023
2 parents 220613b + 51b3953 commit fd0bc5f
Show file tree
Hide file tree
Showing 24 changed files with 562 additions and 246 deletions.
111 changes: 111 additions & 0 deletions Ryujinx.Ava/Helper/LoggerAdapter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
using Avalonia.Utilities;
using System;
using System.Text;

namespace Ryujinx.Ava.UI.Helper
{
using AvaLogger = Avalonia.Logging.Logger;
using AvaLogLevel = Avalonia.Logging.LogEventLevel;
using RyuLogger = Ryujinx.Common.Logging.Logger;
using RyuLogClass = Ryujinx.Common.Logging.LogClass;

internal class LoggerAdapter : Avalonia.Logging.ILogSink
{
public static void Register()
{
AvaLogger.Sink = new LoggerAdapter();
}

private static RyuLogger.Log? GetLog(AvaLogLevel level)
{
return level switch
{
AvaLogLevel.Verbose => RyuLogger.Trace,
AvaLogLevel.Debug => RyuLogger.Debug,
AvaLogLevel.Information => RyuLogger.Info,
AvaLogLevel.Warning => RyuLogger.Warning,
AvaLogLevel.Error => RyuLogger.Error,
AvaLogLevel.Fatal => RyuLogger.Notice,
_ => throw new ArgumentOutOfRangeException(nameof(level), level, null)
};
}

public bool IsEnabled(AvaLogLevel level, string area)
{
return GetLog(level) != null;
}

public void Log(AvaLogLevel level, string area, object source, string messageTemplate)
{
GetLog(level)?.PrintMsg(RyuLogClass.Ui, Format(area, messageTemplate, source, null));
}

public void Log<T0>(AvaLogLevel level, string area, object source, string messageTemplate, T0 propertyValue0)
{
GetLog(level)?.PrintMsg(RyuLogClass.Ui, Format(area, messageTemplate, source, new object[] { propertyValue0 }));
}

public void Log<T0, T1>(AvaLogLevel level, string area, object source, string messageTemplate, T0 propertyValue0, T1 propertyValue1)
{
GetLog(level)?.PrintMsg(RyuLogClass.Ui, Format(area, messageTemplate, source, new object[] { propertyValue0, propertyValue1 }));
}

public void Log<T0, T1, T2>(AvaLogLevel level, string area, object source, string messageTemplate, T0 propertyValue0, T1 propertyValue1, T2 propertyValue2)
{
GetLog(level)?.PrintMsg(RyuLogClass.Ui, Format(area, messageTemplate, source, new object[] { propertyValue0, propertyValue1, propertyValue2 }));
}

public void Log(AvaLogLevel level, string area, object source, string messageTemplate, params object[] propertyValues)
{
GetLog(level)?.PrintMsg(RyuLogClass.Ui, Format(area, messageTemplate, source, propertyValues));
}

private static string Format(string area, string template, object source, object[] v)
{
var result = new StringBuilder();
var r = new CharacterReader(template.AsSpan());
var i = 0;

result.Append('[');
result.Append(area);
result.Append("] ");

while (!r.End)
{
var c = r.Take();

if (c != '{')
{
result.Append(c);
}
else
{
if (r.Peek != '{')
{
result.Append('\'');
result.Append(i < v.Length ? v[i++] : null);
result.Append('\'');
r.TakeUntil('}');
r.Take();
}
else
{
result.Append('{');
r.Take();
}
}
}

if (source != null)
{
result.Append(" (");
result.Append(source.GetType().Name);
result.Append(" #");
result.Append(source.GetHashCode());
result.Append(')');
}

return result.ToString();
}
}
}
5 changes: 3 additions & 2 deletions Ryujinx.Ava/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ public static void Main(string[] args)

Initialize(args);

LoggerAdapter.Register();

BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}

Expand All @@ -111,8 +113,7 @@ public static AppBuilder BuildAvaloniaApp()
CompositionBackdropCornerRadius = 8.0f,
UseCompositor = true
})
.UseSkia()
.LogToTrace();
.UseSkia();
}

private static void Initialize(string[] args)
Expand Down
3 changes: 3 additions & 0 deletions Ryujinx.Ava/UI/Controls/GameGridView.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,9 @@
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].DataContext.GridItemSelectorSize}" />
</Style>
<Style Selector="ListBoxItem:selected /template/ Border#SelectionIndicator">
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].DataContext.GridItemSelectorSize}" />
</Style>
</ListBox.Styles>
<ListBox.ItemTemplate>
<DataTemplate>
Expand Down
2 changes: 1 addition & 1 deletion Ryujinx.Ava/UI/Controls/GameGridView.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs a
{
if (sender is ListBox listBox)
{
var selected = listBox.SelectedItem as ApplicationData;
_selectedApplication = listBox.SelectedItem as ApplicationData;

SelectedApplication = selected;
}
Expand Down
2 changes: 1 addition & 1 deletion Ryujinx.Ava/UI/Controls/GameListView.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Styles>
<Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
<Style Selector="ListBoxItem:selected /template/ Border#SelectionIndicator">
<Setter Property="MinHeight" Value="{Binding $parent[UserControl].DataContext.ListItemSelectorSize}" />
</Style>
</ListBox.Styles>
Expand Down
2 changes: 1 addition & 1 deletion Ryujinx.Ava/UI/Controls/GameListView.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs a
{
if (sender is ListBox listBox)
{
var selected = listBox.SelectedItem as ApplicationData;
_selectedApplication = listBox.SelectedItem as ApplicationData;

SelectedApplication = selected;
}
Expand Down

0 comments on commit fd0bc5f

Please sign in to comment.