package org.deviceconnect.android.deviceplugin.theta.core;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.util.AttributeSet;
public class SphericalImageView extends GLSurfaceView {
protected final SphericalViewRenderer mRenderer = new SphericalViewRenderer();;
protected SphericalViewApi mViewApi;
protected final SphericalViewParam mParam = new SphericalViewParam();
public SphericalImageView(final Context context, final AttributeSet attrs) {
super(context, attrs);
setEGLContextClientVersion(2);
mRenderer.setFlipVertical(true);
setRenderer(mRenderer);
mParam.setVRMode(true);
}
public void setViewApi(final SphericalViewApi viewApi) {
mViewApi = viewApi;
}
public void start(final byte[] picture) {
if (mViewApi != null && !mViewApi.isRunning()) {
mViewApi.startImageView(picture, mParam, mRenderer);
}
}
public void stop() {
if (mViewApi != null && (mViewApi.isRunning() || mViewApi.isPaused())) {
mViewApi.stop();
}
}
public void setStereo(final boolean isStereo) {
if (mViewApi != null) {
mParam.setStereo(isStereo);
mViewApi.updateImageView(mParam);
}
}
public void setFOV(final double fov) {
if (mViewApi != null) {
mParam.setFOV(fov);
mViewApi.updateImageView(mParam);
}
}
public byte[] takeSnapshot() {
if (mRenderer == null) {
return null;
}
return mRenderer.takeSnapshot();
}
public void resetCameraDirection() {
if (mViewApi != null) {
mViewApi.resetCameraDirection();
}
}
@Override
public void onPause() {
if (mViewApi != null) {
mViewApi.pause();
}
super.onPause();
}
@Override
public void onResume() {
super.onResume();
if (mViewApi != null) {
mViewApi.resume();
}
}
}