/* XMRigCC * Copyright 2018- BenDr0id * * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __POW_VARIANT_H__ #define __POW_VARIANT_H__ #include #include enum PowVariant { POW_AUTODETECT, POW_V0, POW_V1, POW_V2, POW_TUBE, POW_ALLOY, POW_XTL, POW_MSR, POW_XHV, POW_RTO, LAST_ITEM }; inline std::string getPowVariantName(PowVariant powVariant) { switch (powVariant) { case POW_V0: return "0"; case POW_V1: return "1"; case POW_V2: return "2"; case POW_TUBE: return "tube"; case POW_ALLOY: return "xao"; case POW_XTL: return "xtl"; case POW_MSR: return "msr"; case POW_XHV: return "xhv"; case POW_RTO: return "rto"; case POW_AUTODETECT: default: return "-1"; } } inline std::list getSupportedPowVariants() { std::list supportedPowVariants; for (int variant = 0; variant != LAST_ITEM; variant++) { supportedPowVariants.push_back(getPowVariantName(static_cast(variant))); } return supportedPowVariants; } inline PowVariant parseVariant(int variant) { PowVariant powVariant = PowVariant::POW_AUTODETECT; switch (variant) { case -1: powVariant = PowVariant::POW_AUTODETECT; break; case 0: powVariant = PowVariant::POW_V0; break; case 1: powVariant = PowVariant::POW_V1; break; case 2: powVariant = PowVariant::POW_V2; break; default: break; } return powVariant; } inline PowVariant parseVariant(const std::string variant) { PowVariant powVariant = PowVariant::POW_AUTODETECT; if (variant == "0") { powVariant = PowVariant::POW_V0; } else if (variant == "1") { powVariant = PowVariant::POW_V1; } else if (variant == "2") { powVariant = PowVariant::POW_V2; } else if (variant == "ipbc" || variant == "tube" || variant == "bittube") { powVariant = PowVariant::POW_TUBE; } else if (variant == "xao" || variant == "alloy") { powVariant = PowVariant::POW_ALLOY; } else if (variant == "xtl" || variant == "stellite") { powVariant = PowVariant::POW_XTL; } else if (variant == "msr" || variant == "masari") { powVariant = PowVariant::POW_MSR; } else if (variant == "xhv" || variant == "haven") { powVariant = PowVariant::POW_XHV; } else if (variant == "rto" || variant == "arto") { powVariant = PowVariant::POW_RTO; } return powVariant; } #endif /* __POW_VARIANT_H__ */