private byte[]? LoadExpectedIcon(SectionItem sectionItem, NacpLanguage nacpLanguage) { var languageName = nacpLanguage.ToString(); var expectedFileName = $"icon_{languageName}.dat"; var iconItem = sectionItem.ChildItems.FirstOrDefault(item => string.Equals(item.Name, expectedFileName, StringComparison.OrdinalIgnoreCase)); if (iconItem == null) { var message = LocalizationManager.Instance.Current.Keys.LoadingError_IconMissing.SafeFormat(expectedFileName); sectionItem.Errors.Add(message); _logger.LogError(message); return(null); } var fileSystem = sectionItem.FileSystem; if (fileSystem == null) { return(null); } try { using var uniqueRefFile = new UniqueRef <IFile>(); fileSystem.OpenFile(ref uniqueRefFile.Ref(), iconItem.Path.ToU8Span(), OpenMode.Read).ThrowIfFailure(); var file = uniqueRefFile.Release(); file.GetSize(out var fileSize).ThrowIfFailure(); var bytes = new byte[fileSize]; file.AsStream().Read(bytes); return(bytes); } catch (Exception ex) { var message = LocalizationManager.Instance.Current.Keys.LoadingError_FailedToLoadIcon.SafeFormat(ex.Message); iconItem.Errors.Add(message); _logger.LogError(ex, message); return(null); } }
public TitleInfo(ref ApplicationControlTitle applicationControlTitle, NacpLanguage language) { _applicationControlTitle = applicationControlTitle; Language = language; }