| #include "include/dvr/dvr_configuration_data.h" | |
| #include <private/dvr/display_client.h> | |
| using android::dvr::display::ConfigFileType; | |
| using android::dvr::display::DisplayClient; | |
| extern "C" { | |
| int dvrConfigurationDataGet(int config_type, uint8_t** data, | |
| size_t* data_size) { | |
| if (!data || !data_size) { | |
| return -EINVAL; | |
| } | |
| auto client = DisplayClient::Create(); | |
| if (!client) { | |
| ALOGE("dvrGetGlobalBuffer: Failed to create display client!"); | |
| return -ECOMM; | |
| } | |
| ConfigFileType config_file_type = static_cast<ConfigFileType>(config_type); | |
| auto config_data_status = | |
| client->GetConfigurationData(config_file_type); | |
| if (!config_data_status) { | |
| return -config_data_status.error(); | |
| } | |
| *data_size = config_data_status.get().size(); | |
| *data = new uint8_t[*data_size]; | |
| std::copy_n(config_data_status.get().begin(), *data_size, *data); | |
| return 0; | |
| } | |
| void dvrConfigurationDataDestroy(uint8_t* data) { | |
| delete[] data; | |
| } | |
| } // extern "C" |