diff options
author | Mathias Agopian <mathias@google.com> | 2010-02-09 17:46:37 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-02-11 13:16:22 -0800 |
commit | 3cf613507f1e2f7bd932d921a6e222e426fd3be4 (patch) | |
tree | 20c9dd57e2227046ab1d6fc1185f4136c6dac12e /include/camera/ICamera.h | |
parent | 988e3f0b2c74095deae580157c57935a98573052 (diff) | |
download | frameworks_av-3cf613507f1e2f7bd932d921a6e222e426fd3be4.zip frameworks_av-3cf613507f1e2f7bd932d921a6e222e426fd3be4.tar.gz frameworks_av-3cf613507f1e2f7bd932d921a6e222e426fd3be4.tar.bz2 |
split libsurfaceflinger_client and libcamera_client out of libui
Diffstat (limited to 'include/camera/ICamera.h')
-rw-r--r-- | include/camera/ICamera.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/include/camera/ICamera.h b/include/camera/ICamera.h new file mode 100644 index 0000000..6fcf9e5 --- /dev/null +++ b/include/camera/ICamera.h @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2008 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. + */ + +#ifndef ANDROID_HARDWARE_ICAMERA_H +#define ANDROID_HARDWARE_ICAMERA_H + +#include <utils/RefBase.h> +#include <binder/IInterface.h> +#include <binder/Parcel.h> +#include <surfaceflinger/ISurface.h> +#include <binder/IMemory.h> +#include <utils/String8.h> +#include <camera/Camera.h> + +namespace android { + +class ICameraClient; + +class ICamera: public IInterface +{ +public: + DECLARE_META_INTERFACE(Camera); + + virtual void disconnect() = 0; + + // connect new client with existing camera remote + virtual status_t connect(const sp<ICameraClient>& client) = 0; + + // prevent other processes from using this ICamera interface + virtual status_t lock() = 0; + + // allow other processes to use this ICamera interface + virtual status_t unlock() = 0; + + // pass the buffered ISurface to the camera service + virtual status_t setPreviewDisplay(const sp<ISurface>& surface) = 0; + + // set the preview callback flag to affect how the received frames from + // preview are handled. + virtual void setPreviewCallbackFlag(int flag) = 0; + + // start preview mode, must call setPreviewDisplay first + virtual status_t startPreview() = 0; + + // stop preview mode + virtual void stopPreview() = 0; + + // get preview state + virtual bool previewEnabled() = 0; + + // start recording mode + virtual status_t startRecording() = 0; + + // stop recording mode + virtual void stopRecording() = 0; + + // get recording state + virtual bool recordingEnabled() = 0; + + // release a recording frame + virtual void releaseRecordingFrame(const sp<IMemory>& mem) = 0; + + // auto focus + virtual status_t autoFocus() = 0; + + // cancel auto focus + virtual status_t cancelAutoFocus() = 0; + + // take a picture + virtual status_t takePicture() = 0; + + // set preview/capture parameters - key/value pairs + virtual status_t setParameters(const String8& params) = 0; + + // get preview/capture parameters - key/value pairs + virtual String8 getParameters() const = 0; + + // send command to camera driver + virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) = 0; +}; + +// ---------------------------------------------------------------------------- + +class BnCamera: public BnInterface<ICamera> +{ +public: + virtual status_t onTransact( uint32_t code, + const Parcel& data, + Parcel* reply, + uint32_t flags = 0); +}; + +}; // namespace android + +#endif |