summaryrefslogtreecommitdiff
path: root/guest/hals/camera/fake-pipeline2/Scene.h
diff options
context:
space:
mode:
Diffstat (limited to 'guest/hals/camera/fake-pipeline2/Scene.h')
-rw-r--r--guest/hals/camera/fake-pipeline2/Scene.h178
1 files changed, 0 insertions, 178 deletions
diff --git a/guest/hals/camera/fake-pipeline2/Scene.h b/guest/hals/camera/fake-pipeline2/Scene.h
deleted file mode 100644
index 5e86861e..00000000
--- a/guest/hals/camera/fake-pipeline2/Scene.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * The Scene class implements a simple physical simulation of a scene, using the
- * CIE 1931 colorspace to represent light in physical units (lux).
- *
- * It's fairly approximate, but does provide a scene with realistic widely
- * variable illumination levels and colors over time.
- *
- */
-
-#ifndef HW_EMULATOR_CAMERA2_SCENE_H
-#define HW_EMULATOR_CAMERA2_SCENE_H
-
-#include "utils/Timers.h"
-
-namespace android {
-
-class Scene {
- public:
- Scene(int sensorWidthPx, int sensorHeightPx, float sensorSensitivity);
- ~Scene();
-
- // Set the filter coefficients for the red, green, and blue filters on the
- // sensor. Used as an optimization to pre-calculate various illuminance
- // values. Two different green filters can be provided, to account for
- // possible cross-talk on a Bayer sensor. Must be called before
- // calculateScene.
- void setColorFilterXYZ(float rX, float rY, float rZ, float grX, float grY,
- float grZ, float gbX, float gbY, float gbZ, float bX,
- float bY, float bZ);
-
- // Set time of day (24-hour clock). This controls the general light levels
- // in the scene. Must be called before calculateScene
- void setHour(int hour);
- // Get current hour
- int getHour();
-
- // Set the duration of exposure for determining luminous exposure.
- // Must be called before calculateScene
- void setExposureDuration(float seconds);
-
- // Calculate scene information for current hour and the time offset since
- // the hour. Must be called at least once before calling getLuminousExposure.
- // Resets pixel readout location to 0,0
- void calculateScene(nsecs_t time);
-
- // Set sensor pixel readout location.
- void setReadoutPixel(int x, int y);
-
- // Get sensor response in physical units (electrons) for light hitting the
- // current readout pixel, after passing through color filters. The readout
- // pixel will be auto-incremented. The returned array can be indexed with
- // ColorChannels.
- const uint32_t* getPixelElectrons();
-
- enum ColorChannels { R = 0, Gr, Gb, B, Y, Cb, Cr, NUM_CHANNELS };
-
- private:
- // Sensor color filtering coefficients in XYZ
- float mFilterR[3];
- float mFilterGr[3];
- float mFilterGb[3];
- float mFilterB[3];
-
- int mOffsetX, mOffsetY;
- int mMapDiv;
-
- int mHandshakeX, mHandshakeY;
-
- int mSensorWidth;
- int mSensorHeight;
- int mCurrentX;
- int mCurrentY;
- int mSubX;
- int mSubY;
- int mSceneX;
- int mSceneY;
- int mSceneIdx;
- uint32_t* mCurrentSceneMaterial;
-
- int mHour;
- float mExposureDuration;
- float mSensorSensitivity;
-
- enum Materials {
- GRASS = 0,
- GRASS_SHADOW,
- HILL,
- WALL,
- ROOF,
- DOOR,
- CHIMNEY,
- WINDOW,
- SUN,
- SKY,
- MOON,
- NUM_MATERIALS
- };
-
- uint32_t mCurrentColors[NUM_MATERIALS * NUM_CHANNELS];
-
- /**
- * Constants for scene definition. These are various degrees of approximate.
- */
-
- // Fake handshake parameters. Two shake frequencies per axis, plus magnitude
- // as a fraction of a scene tile, and relative magnitudes for the frequencies
- static const float kHorizShakeFreq1;
- static const float kHorizShakeFreq2;
- static const float kVertShakeFreq1;
- static const float kVertShakeFreq2;
- static const float kFreq1Magnitude;
- static const float kFreq2Magnitude;
-
- static const float kShakeFraction;
-
- // RGB->YUV conversion
- static const float kRgb2Yuv[12];
-
- // Aperture of imaging lens
- static const float kAperture;
-
- // Sun, moon illuminance levels in 2-hour increments. These don't match any
- // real day anywhere.
- static const uint32_t kTimeStep = 2;
- static const float kSunlight[];
- static const float kMoonlight[];
- static const int kSunOverhead;
- static const int kMoonOverhead;
-
- // Illumination levels for various conditions, in lux
- static const float kDirectSunIllum;
- static const float kDaylightShadeIllum;
- static const float kSunsetIllum;
- static const float kTwilightIllum;
- static const float kFullMoonIllum;
- static const float kClearNightIllum;
- static const float kStarIllum;
- static const float kLivingRoomIllum;
-
- // Chromaticity of various illumination sources
- static const float kIncandescentXY[2];
- static const float kDirectSunlightXY[2];
- static const float kDaylightXY[2];
- static const float kNoonSkyXY[2];
- static const float kMoonlightXY[2];
- static const float kSunsetXY[2];
-
- static const uint8_t kSelfLit;
- static const uint8_t kShadowed;
- static const uint8_t kSky;
-
- static const float kMaterials_xyY[NUM_MATERIALS][3];
- static const uint8_t kMaterialsFlags[NUM_MATERIALS];
-
- static const int kSceneWidth;
- static const int kSceneHeight;
- static const uint8_t kScene[];
-};
-
-} // namespace android
-
-#endif // HW_EMULATOR_CAMERA2_SCENE_H