diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-10-06 16:32:44 -0400 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-10-06 16:32:44 -0400 |
| commit | 962f253665e0c5cc8a29de9e59ce3992dad02440 (patch) | |
| tree | a2d73b43e89d0123d33c6f309c5fc3b3cd2cf169 /libs | |
| parent | f83d9b3fcd74f2528b0acc74185d2d7bdd716942 (diff) | |
| parent | 36f68b8f24df906c969581b0b8e1a47f95dc03cb (diff) | |
| download | frameworks_base-962f253665e0c5cc8a29de9e59ce3992dad02440.zip frameworks_base-962f253665e0c5cc8a29de9e59ce3992dad02440.tar.gz frameworks_base-962f253665e0c5cc8a29de9e59ce3992dad02440.tar.bz2 | |
Merge change I547cff66 into eclair
* changes:
Add zoom functions and sendCommand.
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/ui/Camera.cpp | 9 | ||||
| -rw-r--r-- | libs/ui/ICamera.cpp | 21 |
2 files changed, 30 insertions, 0 deletions
diff --git a/libs/ui/Camera.cpp b/libs/ui/Camera.cpp index 0c6d340..09a36f1 100644 --- a/libs/ui/Camera.cpp +++ b/libs/ui/Camera.cpp @@ -278,6 +278,15 @@ String8 Camera::getParameters() const return params; } +// send command to camera driver +status_t Camera::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) +{ + LOGD("sendCommand"); + sp <ICamera> c = mCamera; + if (c == 0) return NO_INIT; + return c->sendCommand(cmd, arg1, arg2); +} + void Camera::setListener(const sp<CameraListener>& listener) { Mutex::Autolock _l(mLock); diff --git a/libs/ui/ICamera.cpp b/libs/ui/ICamera.cpp index fd7e084..e1b3ec7 100644 --- a/libs/ui/ICamera.cpp +++ b/libs/ui/ICamera.cpp @@ -36,6 +36,7 @@ enum { TAKE_PICTURE, SET_PARAMETERS, GET_PARAMETERS, + SEND_COMMAND, CONNECT, LOCK, UNLOCK, @@ -205,6 +206,17 @@ public: remote()->transact(GET_PARAMETERS, data, &reply); return reply.readString8(); } + virtual status_t sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) + { + LOGD("sendCommand"); + Parcel data, reply; + data.writeInterfaceToken(ICamera::getInterfaceDescriptor()); + data.writeInt32(cmd); + data.writeInt32(arg1); + data.writeInt32(arg2); + remote()->transact(SEND_COMMAND, data, &reply); + return reply.readInt32(); + } virtual status_t connect(const sp<ICameraClient>& cameraClient) { Parcel data, reply; @@ -331,6 +343,15 @@ status_t BnCamera::onTransact( reply->writeString8(getParameters()); return NO_ERROR; } break; + case SEND_COMMAND: { + LOGD("SEND_COMMAND"); + CHECK_INTERFACE(ICamera, data, reply); + int command = data.readInt32(); + int arg1 = data.readInt32(); + int arg2 = data.readInt32(); + reply->writeInt32(sendCommand(command, arg1, arg2)); + return NO_ERROR; + } break; case CONNECT: { CHECK_INTERFACE(ICamera, data, reply); sp<ICameraClient> cameraClient = interface_cast<ICameraClient>(data.readStrongBinder()); |
