1 // -------------------------------------------------------------------------------------------------------------------- 2 // <copyright file="TaskState.cs" company="HandBrake Project (https://handbrake.fr)"> 3 // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. 4 // </copyright> 5 // <summary> 6 // The status of the current task being processed. 7 // </summary> 8 // -------------------------------------------------------------------------------------------------------------------- 9 10 namespace HandBrake.Interop.Interop.Json.State 11 { 12 using System.Collections.Generic; 13 14 public class TaskState 15 { 16 private static readonly Dictionary<string, TaskState> TaskStates = new Dictionary<string, TaskState>(); 17 18 public static TaskState Idle = new TaskState("IDLE"); 19 public static TaskState Scanning = new TaskState("SCANNING"); 20 public static TaskState ScanDone = new TaskState("SCANDONE"); 21 public static TaskState Working = new TaskState("WORKING"); 22 public static TaskState Paused = new TaskState("PAUSED"); 23 public static TaskState Searching = new TaskState("SEARCHING"); 24 public static TaskState WorkDone = new TaskState("WORKDONE"); 25 public static TaskState Muxing = new TaskState("MUXING"); 26 public static TaskState Unknown = new TaskState("UNKNOWN"); 27 TaskState()28 static TaskState() 29 { 30 TaskStates.Add("IDLE", Idle); 31 TaskStates.Add("SCANNING", Scanning); 32 TaskStates.Add("SCANDONE", ScanDone); 33 TaskStates.Add("WORKING", Working); 34 TaskStates.Add("PAUSED", Paused); 35 TaskStates.Add("SEARCHING", Searching); 36 TaskStates.Add("WORKDONE", WorkDone); 37 TaskStates.Add("MUXING", Muxing); 38 TaskStates.Add("UNKNOWN", Unknown); 39 } 40 TaskState(string code)41 public TaskState(string code) 42 { 43 this.Code = code; 44 } 45 46 public string Code { get; } 47 FromRepositoryValue(string code)48 public static TaskState FromRepositoryValue(string code) 49 { 50 if (TaskStates.TryGetValue(code, out TaskState state)) 51 { 52 return state; 53 } 54 55 return null; 56 } 57 } 58 } 59