diff --git a/shims/libexynoscamera/Android.mk b/shims/libexynoscamera/Android.mk index 82e0ef2..058ceb2 100644 --- a/shims/libexynoscamera/Android.mk +++ b/shims/libexynoscamera/Android.mk @@ -16,7 +16,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_SRC_FILES := GraphicBuffer.cpp +LOCAL_SRC_FILES := CameraParameters.cpp GraphicBuffer.cpp LOCAL_C_INCLUDES := frameworks/native/include LOCAL_SHARED_LIBRARIES := libui libutils LOCAL_MODULE := libexynoscamera_shim diff --git a/shims/libexynoscamera/CameraParameters.cpp b/shims/libexynoscamera/CameraParameters.cpp new file mode 100644 index 0000000..ce26841 --- /dev/null +++ b/shims/libexynoscamera/CameraParameters.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2018 The LineageOS 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. + */ + +#include "CameraParameters.h" + +namespace android { + +const char CameraParameters::PIXEL_FORMAT_YUV420SP_NV21[] = "nv21"; +const char CameraParameters::EFFECT_CARTOONIZE[] = "cartoonize"; +const char CameraParameters::EFFECT_POINT_RED_YELLOW[] = "point-red-yellow"; +const char CameraParameters::EFFECT_POINT_GREEN[] = "point-green"; +const char CameraParameters::EFFECT_POINT_BLUE[] = "point-blue"; +const char CameraParameters::EFFECT_VINTAGE_COLD[] = "vintage-cold"; +const char CameraParameters::EFFECT_VINTAGE_WARM[] = "vintage-warm"; +const char CameraParameters::EFFECT_WASHED[] = "washed"; +const char CameraParameters::ISO_AUTO[] = "auto"; +const char CameraParameters::ISO_NIGHT[] = "night"; +const char CameraParameters::ISO_SPORTS[] = "sports"; +const char CameraParameters::ISO_6400[] = "6400"; +const char CameraParameters::ISO_3200[] = "3200"; +const char CameraParameters::ISO_1600[] = "1600"; +const char CameraParameters::ISO_800[] = "800"; +const char CameraParameters::ISO_400[] = "400"; +const char CameraParameters::ISO_200[] = "200"; +const char CameraParameters::ISO_100[] = "100"; +const char CameraParameters::ISO_80[] = "80"; +const char CameraParameters::ISO_50[] = "50"; +const char CameraParameters::KEY_SUPPORTED_METERING_MODE[] = "metering-values"; +const char CameraParameters::METERING_CENTER[] = "center"; +const char CameraParameters::METERING_MATRIX[] = "matrix"; +const char CameraParameters::METERING_SPOT[] = "spot"; +const char CameraParameters::METERING_OFF[] = "off"; +const char CameraParameters::KEY_DYNAMIC_RANGE_CONTROL[] = "dynamic-range-control"; +const char CameraParameters::KEY_SUPPORTED_PHASE_AF[] = "phase-af-values"; +const char CameraParameters::KEY_PHASE_AF[] = "phase-af"; +const char CameraParameters::KEY_SUPPORTED_RT_HDR[] = "rt-hdr-values"; +const char CameraParameters::KEY_RT_HDR[] = "rt-hdr"; + +}; // namespace android diff --git a/shims/libexynoscamera/CameraParameters.h b/shims/libexynoscamera/CameraParameters.h new file mode 100644 index 0000000..e5dd660 --- /dev/null +++ b/shims/libexynoscamera/CameraParameters.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2018 The LineageOS 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. + */ + +namespace android { + +class CameraParameters +{ +public: + static const char PIXEL_FORMAT_YUV420SP_NV21[]; + static const char EFFECT_CARTOONIZE[]; + static const char EFFECT_POINT_RED_YELLOW[]; + static const char EFFECT_POINT_GREEN[]; + static const char EFFECT_POINT_BLUE[]; + static const char EFFECT_VINTAGE_COLD[]; + static const char EFFECT_VINTAGE_WARM[]; + static const char EFFECT_WASHED[]; + static const char ISO_AUTO[]; + static const char ISO_NIGHT[]; + static const char ISO_SPORTS[]; + static const char ISO_6400[]; + static const char ISO_3200[]; + static const char ISO_1600[]; + static const char ISO_800[]; + static const char ISO_400[]; + static const char ISO_200[]; + static const char ISO_100[]; + static const char ISO_80[]; + static const char ISO_50[]; + static const char KEY_SUPPORTED_METERING_MODE[]; + static const char METERING_CENTER[]; + static const char METERING_MATRIX[]; + static const char METERING_SPOT[]; + static const char METERING_OFF[]; + static const char KEY_DYNAMIC_RANGE_CONTROL[]; + static const char KEY_SUPPORTED_PHASE_AF[]; + static const char KEY_PHASE_AF[]; + static const char KEY_SUPPORTED_RT_HDR[]; + static const char KEY_RT_HDR[]; +}; + +}; // namespace android diff --git a/shims/libexynoscamera/GraphicBuffer.cpp b/shims/libexynoscamera/GraphicBuffer.cpp index 85b8d8d..3607e59 100644 --- a/shims/libexynoscamera/GraphicBuffer.cpp +++ b/shims/libexynoscamera/GraphicBuffer.cpp @@ -14,7 +14,32 @@ * limitations under the License. */ + #include -extern "C" void _ZN7android5FenceD1Ev() { +extern "C" void _ZN7android5FenceD1Ev() { } + +extern "C" void _ZN7android13GraphicBufferC1EjjijjjP13native_handleb( + const native_handle_t* handle, + android::GraphicBuffer::HandleWrapMethod method, + uint32_t width, + uint32_t height, + int format, + uint32_t layerCount, + uint64_t usage, + uint32_t stride); + +extern "C" void _ZN7android13GraphicBufferC1EjjijjP13native_handleb( + uint32_t inWidth, + uint32_t inHeight, + int inFormat, + uint32_t inUsage, + uint32_t inStride, + native_handle_t* inHandle, + bool keepOwnership) +{ + android::GraphicBuffer::HandleWrapMethod inMethod = + (keepOwnership ? android::GraphicBuffer::TAKE_HANDLE : android::GraphicBuffer::WRAP_HANDLE); + _ZN7android13GraphicBufferC1EjjijjjP13native_handleb(inHandle, inMethod, inWidth, inHeight, + inFormat, static_cast(1), static_cast(inUsage), inStride); }