41 lines
995 B
C++
41 lines
995 B
C++
#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"
|