#ifndef DEVICE_VR_ANDROID_CARDBOARD_CARDBOARD_DEVICE_PARAMS_H_
#define DEVICE_VR_ANDROID_CARDBOARD_CARDBOARD_DEVICE_PARAMS_H_
#include <stdint.h>
#include <variant>
#include "base/component_export.h"
#include "device/vr/android/cardboard/scoped_cardboard_objects.h"
namespace device {
using OwnedCardboardParams = internal::ScopedCardboardObject<uint8_t*>;
class COMPONENT_EXPORT(VR_CARDBOARD) CardboardDeviceParams {
public:
static CardboardDeviceParams GetDeviceParams();
static CardboardDeviceParams GetSavedDeviceParams();
static CardboardDeviceParams GetCardboardV1DeviceParams();
static void set_use_cardboard_v1_device_params_for_testing(bool value);
~CardboardDeviceParams();
CardboardDeviceParams(const CardboardDeviceParams&) = delete;
CardboardDeviceParams& operator=(const CardboardDeviceParams&) = delete;
CardboardDeviceParams(CardboardDeviceParams&& other);
CardboardDeviceParams& operator=(CardboardDeviceParams&& other);
bool IsValid();
const uint8_t* encoded_device_params();
int size() { return size_; }
private:
CardboardDeviceParams();
static bool use_cardboard_v1_device_params_for_testing_;
std::variant<uint8_t*, OwnedCardboardParams> encoded_device_params_ = nullptr;
int size_ = 0;
};
}
#endif