Updating ConfigurationDataGet api to include edid data.
Bug: 138398637 Test: manual - ran through modified unit test to make sure the edid data was returned on the MTP 845. Change-Id: I171cf90d005a09a9cb6ee1081efee653cce47c4a
This commit is contained in:
parent
324922b5b1
commit
a08194b008
4 changed files with 26 additions and 1 deletions
|
@ -191,7 +191,8 @@ struct SurfaceInfo {
|
||||||
enum class ConfigFileType : uint32_t {
|
enum class ConfigFileType : uint32_t {
|
||||||
kLensMetrics,
|
kLensMetrics,
|
||||||
kDeviceMetrics,
|
kDeviceMetrics,
|
||||||
kDeviceConfiguration
|
kDeviceConfiguration,
|
||||||
|
kDeviceEdid
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DisplayProtocol {
|
struct DisplayProtocol {
|
||||||
|
|
|
@ -85,6 +85,8 @@ enum {
|
||||||
DVR_CONFIGURATION_DATA_DEVICE_METRICS = 1,
|
DVR_CONFIGURATION_DATA_DEVICE_METRICS = 1,
|
||||||
// Request the per device configuration data file.
|
// Request the per device configuration data file.
|
||||||
DVR_CONFIGURATION_DATA_DEVICE_CONFIG = 2,
|
DVR_CONFIGURATION_DATA_DEVICE_CONFIG = 2,
|
||||||
|
// Request the edid data for the display.
|
||||||
|
DVR_CONFIGURATION_DATA_DEVICE_EDID = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
// dvr_display_manager.h
|
// dvr_display_manager.h
|
||||||
|
|
|
@ -44,6 +44,18 @@ DisplayService::DisplayService(Hwc2::Composer* hidl,
|
||||||
Endpoint::Create(display::DisplayProtocol::kClientPath)) {
|
Endpoint::Create(display::DisplayProtocol::kClientPath)) {
|
||||||
hardware_composer_.Initialize(
|
hardware_composer_.Initialize(
|
||||||
hidl, primary_display_id, request_display_callback);
|
hidl, primary_display_id, request_display_callback);
|
||||||
|
|
||||||
|
uint8_t port;
|
||||||
|
const auto error = hidl->getDisplayIdentificationData(
|
||||||
|
primary_display_id, &port, &display_identification_data_);
|
||||||
|
if (error != android::hardware::graphics::composer::V2_1::Error::NONE) {
|
||||||
|
if (error !=
|
||||||
|
android::hardware::graphics::composer::V2_1::Error::UNSUPPORTED) {
|
||||||
|
ALOGI("DisplayService: identification data error\n");
|
||||||
|
} else {
|
||||||
|
ALOGI("DisplayService: identification data unsupported\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DisplayService::IsInitialized() const {
|
bool DisplayService::IsInitialized() const {
|
||||||
|
@ -204,6 +216,12 @@ pdx::Status<std::string> DisplayService::OnGetConfigurationData(
|
||||||
case display::ConfigFileType::kDeviceConfiguration:
|
case display::ConfigFileType::kDeviceConfiguration:
|
||||||
property_name = kDvrDeviceConfigProperty;
|
property_name = kDvrDeviceConfigProperty;
|
||||||
break;
|
break;
|
||||||
|
case display::ConfigFileType::kDeviceEdid:
|
||||||
|
if (display_identification_data_.size() == 0) {
|
||||||
|
return ErrorStatus(ENOENT);
|
||||||
|
}
|
||||||
|
return std::string(display_identification_data_.begin(),
|
||||||
|
display_identification_data_.end());
|
||||||
default:
|
default:
|
||||||
return ErrorStatus(EINVAL);
|
return ErrorStatus(EINVAL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
#include "epoll_event_dispatcher.h"
|
#include "epoll_event_dispatcher.h"
|
||||||
#include "hardware_composer.h"
|
#include "hardware_composer.h"
|
||||||
|
|
||||||
|
#include "DisplayHardware/DisplayIdentification.h"
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
namespace dvr {
|
namespace dvr {
|
||||||
|
|
||||||
|
@ -117,6 +119,8 @@ class DisplayService : public pdx::ServiceBase<DisplayService> {
|
||||||
|
|
||||||
DisplayService(const DisplayService&) = delete;
|
DisplayService(const DisplayService&) = delete;
|
||||||
void operator=(const DisplayService&) = delete;
|
void operator=(const DisplayService&) = delete;
|
||||||
|
|
||||||
|
DisplayIdentificationData display_identification_data_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace dvr
|
} // namespace dvr
|
||||||
|
|
Loading…
Reference in a new issue