public static PlatformScanResult ScanPlatforms(string roms_folder) { var result = new PlatformScanResult(); var dir = new DirectoryInfo(roms_folder); foreach (var child_dir in dir.EnumerateDirectories()) { var platform_id = TryToInferPlatformId(child_dir.Name); if (platform_id != PlatformId.UNKNOWN) { var platform = new Platform(platform_id, PlatformIdMethods.GetDisplayName(platform_id), child_dir.FullName); result.Platforms.Add(platform); } else { result.UnrecognizedDirectories.Add(child_dir); } } return(result); }
private void InitCreatePlatformContextMenu() { var available_platforms_list_for_manual_assign = PlatformIdMethods.GetAllValid(); foreach (var platform in _scan_platforms.Platforms) { if (available_platforms_list_for_manual_assign.Contains(platform.PlatformId)) { available_platforms_list_for_manual_assign.Remove(platform.PlatformId); } } _platform_assign_context_menu = new PlatformAssignContextMenu(available_platforms_list_for_manual_assign, OnCreatePlatformContextMenuItemSelected); }
private void AddNewAssignedPlatform(DirectoryInfo directory, PlatformId platform_id) { var platform = new Platform(platform_id, PlatformIdMethods.GetDisplayName(platform_id), directory.FullName); int last_selected_platform_index = detectedPlatforms.SelectedIndex; _scan_platforms.Platforms.Add(platform); _scan_platforms.UnrecognizedDirectories.Remove(directory); detectedPlatforms.SetObjects(_scan_platforms.Platforms); listUnrecognized.SetObjects(_scan_platforms.UnrecognizedDirectories); detectedPlatforms.SelectedIndex = last_selected_platform_index; ScanRoms(platform); UpdateRomsPanel(); }