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