You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.6 KiB
90 lines
2.6 KiB
/*
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* Contains implementation of a class EmulatedBaseCamera that encapsulates
|
|
* functionality common to all emulated camera device versions ("fake",
|
|
* "webcam", "video file", "cam2.0" etc.). Instances of this class (for each
|
|
* emulated camera) are created during the construction of the
|
|
* EmulatedCameraFactory instance. This class serves as an entry point for all
|
|
* camera API calls that are common across all versions of the
|
|
* camera_device_t/camera_module_t structures.
|
|
*/
|
|
|
|
#define LOG_NDEBUG 0
|
|
#define LOG_TAG "EmulatedCamera_BaseCamera"
|
|
#include <log/log.h>
|
|
|
|
#include "EmulatedBaseCamera.h"
|
|
|
|
namespace android {
|
|
|
|
EmulatedBaseCamera::EmulatedBaseCamera(int cameraId,
|
|
uint32_t cameraVersion,
|
|
struct hw_device_t* device,
|
|
struct hw_module_t* module)
|
|
: mCameraInfo(NULL),
|
|
mCameraID(cameraId),
|
|
mCameraDeviceVersion(cameraVersion)
|
|
{
|
|
/*
|
|
* Initialize camera_device descriptor for this object.
|
|
*/
|
|
|
|
/* Common header */
|
|
device->tag = HARDWARE_DEVICE_TAG;
|
|
device->version = cameraVersion;
|
|
device->module = module;
|
|
device->close = NULL; // Must be filled in by child implementation
|
|
}
|
|
|
|
EmulatedBaseCamera::~EmulatedBaseCamera()
|
|
{
|
|
}
|
|
|
|
status_t EmulatedBaseCamera::getCameraInfo(struct camera_info* info)
|
|
{
|
|
ALOGV("%s", __FUNCTION__);
|
|
|
|
info->device_version = mCameraDeviceVersion;
|
|
if (mCameraDeviceVersion >= HARDWARE_DEVICE_API_VERSION(2, 0)) {
|
|
info->static_camera_characteristics = mCameraInfo;
|
|
} else {
|
|
info->static_camera_characteristics = (camera_metadata_t*)0xcafef00d;
|
|
}
|
|
|
|
return NO_ERROR;
|
|
}
|
|
|
|
status_t EmulatedBaseCamera::plugCamera() {
|
|
ALOGE("%s: not supported", __FUNCTION__);
|
|
return INVALID_OPERATION;
|
|
}
|
|
|
|
status_t EmulatedBaseCamera::unplugCamera() {
|
|
ALOGE("%s: not supported", __FUNCTION__);
|
|
return INVALID_OPERATION;
|
|
}
|
|
|
|
camera_device_status_t EmulatedBaseCamera::getHotplugStatus() {
|
|
return CAMERA_DEVICE_STATUS_PRESENT;
|
|
}
|
|
|
|
|
|
|
|
|
|
} /* namespace android */
|