summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/camera/Android.mk12
-rw-r--r--libs/camera/CameraParameters.cpp64
-rw-r--r--libs/surfaceflinger/Android.mk8
-rw-r--r--libs/surfaceflinger/Layer.cpp12
-rw-r--r--libs/surfaceflinger/LayerBase.cpp42
-rw-r--r--libs/surfaceflinger/SurfaceFlinger.cpp15
-rw-r--r--libs/surfaceflinger/SurfaceFlinger.h5
-rw-r--r--libs/surfaceflinger_client/Android.mk11
-rw-r--r--libs/ui/Android.mk21
-rw-r--r--libs/ui/EventHub.cpp5
-rw-r--r--libs/ui/Overlay.cpp7
-rw-r--r--libs/utils/ResourceTypes.cpp2
12 files changed, 189 insertions, 15 deletions
diff --git a/libs/camera/Android.mk b/libs/camera/Android.mk
index 03ff229..3691bde 100644
--- a/libs/camera/Android.mk
+++ b/libs/camera/Android.mk
@@ -8,6 +8,10 @@ LOCAL_SRC_FILES:= \
ICameraClient.cpp \
ICameraService.cpp
+LOCAL_MODULE:= libcamera_client
+
+ifneq ($(BOARD_USES_ECLAIR_LIBCAMERA),true)
+
LOCAL_SHARED_LIBRARIES := \
libcutils \
libutils \
@@ -16,10 +20,14 @@ LOCAL_SHARED_LIBRARIES := \
libsurfaceflinger_client \
libui
-LOCAL_MODULE:= libcamera_client
-
ifeq ($(TARGET_SIMULATOR),true)
LOCAL_LDLIBS += -lpthread
endif
include $(BUILD_SHARED_LIBRARY)
+
+else
+
+include $(BUILD_STATIC_LIBRARY)
+
+endif
diff --git a/libs/camera/CameraParameters.cpp b/libs/camera/CameraParameters.cpp
index 65fd7ac..2458213 100644
--- a/libs/camera/CameraParameters.cpp
+++ b/libs/camera/CameraParameters.cpp
@@ -130,6 +130,8 @@ const char CameraParameters::PIXEL_FORMAT_YUV420SP[] = "yuv420sp";
const char CameraParameters::PIXEL_FORMAT_YUV422I[] = "yuv422i-yuyv";
const char CameraParameters::PIXEL_FORMAT_RGB565[] = "rgb565";
const char CameraParameters::PIXEL_FORMAT_JPEG[] = "jpeg";
+const char CameraParameters::PIXEL_FORMAT_RAW[] = "raw";
+
// Values for focus mode settings.
const char CameraParameters::FOCUS_MODE_AUTO[] = "auto";
@@ -137,6 +139,51 @@ const char CameraParameters::FOCUS_MODE_INFINITY[] = "infinity";
const char CameraParameters::FOCUS_MODE_MACRO[] = "macro";
const char CameraParameters::FOCUS_MODE_FIXED[] = "fixed";
const char CameraParameters::FOCUS_MODE_EDOF[] = "edof";
+const char CameraParameters::FOCUS_MODE_NORMAL[] = "normal";
+
+
+const char CameraParameters::KEY_SUPPORTED_THUMBNAIL_SIZES[] = "jpeg-thumbnail-size-values";
+const char CameraParameters::KEY_GPS_LATITUDE_REF[] = "gps-latitude-ref";
+const char CameraParameters::KEY_GPS_LONGITUDE_REF[] = "gps-longitude-ref";
+const char CameraParameters::KEY_GPS_ALTITUDE_REF[] = "gps-altitude-ref";
+const char CameraParameters::KEY_GPS_STATUS[] = "gps-status";
+const char CameraParameters::KEY_EXIF_DATETIME[] = "exif-datetime";
+
+const char CameraParameters::KEY_AUTO_EXPOSURE[] = "auto-exposure";
+const char CameraParameters::KEY_SUPPORTED_AUTO_EXPOSURE[] = "auto-exposure-values";
+
+const char CameraParameters::KEY_ISO_MODE[] = "iso";
+const char CameraParameters::KEY_SUPPORTED_ISO_MODES[] = "iso-values";
+const char CameraParameters::KEY_LENSSHADE[] = "lensshade";
+const char CameraParameters::KEY_SUPPORTED_LENSSHADE_MODES[] = "lensshade-values";
+const char CameraParameters::KEY_SHARPNESS[] = "sharpness";
+const char CameraParameters::KEY_MAX_SHARPNESS[] = "max-sharpness";
+const char CameraParameters::KEY_CONTRAST[] = "contrast";
+const char CameraParameters::KEY_MAX_CONTRAST[] = "max-contrast";
+const char CameraParameters::KEY_SATURATION[] = "saturation";
+const char CameraParameters::KEY_MAX_SATURATION[] = "max-saturation";
+
+
+// Values for auto exposure settings.
+const char CameraParameters::AUTO_EXPOSURE_FRAME_AVG[] = "frame-average";
+const char CameraParameters::AUTO_EXPOSURE_CENTER_WEIGHTED[] = "center-weighted";
+const char CameraParameters::AUTO_EXPOSURE_SPOT_METERING[] = "spot-metering";
+
+ // Values for ISO Settings
+const char CameraParameters::ISO_AUTO[] = "auto";
+const char CameraParameters::ISO_HJR[] = "ISO_HJR";
+const char CameraParameters::ISO_100[] = "ISO100";
+const char CameraParameters::ISO_200[] = "ISO200";
+const char CameraParameters::ISO_400[] = "ISO400";
+const char CameraParameters::ISO_800[] = "ISO800";
+const char CameraParameters::ISO_1600[] = "ISO1600";
+
+ //Values for Lens Shading
+const char CameraParameters::LENSSHADE_ENABLE[] = "enable";
+const char CameraParameters::LENSSHADE_DISABLE[] = "disable";
+
+static const char* portrait = "portrait";
+static const char* landscape = "landscape";
CameraParameters::CameraParameters()
: mMap()
@@ -315,6 +362,23 @@ void CameraParameters::setPreviewFormat(const char *format)
set(KEY_PREVIEW_FORMAT, format);
}
+int CameraParameters::getOrientation() const
+{
+ const char* orientation = get("orientation");
+ if (orientation && !strcmp(orientation, portrait))
+ return CAMERA_ORIENTATION_PORTRAIT;
+ return CAMERA_ORIENTATION_LANDSCAPE;
+}
+
+void CameraParameters::setOrientation(int orientation)
+{
+ if (orientation == CAMERA_ORIENTATION_PORTRAIT) {
+ set("orientation", portrait);
+ } else {
+ set("orientation", landscape);
+ }
+}
+
const char *CameraParameters::getPreviewFormat() const
{
return get(KEY_PREVIEW_FORMAT);
diff --git a/libs/surfaceflinger/Android.mk b/libs/surfaceflinger/Android.mk
index 86eb78d..bf74089 100644
--- a/libs/surfaceflinger/Android.mk
+++ b/libs/surfaceflinger/Android.mk
@@ -38,8 +38,12 @@ LOCAL_SHARED_LIBRARIES := \
libEGL \
libGLESv1_CM \
libbinder \
- libui \
- libsurfaceflinger_client
+ libui
+
+ifneq ($(BOARD_USES_ECLAIR_LIBCAMERA),true)
+ LOCAL_SHARED_LIBRARIES += \
+ libsurfaceflinger_client
+endif
LOCAL_C_INCLUDES := \
$(call include-path-for, corecg graphics)
diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp
index ce7e9aa..2c7b4af 100644
--- a/libs/surfaceflinger/Layer.cpp
+++ b/libs/surfaceflinger/Layer.cpp
@@ -133,10 +133,14 @@ status_t Layer::setBuffers( uint32_t w, uint32_t h,
mNeedsBlending = (info.h_alpha - info.l_alpha) > 0;
mNoEGLImageForSwBuffers = !(hwFlags & DisplayHardware::CACHED_BUFFERS);
- // we use the red index
- int displayRedSize = displayInfo.getSize(PixelFormatInfo::INDEX_RED);
- int layerRedsize = info.getSize(PixelFormatInfo::INDEX_RED);
- mNeedsDithering = layerRedsize > displayRedSize;
+ if (mFlinger->getUseDithering()) {
+ // we use the red index
+ int displayRedSize = displayInfo.getSize(PixelFormatInfo::INDEX_RED);
+ int layerRedsize = info.getSize(PixelFormatInfo::INDEX_RED);
+ mNeedsDithering = layerRedsize > displayRedSize;
+ } else {
+ mNeedsDithering = false;
+ }
for (size_t i=0 ; i<NUM_BUFFERS ; i++) {
mBuffers[i] = new GraphicBuffer();
diff --git a/libs/surfaceflinger/LayerBase.cpp b/libs/surfaceflinger/LayerBase.cpp
index a8b735e..f78d140 100644
--- a/libs/surfaceflinger/LayerBase.cpp
+++ b/libs/surfaceflinger/LayerBase.cpp
@@ -33,6 +33,12 @@
#include "SurfaceFlinger.h"
#include "DisplayHardware/DisplayHardware.h"
+#define RENDER_EFFECT_NIGHT 1
+#define RENDER_EFFECT_TERMINAL 2
+#define RENDER_EFFECT_BLUE 3
+#define RENDER_EFFECT_AMBER 4
+#define RENDER_EFFECT_SALMON 5
+#define RENDER_EFFECT_FUSCIA 6
namespace android {
@@ -401,7 +407,10 @@ void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const
glEnable(GL_TEXTURE_2D);
- if (UNLIKELY(s.alpha < 0xFF)) {
+ int renderEffect = mFlinger->getRenderEffect();
+ bool noEffect = renderEffect == 0;
+
+ if (UNLIKELY(s.alpha < 0xFF) && noEffect) {
// We have an alpha-modulation. We need to modulate all
// texture components by alpha because we're always using
// premultiplied alpha.
@@ -423,7 +432,7 @@ void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const
glEnable(GL_BLEND);
glBlendFunc(src, GL_ONE_MINUS_SRC_ALPHA);
glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, env);
- } else {
+ } else if (noEffect) {
glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
if (needsBlending()) {
@@ -433,6 +442,35 @@ void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const
} else {
glDisable(GL_BLEND);
}
+ } else {
+ // Apply a render effect, which is simple color masks for now.
+ GLenum env, src;
+ env = GL_MODULATE;
+ src = mPremultipliedAlpha ? GL_ONE : GL_SRC_ALPHA;
+ const GGLfixed alpha = (s.alpha << 16)/255;
+ switch (renderEffect) {
+ case RENDER_EFFECT_NIGHT:
+ glColor4x(alpha, 0, 0, alpha);
+ break;
+ case RENDER_EFFECT_TERMINAL:
+ glColor4x(0, alpha, 0, alpha);
+ break;
+ case RENDER_EFFECT_BLUE:
+ glColor4x(0, 0, alpha, alpha);
+ break;
+ case RENDER_EFFECT_AMBER:
+ glColor4x(alpha, alpha*0.75, 0, alpha);
+ break;
+ case RENDER_EFFECT_SALMON:
+ glColor4x(alpha, alpha*0.5, alpha*0.5, alpha);
+ break;
+ case RENDER_EFFECT_FUSCIA:
+ glColor4x(alpha, 0, alpha*0.5, alpha);
+ break;
+ }
+ glEnable(GL_BLEND);
+ glBlendFunc(src, GL_ONE_MINUS_SRC_ALPHA);
+ glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, env);
}
Region::const_iterator it = clip.begin();
diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/SurfaceFlinger.cpp
index 0722fda..b868cd1 100644
--- a/libs/surfaceflinger/SurfaceFlinger.cpp
+++ b/libs/surfaceflinger/SurfaceFlinger.cpp
@@ -184,13 +184,15 @@ SurfaceFlinger::SurfaceFlinger()
mFreezeDisplayTime(0),
mDebugRegion(0),
mDebugBackground(0),
+ mRenderEffect(0),
mDebugInSwapBuffers(0),
mLastSwapBufferTime(0),
mDebugInTransaction(0),
mLastTransactionTime(0),
mBootFinished(false),
mConsoleSignals(0),
- mSecureFrameBuffer(0)
+ mSecureFrameBuffer(0),
+ mUseDithering(true)
{
init();
}
@@ -205,9 +207,14 @@ void SurfaceFlinger::init()
mDebugRegion = atoi(value);
property_get("debug.sf.showbackground", value, "0");
mDebugBackground = atoi(value);
+ property_get("debug.sf.render_effect", value, "0");
+ mRenderEffect = atoi(value);
+ property_get("persist.sys.use_dithering", value, "1");
+ mUseDithering = atoi(value) == 1;
LOGI_IF(mDebugRegion, "showupdates enabled");
LOGI_IF(mDebugBackground, "showbackground enabled");
+ LOGI_IF(mUseDithering, "dithering enabled");
}
SurfaceFlinger::~SurfaceFlinger()
@@ -1692,12 +1699,18 @@ status_t SurfaceFlinger::onTransact(
reply->writeInt32(0);
reply->writeInt32(mDebugRegion);
reply->writeInt32(mDebugBackground);
+ reply->writeInt32(mRenderEffect);
return NO_ERROR;
case 1013: {
Mutex::Autolock _l(mStateLock);
const DisplayHardware& hw(graphicPlane(0).displayHardware());
reply->writeInt32(hw.getPageFlipCount());
}
+ case 1014: { // RENDER_EFFECT
+ // TODO: filter to only allow valid effects
+ mRenderEffect = data.readInt32();
+ return NO_ERROR;
+ }
return NO_ERROR;
}
}
diff --git a/libs/surfaceflinger/SurfaceFlinger.h b/libs/surfaceflinger/SurfaceFlinger.h
index d75dc15..812fd43 100644
--- a/libs/surfaceflinger/SurfaceFlinger.h
+++ b/libs/surfaceflinger/SurfaceFlinger.h
@@ -174,6 +174,9 @@ public:
overlay_control_device_t* getOverlayEngine() const;
+ inline int getRenderEffect() const { return mRenderEffect; }
+ inline int getUseDithering() const { return mUseDithering; }
+
status_t removeLayer(const sp<LayerBase>& layer);
status_t addLayer(const sp<LayerBase>& layer);
@@ -354,6 +357,7 @@ private:
// don't use a lock for these, we don't care
int mDebugRegion;
int mDebugBackground;
+ int mRenderEffect;
volatile nsecs_t mDebugInSwapBuffers;
nsecs_t mLastSwapBufferTime;
volatile nsecs_t mDebugInTransaction;
@@ -372,6 +376,7 @@ private:
// only written in the main thread, only read in other threads
volatile int32_t mSecureFrameBuffer;
+ bool mUseDithering;
};
// ---------------------------------------------------------------------------
diff --git a/libs/surfaceflinger_client/Android.mk b/libs/surfaceflinger_client/Android.mk
index fe85b34..5368280 100644
--- a/libs/surfaceflinger_client/Android.mk
+++ b/libs/surfaceflinger_client/Android.mk
@@ -10,6 +10,10 @@ LOCAL_SRC_FILES:= \
Surface.cpp \
SurfaceComposerClient.cpp
+LOCAL_MODULE:= libsurfaceflinger_client
+
+ifneq ($(BOARD_USES_ECLAIR_LIBCAMERA),true)
+
LOCAL_SHARED_LIBRARIES := \
libcutils \
libutils \
@@ -17,10 +21,15 @@ LOCAL_SHARED_LIBRARIES := \
libhardware \
libui
-LOCAL_MODULE:= libsurfaceflinger_client
ifeq ($(TARGET_SIMULATOR),true)
LOCAL_LDLIBS += -lpthread
endif
include $(BUILD_SHARED_LIBRARY)
+
+else
+
+include $(BUILD_STATIC_LIBRARY)
+
+endif
diff --git a/libs/ui/Android.mk b/libs/ui/Android.mk
index f7acd97..c5bc8bd 100644
--- a/libs/ui/Android.mk
+++ b/libs/ui/Android.mk
@@ -26,6 +26,27 @@ LOCAL_SHARED_LIBRARIES := \
libhardware \
libhardware_legacy
+
+ifeq ($(BOARD_USES_ECLAIR_LIBCAMERA),true)
+
+LOCAL_SRC_FILES+= \
+ ../camera/Camera.cpp \
+ ../camera/CameraParameters.cpp \
+ ../camera/ICamera.cpp \
+ ../camera/ICameraClient.cpp \
+ ../camera/ICameraService.cpp
+
+LOCAL_SRC_FILES+= \
+ ../surfaceflinger_client/ISurfaceComposer.cpp \
+ ../surfaceflinger_client/ISurface.cpp \
+ ../surfaceflinger_client/ISurfaceFlingerClient.cpp \
+ ../surfaceflinger_client/LayerState.cpp \
+ ../surfaceflinger_client/SharedBufferStack.cpp \
+ ../surfaceflinger_client/Surface.cpp \
+ ../surfaceflinger_client/SurfaceComposerClient.cpp
+
+endif
+
LOCAL_MODULE:= libui
ifeq ($(TARGET_SIMULATOR),true)
diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp
index d45eaf0..0a98cb2 100644
--- a/libs/ui/EventHub.cpp
+++ b/libs/ui/EventHub.cpp
@@ -642,7 +642,10 @@ int EventHub::open_device(const char *deviceName)
if (ioctl(fd, EVIOCGBIT(EV_REL, sizeof(rel_bitmask)), rel_bitmask) >= 0)
{
if (test_bit(REL_X, rel_bitmask) && test_bit(REL_Y, rel_bitmask)) {
- device->classes |= CLASS_TRACKBALL;
+ if (test_bit(BTN_LEFT, key_bitmask) && test_bit(BTN_RIGHT, key_bitmask))
+ device->classes |= CLASS_MOUSE;
+ else
+ device->classes |= CLASS_TRACKBALL;
}
}
}
diff --git a/libs/ui/Overlay.cpp b/libs/ui/Overlay.cpp
index 3aa8950..96f8006 100644
--- a/libs/ui/Overlay.cpp
+++ b/libs/ui/Overlay.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2007 The Android Open Source Project
+ * Copyright (c) 2009, Code Aurora Forum. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -83,6 +84,12 @@ status_t Overlay::getCrop(uint32_t* x, uint32_t* y, uint32_t* w, uint32_t* h)
return mOverlayData->getCrop(mOverlayData, x, y, w, h);
}
+status_t Overlay::setFd(int fd)
+{
+ if (mStatus != NO_ERROR) return mStatus;
+ return mOverlayData->setFd(mOverlayData, fd);
+}
+
int32_t Overlay::getBufferCount() const
{
if (mStatus != NO_ERROR) return mStatus;
diff --git a/libs/utils/ResourceTypes.cpp b/libs/utils/ResourceTypes.cpp
index 7e0f881..1a40deb 100644
--- a/libs/utils/ResourceTypes.cpp
+++ b/libs/utils/ResourceTypes.cpp
@@ -4393,7 +4393,6 @@ void ResTable::print(bool inclValues) const
}
printf("\n");
- if (inclValues) {
if (valuePtr != NULL) {
printf(" ");
print_value(pkg, value);
@@ -4413,7 +4412,6 @@ void ResTable::print(bool inclValues) const
+ size + sizeof(*mapPtr)-sizeof(mapPtr->value));
}
}
- }
}
}
}