1 #pragma once
2 #include <nlohmann/json.hpp>
3 
4 namespace virtual_media
5 {
6 // clang-format off
7 
8 enum class MediaType{
9     Invalid,
10     CD,
11     Floppy,
12     USBStick,
13     DVD,
14 };
15 
16 enum class ConnectedVia{
17     Invalid,
18     NotConnected,
19     URI,
20     Applet,
21     Oem,
22 };
23 
24 enum class TransferProtocolType{
25     Invalid,
26     CIFS,
27     FTP,
28     SFTP,
29     HTTP,
30     HTTPS,
31     NFS,
32     SCP,
33     TFTP,
34     OEM,
35 };
36 
37 enum class TransferMethod{
38     Invalid,
39     Stream,
40     Upload,
41 };
42 
43 NLOHMANN_JSON_SERIALIZE_ENUM(MediaType, {
44     {MediaType::Invalid, "Invalid"},
45     {MediaType::CD, "CD"},
46     {MediaType::Floppy, "Floppy"},
47     {MediaType::USBStick, "USBStick"},
48     {MediaType::DVD, "DVD"},
49 });
50 
51 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectedVia, {
52     {ConnectedVia::Invalid, "Invalid"},
53     {ConnectedVia::NotConnected, "NotConnected"},
54     {ConnectedVia::URI, "URI"},
55     {ConnectedVia::Applet, "Applet"},
56     {ConnectedVia::Oem, "Oem"},
57 });
58 
59 NLOHMANN_JSON_SERIALIZE_ENUM(TransferProtocolType, {
60     {TransferProtocolType::Invalid, "Invalid"},
61     {TransferProtocolType::CIFS, "CIFS"},
62     {TransferProtocolType::FTP, "FTP"},
63     {TransferProtocolType::SFTP, "SFTP"},
64     {TransferProtocolType::HTTP, "HTTP"},
65     {TransferProtocolType::HTTPS, "HTTPS"},
66     {TransferProtocolType::NFS, "NFS"},
67     {TransferProtocolType::SCP, "SCP"},
68     {TransferProtocolType::TFTP, "TFTP"},
69     {TransferProtocolType::OEM, "OEM"},
70 });
71 
72 NLOHMANN_JSON_SERIALIZE_ENUM(TransferMethod, {
73     {TransferMethod::Invalid, "Invalid"},
74     {TransferMethod::Stream, "Stream"},
75     {TransferMethod::Upload, "Upload"},
76 });
77 
78 }
79 // clang-format on
80