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