]> git.r.bdr.sh - rbdr/captura/blob - Captura/Data/OutputFormatSetting.swift
2131caa80659db9d0e019b9b1041eafad2a3f830
[rbdr/captura] / Captura / Data / OutputFormatSetting.swift
1 /*
2 Copyright (C) 2024 Rubén Beltrán del Río
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see https://captura.tranquil.systems.
16 */
17 import Foundation
18
19 enum OutputFormatSetting: Int {
20 case gifOnly = 0
21 case mp4Only = 1
22 case all = 2
23
24 init?(_ string: String) {
25 switch string {
26 case "gif":
27 self = .gifOnly
28 case "mp4":
29 self = .mp4Only
30 case "all":
31 self = .all
32 default:
33 return nil
34 }
35 }
36
37 func shouldSaveGif() -> Bool {
38 return self == .gifOnly || self == .all
39 }
40
41 func shouldSaveMp4() -> Bool {
42 return self == .mp4Only || self == .all
43 }
44
45 func toString() -> String {
46 switch self {
47 case .gifOnly:
48 return "gif"
49 case .mp4Only:
50 return "mp4"
51 case .all:
52 return "all"
53 }
54 }
55 }