1bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar#include "include/dvr/dvr_configuration_data.h" 2bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 3bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar#include <private/dvr/display_client.h> 4bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 5bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaarusing android::dvr::display::ConfigFileType; 6bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaarusing android::dvr::display::DisplayClient; 7bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 8bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaarextern "C" { 9bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 10bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaarint dvrConfigurationDataGet(int config_type, uint8_t** data, 11bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar size_t* data_size) { 12bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar if (!data || !data_size) { 13bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar return -EINVAL; 14bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar } 15bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 16bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar auto client = DisplayClient::Create(); 17bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar if (!client) { 18bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar ALOGE("dvrGetGlobalBuffer: Failed to create display client!"); 19bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar return -ECOMM; 20bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar } 21bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 22bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar ConfigFileType config_file_type = static_cast<ConfigFileType>(config_type); 23bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar auto config_data_status = 24bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar client->GetConfigurationData(config_file_type); 25bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 26bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar if (!config_data_status) { 27bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar return -config_data_status.error(); 28bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar } 29bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 30bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar *data_size = config_data_status.get().size(); 31bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar *data = new uint8_t[*data_size]; 32bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar std::copy_n(config_data_status.get().begin(), *data_size, *data); 33bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar return 0; 34bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar} 35bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 36bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaarvoid dvrConfigurationDataDestroy(uint8_t* data) { 37bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar delete[] data; 38bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar} 39bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar 40bcb03d005a4ccca20a0723f087e90e8b503b4848Hendrik Wagenaar} // extern "C" 41