enums.cpp 2.84 KB
Newer Older
Matteo's avatar
Matteo committed
1
#include "enums.hpp"
Matteo's avatar
Matteo committed
2

Matteo's avatar
Matteo committed
3
std::string sourceToString(Source source) {
Matteo's avatar
update  
Matteo committed
4
    switch (source) {
Matteo's avatar
Matteo committed
5
        case Source::Audio:
Matteo's avatar
update  
Matteo committed
6
            return "a";
Matteo's avatar
Matteo committed
7
        case Source::Video:
Matteo's avatar
update  
Matteo committed
8
            return "v";
Matteo's avatar
Matteo committed
9
        case Source::Both:
Matteo's avatar
update  
Matteo committed
10
11
12
13
14
15
            return "b";
        default:
            throw std::invalid_argument("Invalid Source");
    }
}

Matteo's avatar
Matteo committed
16
Source sourceFromString(std::string source) {
Matteo's avatar
update  
Matteo committed
17
    if (source == "a")
Matteo's avatar
Matteo committed
18
        return Source::Audio;
Matteo's avatar
update  
Matteo committed
19
    else if (source == "v")
Matteo's avatar
Matteo committed
20
        return Source::Video;
Matteo's avatar
update  
Matteo committed
21
    else if (source == "b")
Matteo's avatar
Matteo committed
22
        return Source::Both;
Matteo's avatar
update  
Matteo committed
23
24
25
26
    else
        throw std::invalid_argument("Invalid Source");
}

Matteo's avatar
Matteo committed
27
std::string irregularityTypeToString(IrregularityType type) {
Matteo's avatar
update  
Matteo committed
28
    switch (type) {
Matteo's avatar
Matteo committed
29
        case IrregularityType::BRANDS_ON_TAPE:
Matteo's avatar
update  
Matteo committed
30
            return "b";
Matteo's avatar
Matteo committed
31
        case IrregularityType::SPLICE:
Matteo's avatar
update  
Matteo committed
32
            return "sp";
Matteo's avatar
Matteo committed
33
        case IrregularityType::START_OF_TAPE:
Matteo's avatar
update  
Matteo committed
34
            return "sot";
Matteo's avatar
Matteo committed
35
        case IrregularityType::ENDS_OF_TAPE:
Matteo's avatar
update  
Matteo committed
36
            return "eot";
Matteo's avatar
Matteo committed
37
        case IrregularityType::DAMAGED_TAPE:
Matteo's avatar
update  
Matteo committed
38
            return "da";
Matteo's avatar
Matteo committed
39
        case IrregularityType::DIRT:
Matteo's avatar
update  
Matteo committed
40
            return "di";
Matteo's avatar
Matteo committed
41
        case IrregularityType::MARKS:
Matteo's avatar
update  
Matteo committed
42
            return "m";
Matteo's avatar
Matteo committed
43
        case IrregularityType::SHADOWS:
Matteo's avatar
update  
Matteo committed
44
            return "s";
Matteo's avatar
Matteo committed
45
        case IrregularityType::WOW_AND_FLUTTER:
Matteo's avatar
update  
Matteo committed
46
            return "wf";
Matteo's avatar
Matteo committed
47
        case IrregularityType::PLAY_PAUSE_STOP:
Matteo's avatar
update  
Matteo committed
48
            return "pps";
Matteo's avatar
Matteo committed
49
        case IrregularityType::SPEED:
Matteo's avatar
update  
Matteo committed
50
            return "ssv";
Matteo's avatar
Matteo committed
51
        case IrregularityType::EQUALIZATION:
Matteo's avatar
update  
Matteo committed
52
            return "esv";
Matteo's avatar
Matteo committed
53
        case IrregularityType::SPEED_AND_EQUALIZATION:
Matteo's avatar
update  
Matteo committed
54
            return "ssv";
Matteo's avatar
Matteo committed
55
        case IrregularityType::BACKWARD:
Matteo's avatar
update  
Matteo committed
56
57
58
59
60
61
            return "sb";
        default:
            throw std::invalid_argument("Invalid IrregularityType");
    }
}

Matteo's avatar
Matteo committed
62
IrregularityType irregularityTypeFromString(std::string type) {
Matteo's avatar
update  
Matteo committed
63
    if (type == "b")
Matteo's avatar
Matteo committed
64
        return IrregularityType::BRANDS_ON_TAPE;
Matteo's avatar
update  
Matteo committed
65
    else if (type == "sp")
Matteo's avatar
Matteo committed
66
        return IrregularityType::SPLICE;
Matteo's avatar
update  
Matteo committed
67
    else if (type == "sot")
Matteo's avatar
Matteo committed
68
        return IrregularityType::START_OF_TAPE;
Matteo's avatar
update  
Matteo committed
69
    else if (type == "eot")
Matteo's avatar
Matteo committed
70
        return IrregularityType::ENDS_OF_TAPE;
Matteo's avatar
update  
Matteo committed
71
    else if (type == "da")
Matteo's avatar
Matteo committed
72
        return IrregularityType::DAMAGED_TAPE;
Matteo's avatar
update  
Matteo committed
73
    else if (type == "di")
Matteo's avatar
Matteo committed
74
        return IrregularityType::DIRT;
Matteo's avatar
update  
Matteo committed
75
    else if (type == "m")
Matteo's avatar
Matteo committed
76
        return IrregularityType::MARKS;
Matteo's avatar
update  
Matteo committed
77
    else if (type == "s")
Matteo's avatar
Matteo committed
78
        return IrregularityType::SHADOWS;
Matteo's avatar
update  
Matteo committed
79
    else if (type == "wf")
Matteo's avatar
Matteo committed
80
        return IrregularityType::WOW_AND_FLUTTER;
Matteo's avatar
update  
Matteo committed
81
    else if (type == "pps")
Matteo's avatar
Matteo committed
82
        return IrregularityType::PLAY_PAUSE_STOP;
Matteo's avatar
update  
Matteo committed
83
    else if (type == "ssv")
Matteo's avatar
Matteo committed
84
        return IrregularityType::SPEED;
Matteo's avatar
update  
Matteo committed
85
    else if (type == "esv")
Matteo's avatar
Matteo committed
86
        return IrregularityType::EQUALIZATION;
Matteo's avatar
update  
Matteo committed
87
    else if (type == "ssv")
Matteo's avatar
Matteo committed
88
        return IrregularityType::SPEED_AND_EQUALIZATION;
Matteo's avatar
update  
Matteo committed
89
    else if (type == "sb")
Matteo's avatar
Matteo committed
90
        return IrregularityType::BACKWARD;
Matteo's avatar
update  
Matteo committed
91
92
93
    else
        throw std::invalid_argument("Invalid IrregularityType");
}