15698d4461a260dbf208484383f692b03c6473e74Ruben Brunk/*
25698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * Copyright (C) 2014 The Android Open Source Project
35698d4461a260dbf208484383f692b03c6473e74Ruben Brunk *
45698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * Licensed under the Apache License, Version 2.0 (the "License");
55698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * you may not use this file except in compliance with the License.
65698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * You may obtain a copy of the License at
75698d4461a260dbf208484383f692b03c6473e74Ruben Brunk *
85698d4461a260dbf208484383f692b03c6473e74Ruben Brunk *      http://www.apache.org/licenses/LICENSE-2.0
95698d4461a260dbf208484383f692b03c6473e74Ruben Brunk *
105698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * Unless required by applicable law or agreed to in writing, software
115698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * distributed under the License is distributed on an "AS IS" BASIS,
125698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * See the License for the specific language governing permissions and
145698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * limitations under the License.
155698d4461a260dbf208484383f692b03c6473e74Ruben Brunk */
165698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
175698d4461a260dbf208484383f692b03c6473e74Ruben Brunk#ifndef ANDROID_CAMERA_CLIENT_CAMERAUTILS_H
185698d4461a260dbf208484383f692b03c6473e74Ruben Brunk#define ANDROID_CAMERA_CLIENT_CAMERAUTILS_H
195698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
205698d4461a260dbf208484383f692b03c6473e74Ruben Brunk#include <camera/CameraMetadata.h>
215698d4461a260dbf208484383f692b03c6473e74Ruben Brunk#include <utils/Errors.h>
225698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
235698d4461a260dbf208484383f692b03c6473e74Ruben Brunk#include <stdint.h>
245698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
255698d4461a260dbf208484383f692b03c6473e74Ruben Brunknamespace android {
265698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
275698d4461a260dbf208484383f692b03c6473e74Ruben Brunk/**
285698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * CameraUtils contains utility methods that are shared between the native
295698d4461a260dbf208484383f692b03c6473e74Ruben Brunk * camera client, and the camera service.
305698d4461a260dbf208484383f692b03c6473e74Ruben Brunk */
315698d4461a260dbf208484383f692b03c6473e74Ruben Brunkclass CameraUtils {
325698d4461a260dbf208484383f692b03c6473e74Ruben Brunk    public:
335698d4461a260dbf208484383f692b03c6473e74Ruben Brunk        /**
345698d4461a260dbf208484383f692b03c6473e74Ruben Brunk         * Calculate the ANativeWindow transform from the static camera
355698d4461a260dbf208484383f692b03c6473e74Ruben Brunk         * metadata.  This is based on the sensor orientation and lens facing
365698d4461a260dbf208484383f692b03c6473e74Ruben Brunk         * attributes of the camera device.
375698d4461a260dbf208484383f692b03c6473e74Ruben Brunk         *
385698d4461a260dbf208484383f692b03c6473e74Ruben Brunk         * Returns OK on success, or a negative error code.
395698d4461a260dbf208484383f692b03c6473e74Ruben Brunk         */
405698d4461a260dbf208484383f692b03c6473e74Ruben Brunk        static status_t getRotationTransform(const CameraMetadata& staticInfo,
415698d4461a260dbf208484383f692b03c6473e74Ruben Brunk                /*out*/int32_t* transform);
425698d4461a260dbf208484383f692b03c6473e74Ruben Brunk    private:
435698d4461a260dbf208484383f692b03c6473e74Ruben Brunk        CameraUtils();
445698d4461a260dbf208484383f692b03c6473e74Ruben Brunk};
455698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
465698d4461a260dbf208484383f692b03c6473e74Ruben Brunk} /* namespace android */
475698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
485698d4461a260dbf208484383f692b03c6473e74Ruben Brunk#endif /* ANDROID_CAMERA_CLIENT_CAMERAUTILS_H */
495698d4461a260dbf208484383f692b03c6473e74Ruben Brunk
50