19ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall/*
29ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * Copyright (C) 2014 The Android Open Source Project
39ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall *
49ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * Licensed under the Apache License, Version 2.0 (the "License");
59ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * you may not use this file except in compliance with the License.
69ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * You may obtain a copy of the License at
79ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall *
89ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall *      http://www.apache.org/licenses/LICENSE-2.0
99ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall *
109ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * Unless required by applicable law or agreed to in writing, software
119ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * distributed under the License is distributed on an "AS IS" BASIS,
129ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * See the License for the specific language governing permissions and
149ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * limitations under the License.
159ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall */
169ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall
179ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lallpackage com.android.camera.one;
189ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall
199ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lallimport android.hardware.camera2.CameraCharacteristics;
209ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lallimport android.hardware.camera2.CameraMetadata;
219ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall
229ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall/**
239ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall * Provides the camera orientation based on the given Camera2 characteristics.
249ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall */
259ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lallpublic class CameraDirectionProvider {
269ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall    private final CameraCharacteristics mCharacteristics;
279ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall
289ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall    public CameraDirectionProvider(CameraCharacteristics characteristics) {
299ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall        mCharacteristics = characteristics;
309ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall    }
319ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall
329ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall    public OneCamera.Facing getDirection() {
339ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall        switch (mCharacteristics.get(CameraCharacteristics.LENS_FACING)) {
349ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall            case CameraMetadata.LENS_FACING_BACK:
359ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall                return OneCamera.Facing.BACK;
369ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall            case CameraMetadata.LENS_FACING_FRONT:
379ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall                return OneCamera.Facing.FRONT;
389ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall        }
399ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall        return OneCamera.Facing.BACK;
409ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall    }
419ceed0d5535e8453f8b5f77959134760dac01ec5Puneet Lall}
42