Get BrandName from DeviceInfo.brandname Change-Id: Iee79deb5fecdf8b305493e59671b8b9ecff746cc (cherry picked from commit 1b58b2d79ddd1da7a7c3742c6af62546a03929a4)
diff --git a/src/third_party/starboard/rdk/shared/rdkservices.cc b/src/third_party/starboard/rdk/shared/rdkservices.cc index 6355fe5..215ef9f 100644 --- a/src/third_party/starboard/rdk/shared/rdkservices.cc +++ b/src/third_party/starboard/rdk/shared/rdkservices.cc
@@ -1161,6 +1161,8 @@ needs_refresh_.store(true); } + bool GetBrandName(std::string& out); + private: struct DeviceDetailsData : public Core::JSON::Container { DeviceDetailsData() @@ -1252,6 +1254,7 @@ ::starboard::Mutex mutex_; std::vector<SbMediaAudioConfiguration> audio_configurations_; + Core::OptionalType<std::string> brand_name_; static constexpr SbMediaAudioConnector kAudioConnectorUnknown = static_cast<SbMediaAudioConnector>(0); }; @@ -1432,6 +1435,33 @@ return false; } +bool DeviceInfoImpl::GetBrandName(std::string& out) { + if (!brand_name_.IsSet()) { + struct BrandNameInfo : public Core::JSON::Container { + BrandNameInfo() : Core::JSON::Container() { + Add(_T("brand"), &BrandName); + } + Core::JSON::String BrandName; + } info; + uint32_t rc = device_info_.Get(kDefaultTimeoutMs, "brandname", info); + if (Core::ERROR_NONE != rc) { + SB_LOG(ERROR) << "Failed to get '" << kDeviceInfoCallsign + << ".brandname', rc=" << rc + << " ( " << Core::ErrorToString(rc) << " )."; + if (rc == Core::ERROR_ASYNC_FAILED || rc == Core::ERROR_TIMEDOUT) { + brand_name_.Clear(); + } else { + brand_name_ = ""; + } + } else { + brand_name_ = info.BrandName.Value(); + SB_LOG(INFO) << "Device brandname: " << brand_name_.Value(); + } + } + out = brand_name_.Value(); + return !out.empty(); +} + } // namespace ResolutionInfo DisplayInfo::GetResolution() { @@ -1562,6 +1592,10 @@ return GetDeviceInfo()->GetAudioConfiguration(index, out_audio_configuration); } +bool DeviceInfo::GetBrandName(std::string& out) { + return GetDeviceInfo()->GetBrandName(out); +} + void TeardownJSONRPCLink() { GetDisplayInfo()->Teardown(); GetTextToSpeech()->Teardown();
diff --git a/src/third_party/starboard/rdk/shared/rdkservices.h b/src/third_party/starboard/rdk/shared/rdkservices.h index e317ebe..b7bccc8 100644 --- a/src/third_party/starboard/rdk/shared/rdkservices.h +++ b/src/third_party/starboard/rdk/shared/rdkservices.h
@@ -115,6 +115,7 @@ class DeviceInfo { public: static bool GetAudioConfiguration(int index, SbMediaAudioConfiguration* out_audio_configuration); + static bool GetBrandName(std::string& out); }; void TeardownJSONRPCLink();
diff --git a/src/third_party/starboard/rdk/shared/system/system_get_property.cc b/src/third_party/starboard/rdk/shared/system/system_get_property.cc index 6207ec2..c46abe5 100644 --- a/src/third_party/starboard/rdk/shared/system/system_get_property.cc +++ b/src/third_party/starboard/rdk/shared/system/system_get_property.cc
@@ -139,7 +139,7 @@ bool GetOperatorName(char* out_value, int value_length) { std::string prop; - if (SystemProperties::GetBrandName(prop)) { + if (SystemProperties::GetBrandName(prop) || DeviceInfo::GetBrandName(prop)) { return CopyStringAndTestIfSuccess( out_value, value_length, prop.c_str()); }