// // Copyright 2021 Google LLC. All Rights Reserved. This file and proprietary // source code may only be used and distributed under the Widevine License // Agreement. // #ifndef WV_TYPES_H_ #define WV_TYPES_H_ #include #include "wv_cdm_types.h" namespace wvdrm { using AidlDrmStatus = ::aidl::android::hardware::drm::Status; #define WVDRM_DISALLOW_COPY_AND_ASSIGN(TypeName) \ TypeName(const TypeName&) = delete; \ void operator=(const TypeName&) = delete; #define WVDRM_DISALLOW_COPY_AND_ASSIGN_AND_NEW(TypeName) \ TypeName() = delete; \ TypeName(const TypeName&) = delete; \ void operator=(const TypeName&) = delete; struct WvStatus { public: explicit WvStatus(AidlDrmStatus status) : mStatus(status) {} WvStatus() : mStatus(AidlDrmStatus::OK) {} WvStatus(AidlDrmStatus status, wvcdm::CdmResponseType cdmErr) : mStatus(status), mCdmErr(cdmErr) {} explicit operator AidlDrmStatus() const { return mStatus; } explicit operator int32_t() const { return static_cast(mStatus); } AidlDrmStatus get() const { return mStatus; } bool operator==(const AidlDrmStatus other) const { return mStatus == other; } bool operator!=(const AidlDrmStatus other) const { return mStatus != other; } WvStatus &setCdmErr(wvcdm::CdmResponseType cdmErr) { mCdmErr = cdmErr; return *this; } const wvcdm::CdmResponseType& getCdmErr() const { return mCdmErr; } private: AidlDrmStatus mStatus{}; wvcdm::CdmResponseType mCdmErr{}; }; } // namespace wvdrm #endif // WV_TYPES_H_