// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary // source code may only be used and distributed under the Widevine Master // License Agreement. #ifndef CAS_PROPERTIES_H #define CAS_PROPERTIES_H #include namespace wvcas { // Properties methods must be implemented for a platform. The values returned // describe the capabilities and configuration of a device using Widevine CAS. class Properties { private: Properties(); // Not implemented ~Properties(); // NotImplemented public: // Sets the |company_name| field value to be populated in and EMM license // request. Returns false if unable to set the value. static bool GetCompanyName(std::string* company_name); // Sets the |model_name| field value to be populated in and EMM license // request. Returns false if unable to set the value. static bool GetModelName(std::string* model_name); // Sets the |product_name| field value to be populated in and EMM license // request. Returns false if unable to set the value. static bool GetProductName(std::string* product_name); // Sets the |arch_name| field value to be populated in and EMM license // request. Returns false if unable to set the value. static bool GetArchitectureName(std::string* arch_name); // Sets the |device_name| field value to be populated in and EMM license // request. Returns false if unable to set the value. static bool GetDeviceName(std::string* device_name); // Sets the |build_info| field value to be populated in and EMM license // request. Returns false if unable to set the value. static bool GetBuildInfo(std::string* build_info); // Returns a path to CAS oemcrypto library, either default, // or overridden through system property. // Returned path could be either absolute or relative. // Returns false if unable to set the value. static bool GetOEMCryptoPath(std::string* path); // Sets |version| to Widevine CAS plugin version. Returns false if unable to // set the value. static bool GetWvCasPluginVersion(std::string& version); }; } // namespace wvcas #endif // CAS_PROPERTIES_H